ベイズ統計のそれぞれの単回帰分析を行いました。一般的に単回帰分析と言う場合の手法である。真の母数(パラメータ)があって、それを得られた実データを通して推定するやり方である。真のパラメータを推定する方法として、最尤推定、つまり尤度が最大になるようなパラメータを求める。ノイズとして正規分布を仮定すると、最尤推定による方法は、最小二乗法と一致する。1まずは散布図を書く。mpgでdispは負の相関がありそうで、これを単回帰分析してみる。ggpairs(data[c(1:3)])回帰分析はRで非常に簡単に行うことができる。頻度主義による単回帰分析では、切片と傾きが推定するパラメータとなる。下の結果から、mpgに対する傾きは-17.429で、P値も非常に小さい。9.38e-10予測区間をプロットすると以下のようになる。下には信頼区間のデータフレームも作成。pベイズ統計による単回帰分析パラメータを確率変数として、その確率分布を求める方法である。データが与えられた時のパラメータ(この場合切片と傾きとノイズ項である正規分布の標準偏差)の確率分布である事後分布を求める。事後分布は尤度関数と事前分布の積に比例する。事後分布を解析的に求める代わりに、尤度関数と事前分布の積からの乱数サンプルを発生させて、事後分布の確率分布を求める。(マルコフ連鎖モンテカルロ法:MCMC)StanとそのRのパッケージrstanを用いることでこれを簡単に実現できる。X_new=X_new)ここでdataはデータをrstanモデルに渡すためのインターフェースになる。実データXとYを渡すのはモデル作成に必要なのは当然として、新たなX_newに対する予測値もstan側で計算できる。次にstanモデルファイルを作成、下記のようになる。事前確率は、無情報事前分布として指定しない。}}次に実行していく。)summary(fit)で各パラメータの平均・標準偏差・quantileが確認できる。0.9996721傾きbの平均値は-17.40673で、頻度主義における単回帰分析の結果と非常に近いことがわかる。ベイズ的なやり方のメリットとして、傾きbの確率分布(平均と標準偏差など)を把握でき理解しやすい。p役に立った方はtwitterなどでフォローください。Me事業企画+電気系エンジニア国内電気メーカ設計→外資電気メーカプロダクトマネージャー→スタートアップ30代でプログラミングに目覚め、アプリ開発、競技プログラミング、最近はデータ解析もやっています。Native),Python,C++投稿内容は個人の意見・見解であり、所属組織の意見・見解を代表するものではありません。ブログ内容の正確性については一切保証いたしません(誤りを見つけた場合はコメント欄などでお知らせいただけると幸いです)。