なかなか時間が取れないけれど、少しずつでも進めていく。
昨日までで、相関近くまで行った。そう、ピアソンだ
Pearsonr
sp.stats.pearsonr(student_data_math.G1,student_data_math.G3)
(0.8014679320174141, 9.001430312276602e-90)
結果として、出てくる0.801という値が1に近づけば近づくほど、2変数間の相関が強いということになる。
まて、2番目の9.001はどうしたんだ...というわけでリファレンスをチェックだ
Returns
r : float
Pearson's correlation coefficient
p-value : float
2-tailed p-value
The p-value roughly indicates the probability of an uncorrelated system producing datasets that have a Pearson correlation at least as extreme as the one computed from these datasets.
うーん、よくわからんので、日本語に頼ってみる
こちらを参照させていただくと、p値は優位確率というらしいので、さらに調べる
優位確率
統計的仮説検定において、帰無仮説を棄却し 対立仮説を採択する時の基準です。
有意水準とも言います。一般的に5%、1%が使用されます。
うん。本当に日本語か?と思うくらい意味不明だが、ようするに優位確率が5%に満たない場合は、得られた相関係数は偶然の産物であって信用ならんということなんだろう。
理解が正しい自信は全くないのだが。
ただし、pearsonrが有効なのはあくまで線形の相関があるときに限るので、相関が非線形の場合には役に立たないのが注意点。
必ずしもpearsonrでやれば良いというわけではないのだ。
おそらく、それに関しては今後のChapterでも出てくるんだろう。
PairPlot
構文としては下記の通り
これで、DataFrame中の数値要素間の相関をグラフィカルな形で表示してくれる
上記の例では、DataFrame中の4要素に関して表示している
軸が交わる箇所にはヒストグラフが表示され、それ以外は2変数間の散布図が表示され相関をみることができる。
試しに例題にあったDataFrameを加工せずにpairPlotしてみるとこうなった
大きすぎてキャプチャがまともにできなかった。
ちなみに、表示された図をファイルに保存するのはこれでいけた
plot = sns.pairplot( DataFrame )
plot.savefig("output.png")
やり方を調べると、 get_figure()
を呼び出してからsavefig
というのも引っかかったが、バージョンが古い頃の手法のようで、現在はエラーになった。
単回帰分析
詳しくは以降のChapterでやるそうなので、言葉の意味をしっかりと理解したいところ。
目的変数:求めたい数値、変数
説明変数:目的変数を得るための変数。説明するために用いる変数
単回帰分析は、この目的変数/説明変数の関係性が1変数のみで成り立つ式を仮定して解くというものらしい。
これらを進めていくには、sklearnを使っていくことになる。
ざっくりと見通したが、総合問題はまた、明日にしよう。
うーん、進みが遅いけれどしょうがない。