SAS®認定プロフェッショナル SAS Advanced Programmer for SAS®9 の話

みなさま、あけましておめでとうございます(遅。かなりだいぶ久しぶりのブログです。

去年の話になりますが、2015年9月に SAS®認定プロフェッショナル SAS Advanced Programmer for SAS®9 に受験し合格しました。そのときのお話です。

※試験範囲などの詳細は変わることがあるかと思いますので、最新の試験範囲や受験料などはSAS社のウェブサイトをご覧いただけたらと思います。

(Advanced の前の資格である SAS Base Programmer for SAS®9 のお話は、SAS®認定プロフェッショナル SAS Base Programmer for SAS®9 の話にて記載しています)


受験時のSAS経験値

受験当時、SASを使い始めて 1年半年くらいのSASデータマエショリストです。処理の効率化やら容量節約やらと日夜戦っていました。SQL(Oracle/DB2/Teradata)の業務経験はだいたい 2,3年くらいでした。


試験範囲(簡易)

  1. SAS SQLコードの記述と解釈
  2. SASマクロ機能の作成と利用
  3. 高度なDATAステップ・プログラミングと効率化のテクニックを使用した問題解決

Base と同じくテストセンターでパソコン上で受験します。

60~65問中、65%の正答率で合格です。Base よりも 5%低く設定されています。

試験時間は120分です。個人的には、見直し時間をいれても、かなり余るのではないかと思います。


勉強方法・勉強時間

試験は日本語で受けられますが、公式テキストは英語しかありません。問題を載せているようなサイトやらも少ない上に英語です。本当に英語しかありません。英語文章の読解が苦手な方はかなり苦戦するのではないかと思います。模擬試験 (有料)は日本語で受けられます。

私は公式テキストや模擬試験はやらず、英語のサイトやアプリ、日本語SASオンラインヘルプなどで試験範囲と思われるところを読み漁って勉強してました。サイトすら、Baseと比べて扱っているところが少なかったので探すのにも苦労しました。また、解説が間違っていたり、解説が無かったりしたので...、実際に SAS University Edition を使って動かして調べてました。

マクロとSQLは日頃使っていることから大丈夫だと思ったので、不安な高度な~を勉強するために SASトレーニング(研修)の SAS プログラミング3:上級テクニックと効率化 を試験の2ヶ月位前に受けました。研修を受けましたけど、マクロとSQLに比べてだいぶ難しかったです。研修後、試験直前まで全然勉強しなかったので、この範囲をだいぶ忘れてました...。 ただ、本業のデータ前処理では役立つ知識があったので、試験関係なく役立ったかなと思います。

マクロとSQLはほどほどに、高度な~を中心に勉強しました。勉強時間は研修を入れずにだいたい 2,30時間くらいかと思います。


受験結果など

65%以上で合格なので、問題なく合格できました。高度な~のスコアは最も勉強しましたが一番低いです。


内容 スコア
全体 85%
SQLを使用したデータアクセス 95%
マクロ処理 85%
高度なプログラミングテクニック 76%

SQLを使用したデータアクセスですが、基本的なSQLの文法を知っていれば、それほど難しくないと感じました。SQLを業務で使ったことがある人は問題なく解けるかと思います。難しい SQL でもサブクエリが 1個、2個ある程度です。left join, right join, full join や集約関数、union, intersect, except, corr がきちんと抑えられているといいですね。

個人的には一番の得点源でした。ただ、一見すると間違えそうなひっかけみたいな問題があるので、考えずにパット見で答えると間違えるかなと感じました。

SQL経験者は、SAS独特の SQLプロシジャによるマクロ変数の作成(into, separated by)や DATAステップとPROCステップで SQLで同じコードを書くにはどうすればいい(またその逆)とか、抑えとけばいいかと思います。SQL初心者は、SAS関係なくSQLの入門書から入るのもいいですし、SAS忘備録さんのSQLプロシジャ入門もおすすめです。

マクロ処理は、意地悪な問題がSQLと比べてあまりないかなという印象でした。ただし、& がいっぱい出てくるようなマクロ変数の展開の問題は、初見では解けないかと思います。グローバル変数とローカル変数もきちんと抑えた方がいいでしょう。

高度なプログラミングテクニックは、事前に分かっていたことでしたが難しかったです。ひとつひとつの問題が独立していて、覚えていないと解くのは困難な問題が多いです。業務で SAS を使っている人でも、メモリ効率や処理効率、容量節約などを考えたことないと、知らない機能がほとんどかと思います。他と比べて点数が稼ぎにくい範囲なので、SQLとマクロでいかに稼ぐかが肝になります。

SQLビューやDATAステップビュー、インデックス、bufno=、FCMPプロシジャ... と多岐に渡っています。もし勉強するならば、ひとつひとつが独立しているので、ひとつひとつ確実に理解して勉強していくと良いかと思いました。


終わりに

ざっくりではありましたが、SAS Advanced Programmer for SAS®9 のお話でした。少しでも参考になれば幸いです。



SAS Advanced Programmer for SAS®9 - 参考サイト

  1. SAS®グローバル認定プログラム_SASの資格の話 | データステップ100万回 SAS新手一生
  2. SAS認定試験について | ソースはパルチリ

コメント

このブログの人気の投稿

日付フォーマットでない文字項目をSAS日付に変換するときにログ出力されるメッセージを抑制したい - SAS

データセット(.sas7bdatファイル)の文字コードを取得したい - SAS

Linuxコマンド: date で◯か月前 / ◯か月後を取得するときの注意