2015年9月18日金曜日

無料で SAS を使ってみよう2〜アマゾンウェブサービス編〜

以前、こちらで導入方法を紹介しました SAS® University Edition ですが、クラウドサービスであるアマゾンウェブサービス (AWS) からも利用できるようになりました (公式サイト)。 そこで、AWS版の導入方法について紹介したいと思います。

従来版とAWS版の違い

SAS® を試してみたいけどどっちを使えばいいかわからないという方、もしくは従来版をすでに使っていて、AWS版はどう違うんだ、という人のために先に特徴を簡単にまとめておきます。
  • 従来版
    • ローカルで作業できる
    • 無料
    • 仮想マシンのインストールや設定作業が面倒
  • AWS版
    • インストールが必要ない
    • やや速い?
    • SAS自体は無料だが1年後からAWSの利用料金が発生する場合がある
    • アマゾンウェブサービスのアカウント作成と設定が必要
SAS® University Edition 自体は従来版、AWS版いずれも無償ですが、アマゾンウェブサービス自体のシステムとして、アカウント登録から1年以内ならば条件つきで無料、それ以降は月額料金がかかる、というシステムなので注意が必要です1
AWS 版 SAS® University Edition の利用規約も英語ですが、直接利益を得るような使用はだめで、あくまで学習・学術用途に限ることとか、プログラムの逆解析や無断再配布といった著作権侵害行為をしてはならない、とか 18歳未満の方は保護者の同意のもとで使用すること、といった従来版とだいたい同じで常識的な内容です2が、Webサービスなので、次のような追加の条件があります.
  1. SAS Institute社の製品開発・品質向上のためソフトの使用に関する匿名の情報送信に協力すること。
  2. 個人で利用すること. 複数人で利用してはならない. また、第3者による不正なアクセスをされないようにする。
  3. プログラムやドキュメントをローカルにコピーしてはならない。
(1) は最近のWebサービスではよくある条項ですが、個人情報を送信されるのが気になるという方もいるかもしれませんのでご注意ください。 (2) は、クラウドサービスですがあくまで個人の学習用なので、グループでの利用はできないようです。

導入方法

アマゾンウェブサービスのアカウント作成ができたら、SAS社公式サポートページ "How do I run SAS University Edition on Amazon Web Services Marketplace?" を参考に SASを起動します。現時点では SAS社のサポートページも、マーケットプレイスも英語のページしかないので、日本語で簡単に説明しておきます。
まず、アマゾンウェブサービスのマーケットプレイス (いつもの通販サイトとして利用しているサイトではありません!) にて、sas university edition を探します。このページの一番下に利用規約 (End User License Agreement) があります。同意できるのなら、ページ右上の Continue をクリックします (ここまで英語ページの1.、2. に相当します)。 Continue ボタンの下にリージョン選択がありますが、これは何でもいいようです。
3. 次に SAS® University Edition の設定を行います。 (1) 1-Click Launch タブを選択していることを確認し、(2) EC2 Instance Type は t2.micro を選択します (他のを選ぶこともできますが、その場合アマゾンウェブサービス1年間無料枠の適用外なので料金が発生します。)。
(3) 一番下のKey Pair は設定せずに、左上の “Accept Terms & Run 1-Click” をクリックします。
4. いよいよ起動です。 画面右上の ``‘Your Account’’ をクリックし、移動先ページの “manage your woftware subscription” をクリックします。
すると、一覧に SAS University Edition のインスタンスが作成されています。ここで画像の黒塗りの部分にインスタンスIDが表示されます。 これはログインパスワードになるので、規約に従って隠しています。これはコピーしておきましょう。 右側の “Access Software” をクリックします。ダイアログボックスが現れ、ユーザIDとパスワードを訊かれるので、ユーザIDに “sasdemo” パスワードにさきほどコピーしたインスタンスID を入力します。
ログインに成功すると、従来版と同じようなスタート画面が表示されます。「お知らせ」欄にアップデートの通知が来てるときは適宜更新しましょう。初回はたぶん更新通知が来ていると思います。
「SAS Studio を始める」をクリックすれば SAS を利用できます。
ダウンロードとインストール作業がないぶん, 従来版より時間はかかりませんが, アマゾンウェブサービスの無料利用は1年だけなので留意ください。

AWS版利用の際の Tips

インスタンス終了・再開の方法

1年間無料の場合, t2.micro インスタンスは月750時間まで無料なので, 実行する必要は少なそうですが, インスタンスの停止・再起動についても補足説明しておきます。 SAS Studio をログアウトした後、マーケットプレイスの “manage your woftware subscription” から “manage in AWS Console” をクリックし、アマゾンウェブサービスのEC2管理コンソールへ移動します。 左のタブから「インスタンス」をクリックし、SAS® University Edition のインスタンスを選択し、右クリックメニューもしくは「アクション」から、「インスタンスの状態」を選び、「停止」・「再起動」を選択します。「削除」を選んだ場合、インスタンスが削除されるので、永久ライブラリに保存したデータセットなども削除されます。なお、インスタンスはリージョンごとに表示されるので、起動したはずなのに一覧にない、という場合はリージョンが違う可能性があります。リージョンは右上で変更できます。

フォルダの扱い

AWS版 SAS University Edition はアマゾンウェブサービスのサーバ上で動かしているため、自分のパソコンにあるファイルを直接開くことはできません。画面左のアイコンをクリックすればアップロードが可能です。
ファイルやライブラリのパスを指定するときは、従来版と同じように /folders/myfolders/ その配下にアップデートしたファイルや、作成したフォルダを指定します。
以下は、“Hello,SAS!” とだけ書いた test.txt というファイルをアップデートし、それを読み込んでログに表示させるプログラムの実行結果です。

新機能・ビジュアルプログラミングについて

AWS版でも従来版でも最新のものにアップデートすればできるのですが、「ビジュアルプログラマ」という新機能が追加されました。プログラムを処理ごとに分割してフローチャート図のように表すことで、流れをわかりやすくしたり編集をしやすくしたりできます。画面右上の「SASプログラマ」をクリックして「ビジュアルプログラマ」を選ぶと以下のような画面になります。
フロー画面

クエリ作成画面

ビジュアルプログラミングは左上の + マークを押せば新しくユニットを作成できます。プログラム・クエリ・サブフローが選べます。クエリは SQL クエリのようにデータセットの結合・ソート・フィルタなどができます。この機能は SAS® Enterprise Guide (公式サイト 、略称 EG) という製品に似ています。 SAS® EG はクエリ以外にも、さまざまなグラフを作成したり回帰分析や多変量解析、時系列分析などの分析を実施したり、それらをレポーティングしたりといったことを、プログラムをあまり意識せずに実行することができます。

  1. アマゾンウェブサービス上でSAS の利用に必要なサービスは Amazon EC2 という仮想サーバを提供するサービスです。これは t2.micro インスタンス (仮想サーバ) の使用を月750時間以内におさえている限り無料です 。ただしこれは現時点のものですので、登録前に必ずアマゾンウェブサービスのサイト『AWS クラウド 無料利用枠』や『AWS 無料利用枠提供規約』などで利用枠の詳細をご自身でご確認ください。
  2. 2015年5月22日現在、英語のみですが、将来的に公式日本語版規約が公表されるかも知れません. またここでの概要はあくまで記事執筆者である私の個人的解釈ですので、規約の同意は自己責任でお願いします.

2015年9月3日木曜日

平均から分位点へ:分位点回帰

過去のブログエントリにおいて、
「高学歴ほど収入の振れ幅が大きい」とのお話がありました。
以下の論文は、回帰分析でその問いに答える研究をしています。
  
Angrist,Chernozhukov, and Fernandez-Val (2006) “Quantile Regression Under Misspecification, with an Application to the U.S. Wage Structure”

ではこの論文ではどのように分析したのでしょうか。
今回は分位点回帰(Quantile Regression)のご紹介です。


振れ幅が大きくなる現象をどう捉えるか 

収入の振れ幅が大きいとは格差が大きいということなので、
データがより広く散らばっていることになります。
言い換えると、分散が大きくなっていることになります。

つまり学歴が高くなるにつれて、
分散が大きくなることを確認すればよいことになります。
単回帰分析であれば以下のように散布図を作成すれば、容易に確認できます。


しかし、現実ではそうは簡単にいきません。
例えば重回帰分析の場合、散布図では確認することはできません。
では、どのようにすれば分析できるでしょうか。


分位点で回帰する分位点回帰(Quantile Regression) 

上の散布図において、
x(横軸)ごとのy(縦軸)の最小値付近を対象にすると、傾きはゼロになります。
対してxごとのyの最大値付近をみると、恐らく傾きは1程度になるでしょう。

例えば、yの分布の両端を対象にそれぞれ回帰直線を引くと、
以下のような 線になります。


つまり格差が拡大するケースでは、
分位点が最大値に近づくにつれて、傾きが大きくなるはずです。
このように平均ではなく、分位点を用いた回帰分析を、
分位点回帰(Quantile Regression)といいます。

種明かしをしますと、上の図における直線は
90%と10%のそれぞれの分位点で
分位点回帰を実行した回帰直線です。

この2つの回帰直線の傾きの差が大きいほど、
格差が拡大していくということになります。

ちなみに通常の回帰直線はこんな感じです。
違いがお分かり頂けたでしょうか。

 


ここまでのまとめ 

・ 分位点回帰は平均以外の分布の切り口を使って回帰分析ができる

・ 説明変数(横軸の変数)の値によって被説明変数(縦軸の変数)の格差が拡大
 することを見たい場合:
        ↓
 分布の両端(例えば10%と90%の分位点)で分位点回帰を行い、傾きの差を見る。


話を戻すと… 

話を戻しますと、今回のエントリの目的は、
「高学歴ほど収入の振れ幅が大きい」ことを検証することにあります。

つまり収入と学歴の関係が、
上の散布図のようになっていればよいことになります。
しかし、現実では他の要素も関係してくるので、
分位点回帰で分析してみましょう。



使用データ  


まずはデータから。今回使用するデータは、
Angrist, Chernozhukov, and Fernandez-Val (2006)で使用されているデータです。
このデータは2000年、1990年、1980年にアメリカで行われたセンサスデータの一部です。

データは以下のURLからダウンロードできます。


早速データをインポートしましょう。


proc import datafile='C:\usr\usrname\folder\angcherfer06\Data\census00.dta'
    out =work.census
    dbms=dta replace;
run;


Angrist, Chernozhukov, and Fernandez-Val (2006)では、
分析に用いた変数は賃金と教育年数のみでしたが、他の変数も使用してみましょう。
今回は以下の変数を使用します。



今回は2000年のデータを用いて、分位点回帰を実行しましょう。
SAS/STATのquantregプロシジャで実行できます。
分位点はmodelステートメントのq=オプションで指定します。

今回は10%、25%、50%、75%、90%の分位点で実行します。

ちなみに50%分位点は、
メディアンを使った「最小絶対偏差推定(Least Absolute Deviation Estimation:LAD推定)」です。


proc quantreg data = census ;
   model logwk = educ exper  black / quantile =.1 .25 .5 .75 .9;
   weight perwt ;
run ;


結果出力中の「Quantile and Onjective Function」の表にあるQuantileの項目が分位点を表しています。
上から10%、25%、50%、75%、90%の順番で表示しています。


res1.PNG
res2.PNG


res3.PNG


教育年数(educ)に注目してみると、分位点が最大値に近づくにつれ、
傾きが大きくなっていることが分かります。
従って、学歴が高くなるにつれ、
収入の格差が拡大するという仮説を支持する結果であると言えます。
それでは80年のデータを使うと、どのような結果になるでしょうか。


proc import datafile='C:\usr\usrname\folder\angcherfer06\Data\census80.dta'
  out =work.census
  dbms=dta replace;
run;

proc quantreg data = census80 ;
  model logwk = educ exper  black / quantile =.1 .25 .5 .75 .9;
  weight perwt ;
run ;




この結果をみると、10%と90%の分位点における傾きの差は、
2000年に比べて小さいことが分かります。
つまり20年の間に労働市場の構造が変化したことになります。

また、2時点間において黒人ダミー(black)の係数値にあまり変化が見られません。
人種による収入の格差が如何に根深いかが伺えます。



分位点回帰のメリット 

最後に分移転回帰のメリットを2点挙げます。
1.外れ値に依存しない
  • 最小二乗法は平均値を用いるため、外れ値に大きな影響を受けます。
    一方で分位点回帰は、メディアンなどの分位点を用いるため、外れ値に影響されにくくなります。

2.分布の形の変化を掴むことができる
  • 分位点ごとの回帰を行うことで、説明変数の値の変化と共に、
    被説明変数の分布の形がどう変化するかを分析することができます。
    今回の投稿ではこちらのメリットを活用しました。

今回は理論的な部分には触れませんでしたが、
基本的な理論とその応用については以下の本がおすすめです(訳本もあります)。


Mostly Harmless Econometrics: An Empiricist's Companion
(邦題:「ほとんど無害」な計量経済学―応用経済学のための実証分析ガイド)
著者:Joshua Angrist and Jörn-Steffen Pischke






ツイート数からみる"バーチャルYouTuber"ブーム

今や YouTuber の話題の半分を占めるほどのクチコミ数に 当社が提供するソーシャルビッグデータ検索ツールの「 beInsight (ビーインサイト)」を使って、話題の「バーチャル YouTuber 」について調べてみました。 「バーチャル YouTuber...