スコープ
標題的には以下の内容だ
- 記述統計学と単回帰分析
- 記述統計学
- 単回帰分析
- 総合問題
- 統計の基礎と可視化
- ローレンツ曲線とジニ係数
少ない項目数に対しての意味不明度や危険臭がプンプンするが、基本的には計算はPythonに任せていいはず。
read_csv
実際に問題を解くに当たって、データをCSVから読む。それには、Pandasでread_csvを使用する。
確か、DataFrameを読み込ませるのには他にもいくつか手段があった気がするけれど、read_csvのパラメータをみていて気が付いたのは、
?pd.read_csv
Signature:
pd.read_csv(
filepath_or_buffer,
sep=',',
delimiter=None,
header='infer',
names=None
って感じで、セパレータとデリミタの指定ができるということ。
同じ意味では?と思い、
pd.read_csv("xxx.csv", sep=";")
pd.read_csv("xxx.csv", delimiter=";")
を比較してみたが、変わらなかった
これに関しては、StackOverflowにいい解説があった
What is the difference between sep
and delimiter
attributes in pandas.read_csv() method?
平たくいうと、delimiter
が指定されていない場合(=None)はsep
の値が入る。つまりはどちらを使っても構わないということ。
ただ、互換性や他の関数(to_csv
など)を考えると、sep
のほうが好ましいということらしい。
ソースコードにもdelimiter is the annoying corner case
って書いてあるし。sep
を使いましょう
データの質
複数列がある場合に、データの質を正しく認識する必要がある。
Nullデータを含んでいるかどうか、量的なデータか、質的なデータなのか。
量的なデータであれば、数学的な計算によって求められる値として使用することができる。
質的なデータであれば、それは量的なデータを分類するためのカテゴリとなったり、順位のようなデータをソートするための値としての使用となる
統計解析
統計解析というものは、記述統計と推測統計に分けられるとのこと。
- 記述統計:データをまとめてみやすく整理し、データの持っている概ねの情報を把握することを目的とする
- 推測統計:確率分布に基づいたモデルを用いて精密な解析を行うこと
ざっくりいうと〜って感じの記述統計と、予測モデルを立てておそらくこういうことだ!っていう推測統計というところか。
AI/機械学習を学ぶ目的としていることを考えると圧倒的後者なんだけれど、推測統計は次のChapterらしい。
箱ひげ図
plt.boxplot(student_data_math.G1)
という形で箱ひげ図がかけます。
って、なんじゃそりゃって感じになった。見た目的には株価を示すローソク足に見えなくもない。
ローソクに対してのBox下限、上限が25%タイルと75%タイルという分布を示すものらしい。英語でそのまま box plot という。
これに限った話ではないけれど、出来るだけ関数がなんの英語から来ているのかを覚えておくといい。
今回、boxplot関数が箱ひげ図を描く関数ということを覚えたわけだけれど、そもそも箱ひげ図が英語でBox Plotだということを知っていれば、関数一覧からも発見することができるだろうし。
数式、数式、数式
変動係数は標準偏差を平均で割ったもの。
student_data_math.std() / student_data_math.mean()
分散を導く関数がvar
2変数以上の分散を考えるときに使う共分散を導くのがcov
共分散は数式としては、平均からの偏差の積で求められる
それらの最終形として、2変数に何かしらの関係性があるかどうかを示すために相関係数を算出する。
ここでは、ピアソン関数というものを用いて係数を算出している
sp.stats.pearsonr(student_data_math.G1, student_data_math.G3)
うーん、今日はここまで!