前回は、医師(MD)が使う統計ソフトと称しまして、codingが必要なソフトとそうでないソフトに大別し、それぞれのメリットとデメリットについて述べました。今回は、特にcodingが必要な統計ソフトについて、より詳しい比較をしていきたいと思います。
データの解析をcodeを用いて行う統計ソフトとして、R, SAS, STATA, Pythonなどが挙げられます。それぞれの特徴について、医師(MD)が知ってると良い範囲で比べてみましょう。
R
多くの統計ソフトが高額であるのに対し、Rは何と言っても
1. 無料
であることが大きな特徴でしょう。誰でも簡単にダウンロードできます。そして、無料であるが上、世界中に多くのuserがいます。Userが多いということは、とても大事なことです。なぜなら、
2. 有用なpackageを次々と開発してくれる
統計は、数式や確率の集まりです。複雑な検定になってくると、たった一つの検定のためのcodeが、数行から数十行に及ぶこともあります。
しかし、このcodeの集合体をたった一行のfunctionとして集約することができます。それを可能とするのがpackageというもので、優秀なuser達が、自発的に様々なpackageをつくって無料でweb上に公開しています。そのpackageを使えば、自ら数十行のcodeを書かなくても複雑な解析が可能となり、非常に便利です。
3. 様々な解析が可能
統計の手法は現在も日々進歩しています。そのupdateまたは新しい解析方法を、世界中のuserが我先にpackageにしてくれます。後述するSASよりも、可能な解析方法は多くなります。RにできてSASにできない解析はありますが、SASにできてRにできない解析はないと思います。
4. 疑問を解決しやすい
Rを使った統計で疑問がある場合、google先生に聞くことで大体解決できます。皆、同じような疑問をもっているんですね。同じような質問と解決策がweb上に散らばっていますので、困った時に非常に助かります。
5. 正当性に疑問あり?
ただし、無料ソフトであり、それぞれのpackageに含まれているfunctionが本当に正しいcodeから構成されているかどうか、その信頼性を疑問視する声もあります。確かに有料ソフトのように企業が販売しているものではないため、何か問題があってもpackageを開発した個人が責任をとる訳ではありません。中には、正式な論文の解析にRを使うべきでない、といった声も聞いたことがあります。
しかし、いざ最近の論文を読んでみますと、超メジャーなjournalでさえRを使って解析している論文が非常に多いことがわかります。また、ハーバード公衆衛生大学院(HSPH)の統計学者の卵(博士課程の生徒)たちも、殆どがRを使っていました。おそらく、信頼性についてはあまり心配しないで良いのだと思います。
SAS
こちらもRと同様、codeを書くことで解析ができる統計ソフトです。Rとの違いを考えてみましょう。
1. 使用ライセンス料が高額
SASは、SAS instituteという企業が販売しています。ソフトを使うためには、お金を払わなければなりません。身分(教職員 / 学生 etc)によっても異なると思いますが、個人で契約すると初年度は$8,000を超える(!!)支払いが必要のようです。個人で購入するのは、ほぼ不可能でしょう。
2. 信頼性が高い
企業が販売しているだけあり、その信頼性は高いです。もちろん、正式な論文でも何の問題もなく使えます。
3. 簡単なcodeで多くの情報量をoutput
例えば、連続変数が正規分布しているか評価したいとします。SASであれば、たった一行のcodeで、sample数, mean, median, IQR, skewness, kurtosis, Shapiro-Wilk testなどの複数の正規分布検定法など、これでもかというくらいの情報が一度にoutputされます。一方、Rでは(packageを使わない限り)それぞれに対しcodeを書かなければなりませんので、code量が数倍になります。SASは覚えなければならないcodeも少なくて良いということにもなります。
4. 公衆衛生大学院で多く使われる(特に教師)
HSPHの教授陣はSASやSTATA(後述)を使う傾向にあります。一つ目の理由は、やはり信頼性が高いからでしょう。二つ目の理由は、SASは講義に向いています。簡単なcodeから多くのoutputを得ることができ、codingの説明に多くの時間を割かず、本来の目的である統計を丁寧に説明することができます。
一方で、前述のようにRの方が様々な解析が可能であり、同じ検定であってもminorな設定を細かく変更しやすいことから、同じHSPHであっても若い統計学者や博士課程の学生は、Rを使っている傾向にあります。
STATA
HSPHが講義として正式に使っている統計ソフトとして、SASとともにSTATAというソフトがあります。STATAの特徴としては、以下のような点が挙げられます。
1. Codingの練習が(そんなに)必要ない
Codingという意味では、RよりもSASの方が簡単ですが、そのSASよりも簡単なのがSTATAです。一応、「codingが必要なソフトウェア」に分類されますし、確かにcodingが必要ではありますが、そのcodeは非常に単純で、多くはマウスでボタンをclickすることで済んでしまいます。個人的には、もはやcodingの不要なソフトに分類しても良いのでは?と思ってしまうくらいです。
2. 安い
Rのように無料とまではいかないですが、SASと比べると安いです。学生のbasic planですと年間$100未満で済みますし、$230ほど支払えば永久的に使えます。
また、余談ですが、詳しい人によるとmultiple imputationといった、missing valueに対して行う処理はSTATAが得意のようです。
Python
Rはdata cleaningといったデータ処理もできますが、基本的には統計ソフトという位置付けです。それに対し、Pythonはデータ処理や機械学習といった領域が主である”言語”ですが、統計解析も可能です。
1. 無料
Rと同じく無料です。簡単にダウンロードできます。
2. データサイエンティストに人気
前述のように、データ処理や機械学習といった領域で活躍している人たちに人気があります。ボストンへ留学中の私の経験から申し上げますと、ハーバード公衆衛生大学院で働く疫学者(と統計学者の重鎮)がSAS(or STATA)、若手の統計学者がRを使っている印象があるのに対し、Pythonはマサチューセッツ工科大学(MIT)の教師・生徒が好んで使っているようです。
2. Codingの練習が大変?
SASやSTATAと比べると、明らかにcodingが大変ですし、練習が必要です。そして、Rと比較してもPythonはやや玄人向けにも思います。
よく、”プログラミング言語“という言葉を聞きますよね。この”言語(language)”というのは、非常に面白い表現だと思います。
まず、このプログラミング言語も「読み」「書き」が存在します。それぞれのcodeが何を意味しているのか「読める」必要があり、そして自分で「書ける」ようにならなければなりません。
他にも通常の言葉との共通点があります。例えば、海外では2言語(bilingual), 3言語(trilingual)話せる人間が数多くいます。英語、スペイン語、ドイツ語、フランス語、、、といった感じです。彼らは、アルファベットを使っている時点で何かしら共通点があり、1つの言語を習得したら、2つ目以降の習得は比較的簡単と言います。
一方、パソコンのプログラミング言語も同じような印象を持ちます。すなわち、1つのプログラミング言語を習得したら、2つ目以降は難しくない、ということです。
私はパソコン系には完全に疎い人間であり、留学まではcodeとは無縁の人間でした。しかし、HSPH留学中にR(やSAS)と出会い、それらを初めて勉強しました。ある程度Rのcodeが”読める”、”書ける”ようになった後にPythonも勉強したのですが、両者の考え方自体は非常に似ており、理解するのに多くの時間はかかりませんでした。
そういった意味で、”言語”という表現は的を得ていると思います。
3. 統計が苦手?
前述のように、基本的にはデータ処理や機械学習といった領域でより本領を発揮するプログラミング言語です。元々は統計のための言語ではありません。したがって、Rと比べると統計にはやや不安がありました。しかし、近年の爆発的な人気により、Pythonで統計を行う人も増加し、様々なmodule(Rでいうpackage)が公開されています。おそらく統計という分野でも、Rに劣ることはないかもしれません。
Cf. Codingが不要なソフト
Codeをわざわざ打たず、画面上のボタンをクリックするだけで解析が可能なソフトがあります。検定方法や回帰分析に入れる変数など、全てクリック形式で選択可能です。SPSS、JMP、PRISM、EZR (easy R)などの統計ソフトがこちらに分類されます。
私がJMP(+SPSS)しか使ったことがないため、申し訳ありませんが、これらを比較することができません。しかし、どれも「初心者にとって簡単に」使えるように作られていると思います。ソフトによっては、美しい図や表、グラフも作成してくれます。
ただ、codeさえ打てるようになれば、RやPythonの方が、より自分の意図に沿った解析、表やグラフの作成が可能になると思います。
まとめ
最後に、MDによる統計ソフトの選び方を、以下のように簡単にまとめました。
メインは臨床家として働きつつ、負担にならない程度に研究も行いたい医師
→Codingの要らない市販の統計ソフト
臨床医は続けるが、研究もガッツリと行いたい人
・個人で使う:R、STATA
・施設で契約:SAS
MDではあるものの、研究の方がメインで統計や機械学習といった分野で活躍したい人
→Python、R
といった感じで考えたら如何でしょうか。
コメント
コメント一覧 (2件)
[…] 解析時、上記のようなcodeを打ち込む必要がある統計ソフトのことです。R, Python, SAS, STATAといった統計ソフトがこちらに分類されます。それぞれのソフトの特徴は、次の記事をご覧ください。 […]
[…] 医師が使う統計ソフトの選び方:各論 […]