楽屋

SAS R and Python―第1回SAS R Pythonによる、線形回帰モデル

統計ソフトには、代表的なものとして、SAS、R、Python、SPSS等のツールが存在しますが、それぞれを横ぐしでみた書籍は日本にはないと思われます。 これらの統計ツールの中で現在、代表的なプログラム言語であるSAS、R、Pythonをもちいて、同じデータ、同じ分析手法を行い、それぞれプログラムを実際書くことで、SAS、R、Pythonのコーディングのしやすさ出力内容の違い、などについて比較検証します。コードはオプションを使わずデフォルトのものを使います。

使用データ

第一回目は、以下のデータを利用して、各プログラム言語で線形モデルを記述します。
変数名 内容
RIM 犯罪発生率(人口単位)
ZN 25,000平方フィート以上の住宅区画の割合
INDUS 非小売業の土地面積の割合(人口単位)
CHAS チャールズ川沿いかどうか(チャールズ川沿いの場合は1、そうでない場合は0)
NOX 窒素酸化物の濃度(pphm単位)
RM 1戸あたりの平均部屋数
AGE 1940年よりも前に建てられた家屋の割合
DIS ボストンの主な5つの雇用圏までの重み付きの距離
RAD 幹線道路へのアクセス指数
TAX 10,000ドルあたりの所得税率
PTRATIO 教師あたりの生徒の数(人口単位)
B 1000(Bk-0.63)2として計算:Bkがアフリカ系アメリカ人居住者の割合(人口単位)
LSTAT 低所得者の割合
MEDV 住宅価格の中央値(単位1,000ドル)

モデル

SAS

R

Python

比較検討

データの読み込みプログラム

R、Pythonに関しては、オンラインにあるデータを読み込む際、簡単に読み込みが可能なパッケージが存在しますが、それに対して、SASはオンラインにあるデータを読み込む際、infileステートメントを使用する場合、変数名をコーディングする必要があるため、Rにくらべると多少多くのコーディング数が必要になります。
SAS9ステップ数
R6ステップ数
Python7ステップ数
ステップ数 ① R ② Python ③ SAS

出力結果プログラム

出力結果プログラムについては、R、Python、SASともに簡単なステートメントで多くの情報量が出力されますが、出力内容については、特にPythonの出力内容が充実しています。
SAS3ステップ数
R3ステップ数
Python3ステップ数
ステップ数 ① R  ② SAS ③ Python

結論

オンラインのデータ読み込みの場合、R、Pythonは簡単なパッケージにて読み込むことが可能であることに対し、SASは変数をあらかじめ、宣言する必要があるためプログラムのコーディングが必要になります。またSASはオンラインのデータを読み込むというより、予めデータベースに保存した大規模データのハンドリングが得意とされるため、オンラインの小規模なデータだと優位性が少ないように考えます。 出力に関しては、SAS、R、Pythonともにすくないステップで必要な情報をだしてくれる関数があり、特にPyhonの出力内容はかなり充実した内容となっていました。

参考文献

  • SAS and R: Data Management, Statistical Analysis, and Graphics, Second Edition Ken Kleinman (著), Nicholas J. Horton (著)
  • Python機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear) 単行本(ソフトカバー) – 2016/6/30 Sebastian Raschka (著), 株式会社クイープ (翻訳), 福島真太朗 (翻訳)
  • 新版 実用SAS生物統計ハンドブック 臨床評価研究会(ACE) 基礎解析分科会 (著), 浜田 知久馬 (監修)