医療職からデータサイエンティストへスマートフォン用の表示で見る医療職からデータサイエンティストへ統計学、機械学習に関する記事をまとめています。Pythonデータ解析をする上で、Rを使うべきかPythonを使うべきか、この議論は多くの人が色々な意見を持っています。最近はPythonユーザーが増えていますが、Rをメインで使う人が少なからずいるのもまた事実です。今回は統計解析をするならどっち?という観点からRとPythonを比較したいと思います。ちなみ私はRユーザーなので、その辺りは加味した上でご覧ください^^;Python統計に関してはこちらを参考にさせて頂きました。Rでt検定を行うにはt.test{stats}を使います。ちなみにデフォルトは、対応の無い、等分散性を仮定しないwelchのt検定となります。出力には、t統計量や自由度、p値、95%信頼区間、それぞれのグループの平均値などが出力されます。お次はPythonです。pvalue=1.2647201884359637e-05)Pythonではscipyのstatsをインポートして行います。指定できるのは等分散性の仮定のみで、デフォルトはTRUE、つまり等分散性を仮定するt検定です。ちなみに対応ありの場合は関数が異なり#対応有りstats.ttest_rel(a,b)となります。信頼区間の算出はややこしく、t分布に平均と分散、自由度を指定して求める必要があります。-3.42対応の有無、等分散の仮定の違いによって分散と自由度が異なるため、Pythonで正確な信頼区間を算出するのは、骨が折れそうです。Advanceなやり方ですが、一般化線形モデルを使って対応の無いt検定を行うこともできます。線形モデルでの平均値の比較については、こちらがわかり易いです。-3.418183CoefficientのXが2群の平均値の差、confint()の出力のXが95%信頼区間です。先ほどのt検定と比較しても、同じような結果になっていますね。-3.418Pythonで線形モデルを作るにはstatsmodels.apiを使います。Xには切片項の1を加えることを忘れないようにしてください。Pythonでも結果は同じですね。切片項を追加するのが面倒であれば、from_formulaメソッドを使って、Rライクに書くこともできます。-3.418どちらでも結果は同じです。する必要がありますが、Rに慣れている私はこちらの方が好きです^^;t検定まとめ以上から、結果の出力や指定できるオプションの使いやすさなどは、Rが優勢なイメージです。点推定値や大まかな検定のみであればPythonでも行うことができますね。平均値の比較:一元配置分散分析t検定ときたら、やはり次は3群以上の比較を行う分散分析です。