狠狠撸

狠狠撸Share a Scribd company logo
九州大学 大学院システム情報科学研究院
情報知能工学部門
データサイエンス実践特別講座
備瀬竜馬,Diego Thomas, 末廣 大貴
データサイエンス
概論第二+演習第一
6月11日
本日の内容
?統計分析
?確率と確率分布
?信頼区間
?平均の差の検定( t 検定)
?分散分析
?その他の統計分析
2
確率と確率分布
データ解析では,何かと避けては通れぬ「確率」...
全力で「やさしく」説明します!
頻度~わかりやすい場合
?さいころを1000回振って出た目の回数
?「1」が168回,「2」が164回, ..., 「6」が164回
?5段階アンケートの回答結果の集計
?「非常によい」が103名,「よい」が30名,...,
「非常に悪い」が0名
?今日のメニュー注文者数
?「かつ丼」が58食,「ラーメン」が102食, ...,
「高菜めし」が21食
ヒストグラムによる頻度分布の可視化:
さいころを1000回振って出た目のヒストグラム
4の目が出た回数
頻度
164回
それぞれの値のことを
「ビン」と呼ぶ
頻度~そのままでは計りにくい場合(2/2)
→ 区間を考えればOK
?あるクラスの学生の身長
?「140cm未満」が1人,「140-145cm」が2人,...,
「160-165cm」が9人, ...
?ある交差点での1日の車の通過台数
?「1500台未満」が0日,「1500-1600台」が3日,....
頻度がよくわかるように!
(ただし区間幅の設定によって集計結果が変わることに注意)
ヒストグラムの場合と同じ!
?これも「区間を考えた」から頻度が定義できたんです!
160cm
~165cm
頻度
ヒストグラムの出力方法
(前回の復習も兼ねて)
8
?“height_weight.csv”を読み込んで、身長のヒストグラ
ムを作成してみよう
身長
他の書き方でもOK
ヒストグラムの出力方法
9
?“height_weight.csv”を読み込んで、身長のヒストグラ
ムを作成、ビンの数(範囲)を変えてみよう!
身長 身長#bin=30 #bin=50
練習1
?height_weight.csv を読み込んで,
体重のヒストグラムを作成してみよう
?ビンの数(範囲)を変えてみよう
10
確率と確率分布①
そもそも確率?確率分布とは?
確立じゃないです.確率です.
(心が折れない)
確率って何だ?
?確率=「出やすさ」
?ただそれだけ.これを理解しておけば,まずは大丈夫
?「出やすさ」なので,ヒストグラム(頻度)と似ている
?データ??が取りうる値が「有限個」と「無限個」で扱いが違う
点も,ヒストグラムと似ている (後述)
「データ??が取りうる値が有限個」の場合の
確率分布(頻度分布にそっくり...)
?例1:さいころの目
?取りうる値=6通り
確率
1/6
1 2 3 4 5 6
全部足せば1になる
これを「連続分布」と呼びます
?離散分布 ??(??)
? ??(??)は確率密度
?ある区間を考えれば確率
?面積が確率を表す
?従って「値??がドンピシャで出る
確率はゼロ」(わかりにくいですが...)
?全部の範囲を考えれば1になる
?∫ ?? ?? ???? = 1
確率
密度
??
??
確率
密度
??
本講義では
小文字の??
(離散?連続以外の)もう一つの分類:
パラメトリックとノンパラメトリック
?パラメトリックな確率分布
?少数のパラメータで形状が定まる分布
?ex. 正規分布 → 平均?分散
?ex. 一様分布 → 分布範囲
?ノンパラメトリックな確率分布
?任意形状の分布
?「○○分布」というような名前はない
?ヒストグラムもその一種
分散
平均
?? ??
確率分布がわかると何がウレシイのか? (1/2)
?データの分布を少数のパラメータを持つ「数式」で表せる
?多くのデータは,パラメトリックな確率分布に従うことが多い
?では,数式で表されると,何がウレシイ?
?全データを覚えておかなくても,その数式(のパラメータ)があればOK
?様々な数学的演算(微分や積分など)を式の上で行えたり,比較
が容易に
分散
平均
確率分布がわかると何がウレシイのか?
(2/2)
?他にも
?信頼区間や検定,回帰,認識など,様々な統計解析の基礎と
なっている
?頻度に比べ,「合計=1」に正規化されているので扱いやすい
分散
平均
分散
平均
条件Aでの
データ
条件Bでの
データ
差がある? 差がない?
確率と確率分布②
正規分布
「連続」なパラメトリック確率分布の代表格!
(1次元)正規分布:
ガウス分布とも呼ばれます
? ??2: 分散
? ??: 平均
?関数形は複雑に見えるが,落ち着いて考えてみよう!
??
?? ?? = 1
2????2
exp ?
????? 2
2??2
??
分散が大きいと山のすそ野が広い
平均は、山の頂上の場所
1次元正規分布の分散(1/2)
20
??
??2
→小 ??2
→大
??
??
??
??
??
??
??
前身の
二次関数
1/??2
倍
1/??2
倍
正規分布の分散
「自分がどれぐらい外れているか」がわかる
95%が
この中に
68%が
この中に
??
?? ?? + ??2 ?? + 1.96 ??2?? ? ??2?? ? 1.96 ??2
?? ± ??2
?? ± 2.57 ??2→99%
?? ± 1.96 ??2
式はわからなくてもOK.それより大事な
「正規分布の性質」のまとめ
?平均付近の値が一番出やすい
?平均から離れた値ほど出にくくなる
?出にくくなるスピードは分散に関係
?平均を中心に左右対称
?すそ野は,?? = ?∞から+∞まで広がっている
?出やすさはゼロに限りなく近いがゼロではない
??
??
正規分布によるデータ表現
23
?“height_weight.csv”を読み込んで、身長のヒストグラ
ムを正規分布で表現
まずは、データの平均、分散を求める
平均:180.103960396
分散:94.291271444
標準偏差:9.71036927434
正規分布によるデータ表現
24
?求めた平均、分散を用いて、正規分布を表現
身長
パラメトリックなモデル
正規分布の場合、平均と分散の2つのパラメータだけで分布を表現
ヒストグラムの頻
度を足して1にな
るように正規化 確率
正規分布の確率
を求める関数
練習2
?height_weight.csv を読み込んで,
体重のヒストグラムを正規分布で
表現してみよう
25
信頼区間
お世話になった参考書:
栗原伸一,入門統計学,オーム社
スライド作成でお世話になった方:早志英朗先生@九大情報知能
この「信頼区間」で学ぶこと
存在しうるすべてのデータ
実際に手に
入ったデータ
例えば
「平均値」
あなた,この平均値,真の平均値と同じと思います?
いや,ある程度近いとは思うけど,多少違うかも...
※なお以下では平均の信頼区間について論じますが,分散の信頼区間もあります
こういう状況と少し似ている
28
こないだのテスト,みんな40点ぐらいだよ~
みんなって誰よ?名前言ってみなさい!
AちゃんとB君とCさんが40点だよぉ
それじゃみんなじゃないでしょ!
じゃぁ,平均は30点から60点ぐらいだよぉ
ウソ言いなさい!平均90点なんじゃないの?
90点はあり得ないよぉ~
真の平均点を求めたい:例題
?お母さんは,子供が受けたテストの
真の平均点を知りたくなった
?しかし,テストを受けた生徒は相当多いので,
全員のテストの点数を聞くのは無理っぽい
?数人なら聞けるかも...
?真の平均点はわかるのだろうか?
ウソ言ってないよ~
もちろん,ありとあらゆる生徒にテストの点数を
聞けば,真の平均はわかるだろう
30
ありとあらゆる生徒にテストの点数を聞いて回る
さすがに
それは無理
すべてのデータの集合=母集団:
母集団全体は見えないことが多い
31
コストが
かかる
想定される
数が多すぎ データ取得中に
増減が起こりうる
ちなみに父集団ってのはありません.
お母さんとも無関係.
母集団の英訳は「population」です.
(mothers’ groupではないです)
全員は無理
全部が無理なら一部だけ:標本
32
無作為抽出
(ランダムサンプリング) 標本
母集団:ありとあらゆる生徒
??: 母平均
(ありとあらゆる生徒の平均点)
??2: 母分散
(ありとあらゆる生徒の平均点からのばらつき)
???: 標本平均
= (81 + 67 + 77)/3 = 75
??2
: 標本分散
= (62
+ 82
+ 22
)/3 ≈ 34.7
??: 標本サイズ = 3
知りようが
ない
知りようが
ない
こちらは
わかる
82点
67点
77点
やりたいこと:
標本平均から母平均を推定したい
33
無作為抽出
(ランダムサンプリング)
標本
母集団:ありとあらゆる生徒
??: 母平均
(ありとあらゆる生徒の平均点)
??2: 母分散
(ありとあらゆる生徒の平均点からのばらつき)
???: 標本平均
??2
: 標本分散
??: 標本サイズ
③なるべく
正確に
推定したい
①これを知りたいのだが,
全生徒(母集団)が
不可知なので知りようがない
②標本を測れば
計算できます
面白い事実1:「標本平均の分布」は
母平均を中心とした正規分布!
母集団: ありとあらゆる生徒
標本平均???
頻度
標本1
標本平均 68点
標本2
標本平均 71点
…
標本??
標本平均 95点
母平均
ちなみに元の分布がどんな形でも,
「標本平均の分布」は正規分布になる
母集団: ありとあらゆる生徒
…
標本平均???
頻度
母平均
頻度
点数
母平均
元の分布:
全然正規分布
じゃない
標本平均の分布:
母平均まわりの正規分布
なんだかスゴイこの関係を「中心極限定理」と呼びます
面白い事実2:
「標本平均の分布」のバラツキは標本サイズで決まる
36
標本サイズ小
母平均 標本平均 ???
標本サイズ大?
標本平均の
ばらつき小
標本平均
68点
標本サイズ大標本サイズ大
標本サイズ小
母集団: ありとあらゆる生徒
標本平均
71点
標本平均
95点
標本平均
72点
標本平均
70点
標本平均
68点
まぁ確かに標本サイズが無限大になれば「母平均」からブレないだろう
面白い事実2:
「標本平均の分布」のバラツキは標本サイズで決まる
37
「より多くの標本から平均を求めれば,母平均に近づく
(=母平均からのブレは少なくなる)」
この一見アタリマエにも見える傾向を,業界では「大数の法則」と呼ぶ
面白い事実2:
「標本平均の分布」のバラツキは標本サイズで決まる
?標本平均の分散(標本平均のばらつき)
?????
2
=
??2
??
??2
: 母分散
??: 標本サイズ
標本サイズが大きくなるほど,
バラツキはどんどん小さく
母平均 標本平均 ???
標本サイズ大
標本サイズ小
というわけで,基本的には
データは多いほうがよい
プログラム:標本平均の分布
? 標準正規分布(平均:0、分散:1)からランダムで100個の標本
サンプリングを100回繰り返して、その平均を求めよう!
? まずは、標本を繰り返し、その標本平均をリストに保存
プログラム:標本平均の分布
? 標準正規分布(平均:0、分散:1)からランダムで100個の標本
サンプリングを100回繰り返して、その平均を求めよう!
? その標本平均の分布をみる
平均 :-0.0266
標準偏差: 0.0873
練習3:
標本平均の分布
? 標本数Nを100,1000,10000と変えてみよう!
? 分布の形がどう変わるかを見てみよう!
? 標本数Nが大きいほど、平均は0に近くなり、分散(標準偏差)は小さ
くなるのがわかる。(中心極限定理)
信頼区間
真の平均,ピッタリ答えるのは無理なので,
「この範囲に(ほぼほぼ)ある!」と答える
虫のよいケース:
母分散がわかっているケース (1/3)
?母分散??2
=すべての生徒のテストの点数の分散
?ふつうはこれが既知ということはないのだが...
?これが既知なら,標本平均の分散?????
2
は ???2 ?? なので …
?母平均は「今得られた標本平均の周りに分散?????
2
で分布」と考える
のが素直
標本平均68点
??????
2
= ??2
??
真の平均(母平均)
虫のよいケース:
母分散がわかっているケース (2/3)
?なので...
?真の平均は,95%の確率で,標本平均±1.96 ??? ??の
範囲にある!
?母分散??が小 or ??が大 → 区間は狭く(=より正確に)
標本平均
68点
真の平均
(母平均)
標本平均 ?±1.96 ?????
2
= ±1.96?? ??
95%
95%信頼区間
?さらに...
?真の平均は,99%の確率で,標本平均±2.57 ??? ??の
範囲にある!
?信頼度を高める(95→99%)には区間を広げざるを得ない
虫のよいケース:
母分散がわかっているケース (3/3)
標本平均
68点
真の平均
(母平均)
標本平均 ?±2.57 ?????
2
= ±2.57?? ??
99%
99%信頼区間
Q:普通は母分散がわからない.どうするか?
A: 標本サイズ??が大きいなら標本分散で代用
標本平均 72点
標本分散?????
2
78 ≒ 母分散??2と「みなす」
標本サイズ??
= 例えば 100
でも...標本平均はそのまま信じないのに(信頼区間つきで答える),
標本分散は「≒母分散」とみなす.ちょっと気持ち悪いなぁ...
気持ち悪いなら,次スライドの方法も使えますよ
あとは「虫のよいケース」と同じ
Q:母分散も不明,??も小さい.どうするか?
A: 次の2つの変更をする
?変更1: 母分散の代わりに,標本分散を用いる
?変更2: 正規分布の代わりに(よく似た)t分布を用いる
標本平均68点
標本分散?????
2
112
怪しいけど
しょうがない
標本平均68点
真の平均
(母平均)
標本平均 ?±2.262????? ?? ? 1
95%
t分布
正規分布では1.96??だったので,
t分布を使うと,もっと広め,
すなわち安全サイドに
範囲をとることになる
参考:なんだろう,t分布...
以下の点だけ抑えておけば十分
wikipedia
=正規分布
=標本サイズ?? ? 1
①標本サイズ?? →大で
正規分布に近づく
②正規分布よりつぶれ
ている →
同じ信頼度なら
区間は広がる
プログラム:母平均の推定
? 成績データ“grade_data1.csv”を読み込んで、Englishの母平均
の95%信頼区間を推定してみよう!
信頼区間の下限: 55.0903702599
信頼区間の上限: 81.9096297401
練習4
50
? 成績データ“grade_data1.csv”を読み込んで、Mathematicsの
母平均の95%信頼区間を推定してみよう!
統計的検定
“testing”
お世話になった参考書:
栗原伸一,入門統計学,オーム社
スライド作成でお世話になった方:早志英朗先生@九大情報知能
統計的検定とは何で,いつ使うのか?
? 「AとBは差がある」と統計的に言いたいときに使う
? 事例
? 東京と福岡で平均所得に差があるか?
? あるトレーニングを行った前後で能力に差が出たか?
? あるダイエット食品に効果があるか?
? ダイエット食品と食べた群と食べなかった群に差があるか?
? ある遺伝子がある病気の原因になるか?
? 「野生型」と「その遺伝子をノックアウトした型」で,病気の罹患率に差があるか?
シンプルな検定の例
?九大生と名乗る学生??名がやってきた
?怪しいので,あるテストを受けさせたら,
平均点は???だった
?過去に同じテストを九大生全員に実施したところ,
点数は平均??,分散??2の
正規分布を成した
?彼らは九大生なのかニセモノかを検定せよ
九大生デス
差があるか?
全九大生
統計的検定の基本手順 (1/3)
? 帰無仮説の設定
? 言いたいことと反対の仮説(「AとBに差はない」)を立てる
? 仮説の下で矛盾が起こることを証明
? =そもそも仮説が間違っていた
? 対立仮説(「AとBに差はある」)を採択
なんかすごく回りくどく見える
最初から「差がある」ことを示せばいいのでは?
九大生と考える
九大生ならそんな
点数とるはずがない
九大生ではない
統計的検定の基本手順 (2/3)
回りくどく見えますが...
? 「差がある」ことを直接証明するよりも
? 「差がない」ことを前提にして矛盾を導くほうが楽
? いわゆる「背理法」
? 「 2が有理数でない」ことを直接証明するよりも
? 「 2が有理数である」ことを前提にして矛盾を導くほうが楽
? 1つでも矛盾が見つかれば,それで否定できる点がありがたい!
正面から試行錯誤しながら追及するより,
容疑者に自分の正しさを証明させながら,
そのほころびを(1つでも)見つけたほうが早い
統計的検定の基本手順 (3/3)
もうちょっと詳細
? 帰無仮説の設定
? 言いたいことと反対の仮説(「AとBに差はない」)を立てる
? 検定統計量の計算
? 例えば標本平均
? 確率の計算
? その統計量が「どの程度起こりうるものなのかどうか」
? 仮説の判定
? そもそも仮説が間違っていた
? 対立仮説(「AとBに差はある」)を採択
九大生と考える
「九大生ならとるはずが
ない」点数をとった
九大生と考えたのが
間違いだった
九大生としての
テストを受験させる
九大生ではない
帰無仮説の矛盾が見つからなかった
(=棄却できなかった)場合の考え方
帰無仮説??0:差はない
「差がある」とも
「ない」とも言えない
(要は「フリダシに戻る」)
対立仮説??1
「差がある」を採択
棄却できた
(「差はない」という仮説の
矛盾を見つけた)
棄却できなかった
(「差はない」という仮説が
間違っていると言える
ほどの根拠がない)
??0
??0だとすれば
ここはどうなってんだ?
すみません,
??0はウソでした
う!そ,それは... うーむ,??0を
突き崩すための
十分な証拠がない...
簡単な検定の例:
平均の検定
再掲:シンプルな検定の例
?九大生と名乗る学生??名がやってきた
?怪しいので,あるテストを受けさせたら,
平均点は???だった
?過去に同じテストを九大生全員に実施したところ,
点数は平均??,分散??2の
正規分布を成した
?彼らは九大生なのかニセモノかを検定せよ
九大生デス
差があるか?
全九大生
平均の検定:
その平均は母集団に受け入れられるのか?(1/5)
?母集団の分布(母平均?? ,母分散??2
)はわかっているとする
?あまり現実にはないが,今回はシンプルな例ということで
?標本平均の分布は(既述の通り)正規分布になる
母平均(既知)
標本平均?????
母平均, 母分散
標本平均
標本平均
標本平均
標本平均の分散=
母分散??2
標本サイズ??
九大全体
元の分布によらず,常に正規
分布になるのはありがたい!
中心極限定理バンザイ!
平均の検定:
その平均は母集団に受け入れられるのか?(3/5)
?もうわかりますよね!
母平均(既知)
標本平均?????
標本平均が
この辺なら
受け入れ可能
標本平均が
この辺なら
受け入れたくない
平均の検定:
その平均は母集団に受け入れられるのか?(4/5)
?端っこのほうにきたら(リスクは少々あるが)棄却して
しまう!
九大生でない!と
結論しても,
それが過ちである
可能性は高々5%
標本平均???母平均??
95%
?? ? 1.96 ??? ?? ?? + 1.96 ??? ??
「九大生である」という
帰無仮説を
有意水準5%で棄却できる
九大生じゃないでしょ!
ヤバイ,バレタ!
平均の検定:
その平均は母集団に受け入れられるのか?(5/5)
?もっと端っこなら,もっと自信をもって棄却できる
標本平均???母平均??
99%
?? ? 2.57 ??? ?? ?? + 2.57 ??? ??
「九大生である」という
帰無仮説を
有意水準1%で棄却できる
九大生でない!と
結論しても,
それが過ちである
可能性は高々1%
??値,有意水準,有意差:
単なる言葉の使い方
差がない帰無仮説
??値=5%で検定
有意水準5%で
帰無仮説を棄却できた
有意な差がある
両者には有意差
(?? = 0.05)がある ヤバイ,バレタ!
標本サイズ??は重要
?標本サイズ??→大,標本平均の分散→小
?母平均から少しでも違えば,有意差が出る
?=標本サイズが大きければ,わずかな差でも信頼できる
65
母平均
標本平均?????
母平均
標本平均?????
標本平均の分散=
母分散??2
標本サイズ??
t
平均の差の検定
平均の差の検定(t 検定)
?先に述べた以下の検定課題は,すべてこのタイプ
?東京と福岡で平均所得に差があるか?
?あるトレーニングを行った前後で能力に差が出たか?
?あるダイエット食品に効果があるか?
?ある遺伝子がある病気の原因になるか?
K大学の母集団 L大学の母集団
平均に差が
あるか?
平均の差の検定~実際の攻め方
68
K大学の母集団
標本
L大学の母集団
標本
?????と?????の差
母平均は異なる
=母集団には
有意差がある
標本平均????? 標本平均?????
この差は「母平均が
等しい」という仮説下
ではあり得ない
標本平均の差をテストしたいんです:
t分布する二つの値の「差」も,やはりt分布
69
K大学 L大学
母平均(未知)
標本平均?????
????
標本平均の
分布
(t分布)
母平均(未知)
標本平均?????
????
標本平均の
分布
(t分布)?????と?????の
差をチェックしたい
標本分散????
2
?? ? 1
標本平均????? ? ?????
????
2
???1
+
????
2
???1
???? ? ????
標本平均の
差の分布
(t分布)
標本分散????
2
?? ? 1
t分布の場合も
同様でよかったー
Python で t 検定
? Python で実行するのはとても簡単!
1. 差があるか確認したいデータを2つ用意
2. 有意水準を決定:5%
3. 2つのデータを関数に放り込む
4. t, p値が出る
5. p値が0.05(5%)以下なら、有意に差がある
70
0
t分布
赤い区間に入る確率:p値
t値
95%
p値
具体例
?仮説:福岡は東京より暑い!
(福岡と東京は気温に差がある)
?データから有意性が言えるか?
?Python なら楽勝です
71
九州だし
暑いに決まっている!福岡のほうが若干
南だし,きっと暑い
プログラム
?まず,データを読み込んでみよう
?temperature_FT_August.csv
(福岡と東京の2016年8月 の気温)
?※)日付はついていない
?読み込み方は何でも良いです!
72
プログラム:可視化(ヒストグラム)
?まずは様々な可視化してデータをみよう!
73
ー 福岡
ー 東京
気温
頻度
プログラム:統計値
?統計値(平均、分散)を求めて、その統計値のガウス分
布をフィッティングしてみよう!
74
気温
頻度
東京の気温分布
プログラム:t検定
?t 検定!(たった2行!)
75
P < 0.05 で有意性あり!
(福岡と東京に気温差はある!)
t値:4.42853766713
p値:4.37071161374e-05
アイリスデータ
76
?アイリスデータ
?3クラス
?Iris-setosa
?Iris-versicolor
?Iris-virginica
?指標
?sepal length
?sepal width
https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data
練習5:irisデータ
?Sepal length と sepal widthの平均の差に有
意差があるかを調べよう!
?まずは、ヒストグラムで可視化してみよう
?t 検定で t 値,p 値を求めてみよう
77
平均の差の検定(t 検定):対応なし
?対応のない異なる集団を比較
?K大学とL大学のテストの点数差を比較
? K大学のA君とL大学のB君は全く対応関係のない別人
?東京と福岡で平均所得に差があるか?
K大学の母集団 L大学の母集団
平均に差が
あるか?
平均の差の検定(t 検定):対応あり
?対応ある項目を比較
?同じ学生が複数の科目を受験
? 英語と数学の平均点
?東京と福岡の気温に差があるか?
? 同じ日の気温で対応付けて、東京、福岡で差があるか?
???
Aさん
Bさん
数学 英語
70点 90点
70点 80点
60点 60点
???
1/1
1/2
7℃ 9℃
8℃ 9℃
12℃ 13℃
東京 福岡
12/31
平均の差の検定(t 検定):対応あり
K大学の母集団 標本
???
Aさん
Bさん
数学 英語
70点 90点
70点 80点
60点 80点
点数の差
20
10
0
???
母集団で、生徒ごとの英語と数学
の点数に差がないなら、点数の差
の平均は0になるはず。
平均の差の検定(t 検定):対応あり
標本
???
数学 英語
70点 90点
70点 80点
60点 80点
点数の差
20
10
0
???
K大学の母集団
差の母平均(未知)
??????? = 0
点数の差の標本平均:
???????? = 10
これはめったに起きないこと?
平均の差の検定(t 検定):対応あり
? 対応ある検定では
1. 差があるか確認したい対応があるデータを2つ用意
2. 有意水準を決定:5%
3. 2つのデータを関数に放り込む
関数の中で、自動で対応あり検定を行ってくれている
4. t, p値が出る
5. p値が0.05(5%)以下なら、有意に差がある
82
0
t分布
赤い区間に入る確率:p値
t値
95%
p値
具体例
?仮説:8月に福岡は東京より暑い!
(福岡と東京は気温に差がある)
?データから有意性が言えるか?
?Python なら楽勝です
83
九州だし
暑いに決まっている!福岡のほうが若干
南だし,きっと暑い
プログラム:可視化(プロット)
?まずは様々な可視化してデータをみよう!
84
ー 福岡
ー 東京
気温
日にち
対応あり:プログラミング
?stats.ttest_rel:対応あり
?日にちが対応している
?stats.ttest_ind:対応なし
?日にちが対応してない場合
85
対応あり
P < 0.05 で有意性あり!
(福岡と東京に対応ありで気温差はある!)
練習6
t検定(対応あり)
?アメリカの都市ごとの女性の労働率の平均の差に対する検
定:72年と86年で差はあるか?
86
NYC
1972年、1968年
0.45 0.42
対応あり,なしの例
?成績データ
?対応あり:同じ10人で国語と数学の平均を比較
?対応なし:違う10人で国語と数学の平均を比較
?効果測定(薬など)
?対応あり:被験者10人に高血圧症薬Aを与えて、
投薬前と投薬後で血圧の違いを比較
?対応なし:薬Aを与えた被験者10人と,
薬Bを与えた被験者10人に分けて比較
87
平均の差の検定(t 検定):片側検定
? 帰無仮設は「平均が同じ」?棄却
? あくまで、「平均は違う」ということしか言っていない
? 大小関係を言いたい場合は、片側検定でよい
880
両側
検定
95%信頼区間
両側足して5%
t値
t分布 t値
片側
検定
0.0250.025
0.05 片側だけで5%
分散分析(ANOVA)の必要性
? 3群以上(例えば工学部,理学部,経済学部で英語の点数に
差があるか?)の場合、各組合せでt検定を行ってよい?
89
母集団
標本A 標本B 標本C
母集団
の分布
標本
分布A
標本
分布B
標本
分布C
差がないと仮定すると
母集団の分布は同じ
たまたま点数が偏って標本されたかもしれない
群数が多いと、偏って標本される可能性が増える!
群間同士の分散を考慮した
検定(分散分析)が必要!
分散分析:プログラミング
?3群以上(例えば福岡,東京,沖縄の3地点の気温に
差があるか?)の場合は分散分析が必要です
?python なら一発
?temperature_FTK_August.csv
(福岡,東京京都の2016年8月 の気温)
90
分散分析:プログラム:可視化
?分布を箱ひげ図(boxplot)で見てみよう
91福岡 東京 京都
最大
最小
第二四分位
第一四分位
第三四分位
分散分析:プログラム
?帰無仮説:東京、京都、福岡の8月の気温に差
はない
92
t値:11.8908068734
p値:2.61618782054e-05
P < 0.05 で有意性あり!
(福岡と東京、京都の8月の気温に差はある!)
多重比較
?どの項目とどの項目に差があるのか比較
?Tukey-Kramerの検定を利用
93
多重比較結果例
94
================================
============
group1 group2 meandiff lower upper reject
--------------------------------------------
0.0 1.0 -2.1935 -3.3511 -1.036 True
0.0 2.0 -0.3226 -1.4802 0.835 False
1.0 2.0 1.871 0.7134 3.0286 True
--------------------------------------------
?どの項目とどの項目に差があるのか比較
?Tukey-Kramerの検定を利用
?結果
?福岡ー東京間に差がある
?福岡ー京都間に差がない
?東京ー京都間に差がある
0:福岡
1:東京
2:京都
比率の検定:カイ二乗検定
? 喫煙者と非喫煙者で肺癌の割り合いを調査
? 喫煙者と非喫煙者で肺癌になる割合が異なるように見える
? 喫煙者で肺癌になる割合:40%
? 非喫煙者で肺癌になる割合:20%
? この比率の差は、標本時にたまたま偏ってうまれた差?
?比率の検定:カイ二乗検定
95
正常 肺癌 合計
喫煙者 60 40 100
非喫煙者 120 30 150
合計 180 70 250
比率の検定:カイ二乗検定
? 帰無仮説:「喫煙者と非喫煙者で肺癌になる割合に差はない」
? 実際の標本調査の数:観測度数
? 比率に差がないとしたときの期待される数:期待度数
? 観測度数と期待度数を比べる
? カイ二乗値
96
正常 肺癌 合計
喫煙者 60(72) 40(28) 100
非喫煙者 120(108) 30(42) 150
合計 180 70 250
?
(観測度数 ? 期待度数)2
期待度数
=
(72 ? 60)2
72
+ ? +
(42 ? 30)2
42
比率の検定:カイ二乗検定
? 観測度数と期待度数を比べる
? カイ二乗値
? カイ2乗値を用いて、カイ二乗分布よりp値を算出
97
正常 肺癌 合計
喫煙者 60(72) 40(28) 100
非喫煙者 120(108) 30(42) 150
合計 180 70 250
?
(観測度数 ? 期待度数)2
期待度数
=
(72 ? 60)2
72
+ ? +
(42 ? 30)2
42
比率の検定:カイ二乗検定
? 観測度数と期待度数を比べる
? カイ二乗値
? カイ2乗値を用いて、カイ二乗分布よりp値を算出
98
正常 肺癌 合計
喫煙者 60(72) 40(28) 100
非喫煙者 120(108) 30(42) 150
合計 180 70 250
?
(観測度数 ? 期待度数)2
期待度数
=
(72 ? 60)2
72
+ ? +
(42 ? 30)2
42
自由度:df = (r-1)(k-1) #r = 表の行の数,k = 表の列の数
比率の検定:カイ二乗検定
99
カイ二乗値:11.9047619048
p値 :0.00771662938674
有意差あり
その他注意事項
?順序尺度(5段階アンケートなど)は平均
などで分析してはいけません!
?wilcoxcon 検定
?※)ただし、許されている分野もある
?検 定 方 法 は い ろ い ろ な 方 法 が あ り ま す .
不安な場合は調べる or 相談してください
100
演习问题
演習1:アイリスデータ分析
102
?アイリスデータ
?Iris_2metrics2.csv
?3クラス
?Iris-setosa
?Iris-versicolor
?Iris-virginica
?指標
?sepal length
?petal length
https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data
演習1-1:ヒストグラム
103
? “iris_2metrics2.csv”を読み込んで、sepal-lengthとpetal-
lengthそれぞれのヒストグラムを作成してみよう
? ヒント
? データ読み込み:
? import pandas as pd
? pd.read_csv(‘’)
? ヒストグラム
? Import matplotlib.pyplot as plt
? plt.hist()
演習1-2:正規分布での表現
104
? それぞれのデータ分布に対して、正規分布で表現
? ヒント
? 各項目の平均、分散を求めて、その2つのパラメータで正規分布を作成
? x = np.arange(min,max,0.01)
? plt.plot(x,norm.pdf(x,loc=mu,scale=sigma),lw=3,color="r")
演習1-3:クラスごとに可視化
105
? petal-lengthは、2つの分布があるように見える
?クラスに分けてヒストグラム及び正規分布で表現
? ヒント
? クラスごとに分類
? irisSetosa = iris[iris.iloc[:,2]=='Iris-setosa']
? irisVersicolor = iris[iris.iloc[:,2]=='Iris-versicolor']
? irisVirginica = iris[iris.iloc[:,2]=='Iris-virginica']
演習1-4:母平均の信頼区間の推定
106
? “iris_2metrics2.csv”を読み込んで、sepal-lengthの母平均の
95%信頼区間を推定しよう!
? ヒント
? 信頼区間の求め方
? alpha = 0.95 # 信頼係数95%
? n = len(iris['sepal-length']) # sample数
? t = stats.t.ppf(1-(1-alpha)/2, n-1) # t分布を用いて確率変数tを計算
? t_min = mu - t * sigma / np.sqrt(n-1) # 下限
? t_max = mu + t * sigma / np.sqrt(n-1) # 上限
演習1-5:平均の差の検定
107
? “iris_2metrics2.csv”を読み込んで、sepal-lengthとpetal-
lengthの差を棄却域5%で検定してみよう
? ヒント
? 検定
? from scipy import stats
? t, p = stats.ttest_ind(データA, データB, equal_var=False)
演習1-6:平均の差の検定
108
? クラスを分けて、それぞれsepal-lengthとpetal-lengthの差を棄却
域5%で検定してみよう
? ヒント
? from scipy import stats
? t, p = stats.ttest_ind(データA, データB, equal_var=False)
?クラスごとに分類
? irisSetosa = iris[iris.iloc[:,2]=='Iris-setosa']
? irisVersicolor = iris[iris.iloc[:,2]=='Iris-versicolor']
? irisVirginica = iris[iris.iloc[:,2]=='Iris-virginica']
演習1-7:分散分析
109
? “iris.csv”を読み込んで、sepal-length,sepal-width,petal-
length,petal-widthの平均に差があるかを検定してみよう
? ヒント
? 分散分析
? from scipy import stats
? f, p = stats.f_oneway(データA,データB,データC,データD)
演習2
?以下のデータに対し,仮説で t 検定を行い,
平均の差に有意性はあるか,ないか答えよ
? 有意水準は 0.05 とする
? ヒント:対応あり,なし.2群,3群以上
?生徒A~Jの成績データ
? grade1.csv
? grade2.csv
? grade3.csv
110

More Related Content

DS Exercise Course 5