統計ソフト選び:RでOK!

統計ソフト選びは好き嫌い個人の慣れや需要に左右されることが多いと思うで参考になるか分からないが一応記事にしておく。

妻はRでパッケージを作っている側の人間なのでまたそっちの話を書いてもらおうとも思う。

「ペーパー書きたいんだけど、どれ勉強したらいいですか?」

という人に僕は恐る恐るRを勧めている。

僕が使ったことのあるソフトは

  • SAS
  • R
  • Python (Python は言語だろ的なツッコミは無しで…)
  • Stata

習熟度はまばらで用途も違うのだが、1番長く使っているのはSAS。Python は機械学習のプラットフォームを作るのに勉強して今はデータハンドリングに使っている。Rはほとんど data viz  (data visualization) のみ。Stata は授業で嫌々1年間使わされたがあまり身に入っていない。

全てのプラットフォームを使い尽くしたわけでは全然ないしもちろん見落としている長所短所があると思うので、こんな特徴もあるよというお声があればシェアしていただけたらとてもありがたい

以下は僕の私見。

SAS vs. R

ベーシックな臨床・アウトカムリサーチをするのに必要な解析手法はSAS 内で完結していると思う。Rはそれに加えて、プラットフォームが柔軟でdata vizが他と比べて格段に優れているので更に上を行く印象。Pythonはおそらく機械学習やディープラーニングの方に行く時に有効だと思うのだが、普通の生物統計系の解析やdata vizに弱い感じがする。

なので、例えば共同研究者がSASのスーパーユーザーでSASを使った方がコミュニケーションとりやすい、とかSASを手取り足取り教えてくれる、等の外的要因がない限りはRスタートが良いと思う

基本的に、SASにできてRにできないことは無いと思う。また、SASのヘルプページは象形文字レベルの不可解さでRのサポートコミュニティーや掲示板の比にならない。

そして重要なのが、SASは有料でライセンスを個人で買う場合100万円とかする。Rは無料なのでそこでも大差がつく。そしてWindows版のみ

その上で僕が経験したSASが必要だと感じたかなり特殊なケースは:

  • Centers for Medicare and Medicaid (CMS) などの政府機関は認定された開発者が書いたパケージ/ソフトではないとダメなのでSAS推奨。
  • ニッチなパッケージが何故かSAS専用にデベロップされていてR版が存在しない、もしくはベータ版オンリーで弱い。

に限られるので基本Rで良いと思う。

ただ、SASの方が最初の立ち上げ手順が簡単なことやデータシートが直感的だったりコードが書きやすかったりでラーニングカーブはRと比べて低めな気はする。

下はお蔵入りしたが気に入っていたggplotを使ってRで作った図。あとTable 1 作成を効率化できるtableoneとか気に入っている。後は、図を手書きっぽい仕様にしてくれるggroughでできた図をいつか論文に通したいと思っている。その程度でR語ってんじゃねぇという方、ごもっともです!

Stata vs. R or SAS

Stataはスーパーユーザーの生物統計系の人に聞いたところSASと同等レベルのことができるので他に手を出す必要は感じない、という意見を得た。

僕はSAS, R, Python 後の強制Stataだったのであまり良い印象はない。

あとSASほど粋な価格設定ではないが有料。

Python vs. R or SAS

Python は、XGBoostメインの機械学習のプロジェクトの時に使った。骨組みコードをデータサイエンス系の共同研究者にもらって、手探りで自分用に書き直していった感じ。その過程で本を読んだり人のコードをググったりで勉強した。

最終的なコードはscikit-learnをベースにして書いた。

ずるずる引きずって1年以上かけたプロジェクトになってしまったが、今ようやく査読中。

Pythonは生物統計をやるために最適化されているパッケージが少ない印象で、P値の計算とかフィットしたモデルの係数や信頼区間を出すのに手間がかかった(prediction系のモデル評価をするのは割と簡単だったがinference 系の結果が難しかった)。これは単に僕が不慣れだっただけかもしれないが…

データハンドリングに使えるPandas というパッケージが神懸かっていてこれは多目的で使っている。SASのProc SQLとは比べ物にならない使いやすさだと思う。Pandas profilingというパッケージも、データを突っ込めば全ての変数の分布やmissingnessをまとめて図にアウトプットしてくれて鬼優秀。

一応、複数のプラットフォームをかじっておいて良かったなと思うことも無くはない。どうしても使いたいが自分で書けないレベルのパッケージが一つのプラットフォームにしかない場合や、何故かSASでは取り込めないデータに出会した場合とか。でも取りあえず一つ選んで、浮気せずに使いこなせる様になるのが効率的ではと思う。

とりあえずRをやっておけば大丈夫!という結びで。

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: