27
8つの魔法の習得 RRubyによるデータ解析入門より

8つの魔法の習得 -RとRubyによるデータ解析入門より-

Embed Size (px)

DESCRIPTION

「RとRubyによるデータ解析入門」の統計の基礎に関する章「3章.8つの魔法の習得」をまとめてみました。 何か突っ込み所などあればお願いします。

Citation preview

Page 1: 8つの魔法の習得 -RとRubyによるデータ解析入門より-

8つの魔法の習得RとRubyによるデータ解析入門より

Page 2: 8つの魔法の習得 -RとRubyによるデータ解析入門より-
Page 3: 8つの魔法の習得 -RとRubyによるデータ解析入門より-

確率分布• 観測値Xの各値が出る確率をP(X)とする時

P(X)を全体的に表したものを確率分布という

Ex…サイコロの場合サイコロの目=X サイコロの目が出る確率P(X)

• Xが連続している場合はP(X)を確率密度という

• 確率密度を積分するとXが観測される確率を出せる

Page 4: 8つの魔法の習得 -RとRubyによるデータ解析入門より-

連続と離散の違い• 離散…Discrete

– 中間値が存在しないもの

– また平均を出す意味が無い

– ex..サイコロ、男女

• 連続…Continuous

– 中間値が存在するもの

– ex.身長、体重

Page 5: 8つの魔法の習得 -RとRubyによるデータ解析入門より-

正規分布• 連続的な確率分布• ベル型で横に広がった形をとる分布• 形を決定する変数は2つ1. 平均値

– 正規分布の中心値

2. 標準偏差– バラツキの大きさの指標– 分散の平方根

• 偏差– 各データと平均値の差

• 分散– 偏差の二乗の平均値

– 相対評価で判断される

Page 6: 8つの魔法の習得 -RとRubyによるデータ解析入門より-

ポアソン分布• 離散的な確率分布

• 起こる確率が小さい事を

n回起こる確率を

横に回数n、

縦にn回起こる確率で

グラフにしたもの

• 形を決定する変数は

λ=平均値=分散のみ

Ex…ある交差点の一時間当たりの事故数など

Page 7: 8つの魔法の習得 -RとRubyによるデータ解析入門より-
Page 8: 8つの魔法の習得 -RとRubyによるデータ解析入門より-

検定で使う用語• 優位差

– 統計的に意味のある差

• 帰無仮説

– 検定で調べたい仮説

• 対立仮説

– 帰無仮説を否定する仮説

Page 9: 8つの魔法の習得 -RとRubyによるデータ解析入門より-

t検定• 平均値が等しいのかを検証するのに使用する検定

• 大きく分けて二つ

1. ある母集団の平均が特定の値に等しいのか確認する

• 前提として母集団は正規分布であること

2. 二つの母集団の平均が等しいのか確認する

• 前提として母集団がどちらも正規分布である事

• また分散に差があるのか無いのか解っている事

Page 10: 8つの魔法の習得 -RとRubyによるデータ解析入門より-

1標本t検定• ある学年100人の身長平均が165である (帰無仮説)

• 事情で20人のみのデータしか存在しない

• この場合確認したい値165が母平均(μ:ミュー)という• Rではt検定は「t.test(母集団,μ)」で行う

p値が0.05以上なら

帰無仮説は棄却されない

t値でp値が計算される

Page 11: 8つの魔法の習得 -RとRubyによるデータ解析入門より-

2標本t検定• グループaとグループbの平均値が同じである(帰無仮説)

• 2標本t検定は前提として分散に差があるのか無いのかを解る必要がある

Page 12: 8つの魔法の習得 -RとRubyによるデータ解析入門より-

F検定• 二つの母集団の分散に優位差が無い事を確認するのに使用する検定

• Rでは「var.test(母集団1,母集団2)」で行う

• aとbは分散に優位差がない(帰無仮説)

P値が0.05より大きいの

で帰無仮説は棄却されない

Page 13: 8つの魔法の習得 -RとRubyによるデータ解析入門より-

2標本t検定• F検定でaとbの分散には優位差が無い事が解ったので2標本t検定が可能になる

• 「t.test(“母集団1”,”母集団2”,

var.equal=“TRUE or FALSE”)」で実行

分散に差がなければTRUEあればFALSE

P値が0.05より小さく帰無仮説が棄却される

Page 14: 8つの魔法の習得 -RとRubyによるデータ解析入門より-

シャピロ・ウィルク検定

• 観測されたデータが正規分布に従うかどうかを確認する検定

• 主にt検定の前に使用する

• 先ほどのt検定で使用した身長が正規分布である(帰無仮説)

P値が0.05より大きいので帰無仮説は棄却されない

Page 15: 8つの魔法の習得 -RとRubyによるデータ解析入門より-

ウィルコクソンの順位和検定• 二つの母集団の持つ確率分布が異なるかを確認するのに使う検定

• cとdで確率分布が同じである(帰無仮説)

• Rでは「wilcox.test(母集団1,母集団2)」で行う

P値は0.00002978で0.05より小さいので帰無仮説が

棄却される

Page 16: 8つの魔法の習得 -RとRubyによるデータ解析入門より-
Page 17: 8つの魔法の習得 -RとRubyによるデータ解析入門より-

感度分析• 指標の変化がどの程度結果に

影響を与えるかを明らかにする分析Ex…

売上高、費用、利益を

考える際に費用の中の固定費が

5%上がった場合の利益、

変動費が10%上がった場合の利益

を明らかにする

Page 18: 8つの魔法の習得 -RとRubyによるデータ解析入門より-

アソシエーション分析• データの中から価値のある相関関係を見つけ出す分析

• Eコマースである「この商品を買った人は別

のこんな商品を買っています」という紹介をすべき商品は何かなどを明らかにできる

• Rではパッケージ「arules」を使用する

Page 19: 8つの魔法の習得 -RとRubyによるデータ解析入門より-

• arulesで定義されているtransactions形式を分析に使用• Transactions形式には「as(変換対象,”transactions”)」で変換

• Transactions形式のデータから相関ルールを抽出するには「apriori(transactions形式のデータ)」を行う

Page 20: 8つの魔法の習得 -RとRubyによるデータ解析入門より-

• apriori関数の詳細な結果を見るのには「inspect(aprioriの結果)」を用いる

• Support(支持度)• 全トランザクション数に対してその相関ルールの発生した回数の割合

• Confidence(確信度)• 相関部と結論部が一緒に発生した回数の割合

• Lift(リフト値)• 結論部が相関部と関係無く発生しているかを確認するための値

高いほど相関部と結論部の関係性も高い

Page 21: 8つの魔法の習得 -RとRubyによるデータ解析入門より-

スペクトル分析• 時系列データの周期性を分析するための手法

– 時系列データ

• 時間の順序に従って測定したデータ

• Rでは時系列データを

「ts(data,frequency=“観測単位”)」

で作成する

1から100までの数を1秒毎に数える観測単位を1分に指定

Page 22: 8つの魔法の習得 -RとRubyによるデータ解析入門より-

• Frequencyには特例があり4と12を指定すると暗黙的に単位時間を1年として表示する

– 4…四半期のデータ

– 12…毎月のデータ

• 実際の時系列データを表示する場合は「print()」の引数calendarをFALSEにする

Page 23: 8つの魔法の習得 -RとRubyによるデータ解析入門より-

• 「ts.plot(“時系列データ”)」を用い事で折れ線グラフで表示できる

ldeaths• Rに初期から入っているデータ• 1979年イギリスでの月ごとの喘息,気管支炎,肺気腫による死亡数

Page 24: 8つの魔法の習得 -RとRubyによるデータ解析入門より-

• Rでのスペクトル分析には「spectrum(“時系列データ”)」を用いる• スペクトル分析では時系列データを複数の周期を持つ波の重ね合わせで

表現できるという仮定し、重ね合わせた各波の強さをスペクトルという指標で測る。• 時系列データはスペクトルの高い波の周期に影響を受けている

スペクトルの中で一番大きな周期を持つものを抽出

1年に頻度1の割合で発生する波野成分が高い

Page 25: 8つの魔法の習得 -RとRubyによるデータ解析入門より-

ジニ係数とローレンツ曲線

• ジニ係数– 分布の不平等さの指標

– 0なら完全な平等、1なら完全な不平等

• ローレンツ曲線– ある事象の集中の度合いを示す曲線

– 平等ならL(p)=pの直線と同じになる

– 不平等ならL(p)=0の直線と同じになる

– ジニ係数はローレンツ曲線とL(p)=pの直線との間の面積の2倍した値

Page 26: 8つの魔法の習得 -RとRubyによるデータ解析入門より-

• 下記データでローレンツ曲線を出してみる• Rでは「ineq」パッケージを使用する• ローレンツ曲線の描画には「Lc(“対象データ”, plot=“bool”)を用いる

ほぼ平等

やや不平等

並べてグラフを表示するために「par(mfcol(“行数”,“列数”))」

Page 27: 8つの魔法の習得 -RとRubyによるデータ解析入門より-

• ジニ係数を算出するには「ineq(“対象データ”)」を使用する

Income2に比べると大きくやや不平等

ほぼ0に近く平等に近い