SAS言語はこれから学ぶべき言語か?概要や将来性について紹介

はじめに

様々なITシステム・サービスを開発するために必要なプログラミング言語は利用者が確認できる一般的なものだけでも2020年の時点で250以上あり、その派生言語等を含めると全部で1000以上の種類があるとも言われています。

各言語はそれぞれに適した分野があり、ある程度住み分けがされていますがその中でも幅広く利用される人気の言語が存在します。代表的なもので言うとWeb関連でJava、JavaScript、PHP、Ruby等が挙げられ、AI・機械学習関連ではPython、R言語、Go言語等が挙げられます。

上記に挙げたうち特にWeb関連のプログラミング言語は長年人気のある言語、需要のある言語といった様々なランキングの上位にランクインされており、その傾向は今後もしばらく変わらないと見られます。

今回取り上げるSAS言語は、そういったランキングを上位から見て行ってもしばらく姿を表しません。調べてみると、アメリカのIEEE(技術標準化機関であり学術研究団体)の主力雑誌である「IEEEスペクトラム」の2021年時点の人気のプログラミング言語ランキングで30位にランクインしている程度でした。その周辺にはCudaVerilog、Adaといったあまり一般的とは言えない言語が連なっていることからもその注目度が低いことが伺えます。

「Java」「PHP」で検索をかけると各言語に関する情報が上位に現れるのに対して、「SAS」で検索しても、睡眠時無呼吸症候群(Sleep Apnea Syndrome)や特殊空挺部隊(Special Air Service)といった全く別のSASの情報が先に現れることもあるでしょう。また「SAS言語」で検索しても数年前の古い情報ばかりが目立つ状況です。さらにSASエンジニア、プログラマーの求人を検索指定もJavaやJavaScript等に比べるとその件数は格段に少ない状況です。

以上のようなことだけを見るとこの記事を読む必要はない、これからSAS言語を知る必要はないと判断してしまうのも当然です。しかし2023年の今、敢えてSAS言語に関する新たな記事を執筆するのには当然ながら理由があります。

一つは、現在のIT業界に身を置くうえで避けることのできないデータ解析や統計分析を利用したデータサイエンスの分野において、SAS言語を含めた変遷を振り返ると見識が深められると言う点です。結論から言ってしまうと、SAS言語自体の将来性は現時点で見通しが良いとは言えません。しかし、どんな経緯でこれまでSAS言語が採用されてきて、なぜ将来性が危うい状況なのかを知ることで同分野や業界の展望を多少なりとも把握できることでしょう。

二つ目は、必ずしも今後SAS言語が衰退するとも限らないという点です。プログラミング言語は250以上存在していると述べましたが、その中には専門性が強くユーザーが極めて限定的であったり、長らくバージョンアップがされず他の言語に移行されているためにほぼ利用されていなかったりという言語も含まれています。

そのためまもなく姿を消してしまうと思われるものも少なくありませんが、一方で時代が変わる中で再注目を集める言語があるのも事実です。近年で言うと「COBOL(コボル)」という言語がその一例です。COBOLは今から60年以上も前の1959年にリリースされた非常に歴史の古い言語で事務処理関連のシステム開発を目的に利用されてきました。アメリカで開発されたものの、アメリカ政府の事務処理システムがCOBOLで納品されることで次第にCOBOLへの統一化が進み、世界中にも広まっていきました。

しかしJavaやJavaScript、Rubといったいわゆる「4GL(第四世代言語)」となる言語が幅広く普及するようになった頃にはCOBOLを耳にする機会も少なくなり、システム移行に慎重にならざるを得ない、あるいは移行が困難な古くからある大規模システムや金融システムで稼働している程度となりました。IT業界の空気感としても、COBOLは過去のものという見解が蔓延っていました。

しかし米会計検査院(GAO)の2016年の調べによるといまだにCOBOLを利用しているシステムは少なくないという結果が公表されており、日本の情報処理推進機構(IPA)が2019年に公表した「ソフトウエア開発データ白書2018-2019」においては、国内で利用されている開発言語として1位のJavaに次いでCOBOLは2位という結果が出ています。

またCOBOLは2002年にオブジェクト指向への対応ができるよう更新されており、AmazonのクラウドサービスのAWS(Amazon Web Services)においては「AWS Lambda」というサービスで途中からCOBOLの利用を可能な状態へ更新しました。さらに2020年にはコロナによる失業者の急増で失業保険金給付システムの稼働困難状況に陥ったことが原因で、COBOLプログラマーの求人が行われたこともありました。

COBOLは、基幹システムの開発が汎用系からオープン系に遷移した時代の流れやCOBOLを知るエンジニア・プログラマーの高齢化、基本情報技術者試験で出題されていたCOBOLの内容が除外されたこと等から過去の言語という認識が進んでいたものの、実際には思った以上の需要が残っているということが伺えます。

このCOBOLの動向を見ると、SAS言語もこのまま急速に消え去ってしまうことは考えづらく、ちょっとしたきっかけによって再注目される可能性がないとも言えません。特に近年はクラウドファーストの考え方の普及によりクラウド化が進んでいるため、仮にクラウドサービスで採用されることになればAWSの例と同じように話題に上がる可能性が高くにあります。

前置きが長くなりましたが、以上のような状況があるためSAS言語の概要を把握しておいて損はないと言えます。この記事ではSAS言語の概要について紹介したうえでその他の関連言語についても紹介します。SAS言語は聞いたことがあったものの実態を把握していなかった方、これからデータサイエンスの分野に携わる方、今後業務でSAS言語を利用することになるという方はぜひご覧下さい。

ソフトウェア「SAS(Statistical Analysis System)」とSAS言語について

SAS(Statistical Analysis System、サスと呼ばれる)は、世界的に利用されている統計解析や表・グラフでの可視化が可能なソフトウェアで、アメリカのSAS Instituteによって1960年代に開発が進められました。NASAのアポロ計画でも利用されたと言われており、世の中で広く利用されるようになったのは製品版がリリースされた1972年以降で、その後は外資系企業を中心とした製薬業界や農業業界、日本では多くの大学で1980年代頃から採用されるようになりました。

製品を商用利用する場合は非常に高価なソフトウェアとなりますが、教育や学術研究、個人的な学習といった非商用目的であれば「SAS OnDemand for Academics(SAS ODA)」という無償版が利用できます

当時は大量なデータを解析する「ビッグデータ」という言葉こそ一般的に使われていなかったものの、プログラミングによってビッグデータの解析やデータ分析、可視化が行えるものであったため、現在のBIツールの先駆けとも言えるソフトウェアです。プログラミングといっても比較的簡単な記述で実行可能な他、プログラミングをしなくてもGUI(Graphical User Interface)画面にて操作が可能にもなっています。

SAS言語はこのSASソフトウェアで使用されるプログラミング言語で、データの操作、統計解析、グラフ作成、レポート作成等が行えます。データサイエンスの分野で長い間利用されてきた言語であり、近年注目されているデータマイニング、機械学習、統計解析で活用することもできます。

一つの独立した言語であるためJavaやPHPのように最初は学習コストがかかりますが、仕組みや文法はそこまで難しくなく、一度習得してしまえばGUI画面で操作するよりもSAS言語でプログラミングを行った方が効率的に作業が行えると言われています。SASの一般的な操作や記述の流れについては別途「SASの基礎」で解説します。

SASが活用できる職種や仕事内容

SASは、大量なデータを意思決定に活用する業界で利用される傾向にあります。業界としては医療関連や金融関連が考えられ、職種としてはデータサイエンティストやSASエンジニア・プログラマーが考えられます。

データサイエンティストはある課題を解決するために膨大なデータを収集・分析し、そこから解決策を導き出す職種です。課題を把握し仮説を立て、データを収集・分析して解決策を提案し、効果測定を行ったうえで新たな問題があったり、課題が解決できなかったりした場合は再度課題の把握から繰り返します。データサイエンティストになるためには情報処理や統計に関する知識の他、SAS言語やその他分析に向いているR言語、Python、さらにOracle、MySQL、PostgreSQLといったデータベース、機械学習システム等を利用できるだけの知識や技術力が求められます。それぞれが一つの分野として分類されるものであるため、学習するべき範囲は広いと言えるでしょう。またヒアリング・コミュニケーション能力や課題解決能力も必要となる他、課題解決する分野が毎回異なることも考えられるため、状況を正確に把握する目的で対象となる分野の知識も習得しなければいけない場合もあります。

企業によって名称は異なるかもしれませんが、SAS言語を使ったプログラミングによってデータ処理や分析、システム開発・運用、分析結果の可視化等を専門的に行うSASエンジニア・プログラマーもSASを利用する職種の一つです。データサイエンティストの場合、プログラミング等の技術力は付加価値に近いものとなりますが、SASエンジニア・プログラマーの場合はその仕事内容が技術関連に傾倒します。

例えばデータの処理を行うためのプログラミングを行って集計や加工・整形・クレンジング、抽出、変換等を行ったり、データベース・データウェアハウスと連携してETL処理を行ったりもします。回帰分析、クラスタリング、主成分分析、時系列分析といった手法を用いてデータ分析のモデル構築を行うこともあります。また分析データを管理者層やマーケティング部門等でも利用できるようにグラフ・チャート・表等に可視化することもあります。さらに既存SASシステムの改修や障害対応、以降作業、新規導入といったことを担当する場合もあります。

SAS®認定資格とは?

IT業界には国家資格以外にもサービスやプログラミング言語の開発元ベンダーが独自に認定する様々な資格試験がありますが、SASにも同様のものがあって2023年現在も実施されています。それが「SAS®認定資格」で、ソフトウェアのSASやSAS言語を利用するうえで必要なスキルを面接等で証明でき、世界的にも認知度のある試験試験となっています。

試験は大きくFoundation Tool、Advanced Analytics、BI & Analytics、Data Management、Administration、Partnersといった6つのカテゴリに分けられており、さらにそれぞれの中に複数種類の試験が設けられています。なお試験によって日本語に対応しているもの、未対応のものがあるため、受験の際は英語力が必要となる場合もあります。「SAS Certified Specialist: Base Programming Using SAS 9.4」「SAS Certified Statistical Business Analyst Using SAS®9: Regression and Mode」という2つの試験に関しては日本語に対応しており、かつベンダーのSAS社が推奨しているものとなります。

前者はSAS言語でのコーディングや実行ができる人を対象とした試験で、SASデータファイルの作成や操作、エラー処理といった基礎スキルが問われる内容となっています。後者はSAS上級者向けの試験となっており、分散分析やロジスティック回帰といった部分の知識が問われます。

以上のようにSASに関連する試験が現在もなお実施されていることから、SASの一定の需要が継続しているということがわかります。これからSAS言語について学習しようとしている方は、ぜひこの試験を活用してみてはいかがでしょうか。なお受験費用は一部を除いて一律22,000円となっており、受験は主要なIT資格試験を運用しているピアソンVueを介して試験監督付きのオンラインか各地のテストセンターでできるようになっています。

SASの基礎

今回はSASに初めて触れる方に向けて分析の流れやソフトウェアの基本的な操作方法について解説します。初心者向けの内容となるため、すでに一度でも使用したことがある人は飛ばしてください。

データの分析はまず収集から始めますが、収集したデータは表計算ソフト等に保存します。データに誤りや異常値等がないかチェックし、問題なければSASに読み込ませて分析を行います。結果を確認し、さらに分析する必要があれば実施し、データの整理や加工が必要な場合もここで実施します。SASではデータの読み込みからバリデーション(収集したデータのチェック)までの工程を「DATAステップ」、その後の分析までの工程を「PROCステップ」として分けて考えます。なお分析のデータの整理や加工はどちらのステップでも行われる可能性があります。

DATAステップでは変数やデータのサブセットが作成でき、PROCステップでは因子スコア(重み)や相関係数行列等の出力ができます。各ステップの構成は非常にシンプルで、DATAステップの場合は以下のようにDATAステートメントとして「データセット名」を指定した後に処理したい内容を「SASステートメント」として記述し、最後に「run;」で締めるのが基本的なコードです。

data データセット名 ;
SASステートメント ;
run;

なお「run;」を省略した場合は、次のDATAステートメント、SASステートメントの記述があるとその前のステップが完了したと判断して自動的に終了となりますが、可読性に欠けるため基本的には記述した方が良いでしょう。最低限の要素として、作成するデータセット名と読み込むデータの場所、読み込む変数名の指定が必要ということを覚えておいてください。

続いてPROCステップですが、こちらは初めに「プロシージャ名」「データセット名」、また必要に応じてオプションをPROCステートメントとして記述し、続けて分析時に実施して欲しい内容をSASステートメントとして記述し、最後に「run;」で締めます。ここで言うプロシージャ名は「MEANS、UNIVARIATE(基本統計量)」「FREQ(クロス表分析)」「REG(回帰分析)」というようにあらかじめ決められています。オプションでは分析に関する詳細事項を指定しますが、いずれのステートメントにも指定可能です。なおSASステートメントにオプションを付ける場合は頭に「/(スラッシュ)」が必要となります。

proc プロシージャ名 data=データセット名 オプション;
  SASステートメント / オプション;
run;

今回紹介した内容だけでは実際にプログラミングをすることは困難ですが、SAS言語の構造は決して複雑ではないということがわかっていただけたことでしょう。さらに学習を進めたい方は、SAS Institute Inc.の公式サイト内に「SASチュートリアル」が用意されていて動画等を見ながら学べるようになっているので、ぜひ利用してみてください。

データサイエンスの分野とSAS言語の将来性について

冒頭でも紹介した通り、SAS言語の将来性が明るいとは言えません。SASを商用で利用しようとした場合は高価であるということや、以下に紹介するような高性能な新しい言語が出てきていることが理由として挙げられます。

SAS言語は50年以上の歴史と多くの導入実績があり、世界中で認知されているほど有名な資格があるため信頼性が高いというメリットがありましたが、近年はR言語等も実績を重ねて信頼性を増してきており、オープンソースのR言語には、SAS言語ではライセンス料を払わなければ実現できない機能も備わっていて無償で利用できる他、SAS言語は大幅なアップデートによる機能改善がほとんどないというデメリットがあります。以上のような理由により、SAS言語に関する新しい情報も減っている状況です。

しかしSAS言語が採用されたシステムが世界中に数多く残っていることも事実です。そして、依然として実績に関しては他の言語に劣っていないためSAS言語を第一に信頼を置いている組織も存在している可能性も高いです。そのためデータサイエンスの分野においてSAS言語を使ったシステムの運用・保守といった仕事の需要はこれからも続くと言えます。また、SAS言語を扱うには専門的な知識や技術力が必要となり、これを習得しているエンジニアも減っているため、今もSAS言語が利用されている現場や、これからSAS言語を扱う案件があるものの該当するエンジニアが不在という現場では強みとなることでしょう。

ただしSAS言語のスキルのみではデータサイエンスの分野で活躍できる可能性は低くなるため、並行して同類のプログラミング言語も学んでいく必要があります。今回は、近年同分野で採用されることの多い4つの言語とデータベースに欠かせないSQLについて紹介します。

Python

オープンソースの言語であり、シンプルな構文でコーディングでき、可読性に優れているという特徴があるため初心者が学ぶのに適しています。学びやすい言語であるにもかかわらず汎用性が高く、Webアプリケーションの開発はもちろん、近年はデータ分析やAIの開発にも幅広く利用されている状況です。Windows、Mac、Linuxといった様々なOSで利用できる点も一つのメリットです。

Pandas、NumPy、TensorFlow、Scikit-learnといったライブラリやフレームワークも豊富なので、効率的に開発を進めることもできます。さらにPythonのコミュニティも活発に情報交換・提供が行われているため、開発に行き詰まった際もインターネット上で何らかのヒントを得られる可能性が高いです。

R言語

統計やデータ解析に特化し、グラフ(ヒストグラム)作成による可視化が可能なオープンソースの言語です。近年はPythonと並んでデータ分析や機械学習といった分野で徐々に採用されている傾向にあります。そのためデータ分析や統計解析に必要な機能を備えたdplyer、stringr等のライブラリやパッケージも充実してきています。

一般企業でのマーケティングの他、医療、学術研究、金融といった分野でも幅広く利用されており、ビッグデータの分析や機械学習のシステムが普及すると共に今後のニーズはさらに高まっていく可能性があります。ただし言語としての用途は限られているため、例えばWebシステムの開発をしたいというような場合はまた別の言語を学習する必要があります。

Go言語

2009年にGoogle社によって開発されたオープンソースの言語で、シンプルで高速な処理が可能な点が大きな特徴です。Google社がプログラミング環境を改善することを目的に開発しているため、シンプルな構文でのコーディングを重視しており、効率的な開発が可能となっています。また高速な処理が可能なため、WebサービスやAPIの開発に適していると言えます。

具体的にGo言語が利用される分野を挙げると、Webサービス、スマートフォン向けのアプリケーション、ドローンの開発等があります。ただしシンプルと引き換えに削ぎ落としている機能もあるため、他の言語に慣れているプログラマは使いづらい言語として映ることもあるでしょう。それでもIoTやコンテナ技術などの分野での利用が増加しているため、現状は将来性が高い言語とされています。

Stan

確率計算(主観確率)に基づいたモデリング手法を使ってデータ解析を行う高度な「ベイズ統計モデリング」を高速処理できる言語で、2012年にリリースされました。Windows、Mac、LinuxいずれのOSでも利用可能で、ライブラリやフレームワークも豊富です。

ベイズ統計モデリングでは取得したデータを学習データとして取り込んでその精度を上げます。なおデータの変更、追加が行われた場合にセットやイニシャライズ、コンパイルを行うのが一般的なツールですが、Stanの場合は記述したものをC++に変換してコンパイル、実行を行うことで、コンパイル後のモジュールに別データを導入して実行することができます。

SQL

SQLはリレーショナルデータベースを操作するための言語であり、一般的なプログラミング言語とは異なり、そこまで複雑な記述をすることなく利用できます。近年は「NoSQL」というSQLを使わないでも操作可能な種類のデータベースも登場していますが、いまだに多くのデータベースシステムがリレーショナルデータベースであるため、SQLの知識は基礎として習得する必要があります。

データベースに格納したデータは、他のサーバーと連携して検索や追加、更新、削除等を行いますが、この操作を行う際に利用されるのがSQLです。ANSI、ISO/IEC等で標準規格化されているので、一度学習すれば様々な種類があるリレーショナルデータベースにおいてもほぼ共通した知識で適応することができます。SQLが利用できる代表的なデータベースとしては、Oracle Database、Microsoft SQL Server、MySQL、PostgreSQL等があります。

まとめ

今回はSAS言語の概要や、その他にデータサイエンスの分野で使われることの多いプログラミング言語について紹介しました。何度も触れているようにSAS言語は決して今後需要が右肩上がりするような種類の言語ではありません。しかし現在稼働しているシステムで利用されていることもあり、同分野における重要な言語の一つであることには変わりありません。またデータサイエンスは近年何かと注目される分野の一つなので、再度SAS言語に関心がもたれる可能性もあります。もちろんSAS言語の知識のみ習得していても心許ないので、もし今後同分野で活躍できるエンジニア・プログラマーを目指している場合は、今回取り上げたようなPythonやR言語といった言語と合わせてSAS言語の学習を進めてみてはいかがでしょうか。

前の記事

AIと歩む未来