11月から12月にかけて受講していた、無料オンライン講座 gacco の「ga014: 統計学Ⅰ:データ分析の基礎」の個人的なまとめです。
なお、12月20日の東京会場での反転授業も受講してきました。
こちらは有料(9,000円)でした。
Week1 : 統計学への誘い
竹村 彰通 氏 (東京大学大学院情報理工学系研究科 教授)
1-2. このコースの概要
- このコースは、「統計検定3級」(高校卒業から大学入試程度)から「統計検定2級」(大学の基礎科目程度)の間のレベルを想定
- 統計検定3級 + データ解析の実用的な内容
- 確率論を用いた推測統計学は扱わない
1-3. 統計学の歴史
- 作者: 丸山健夫
- 出版社/メーカー: 日科技連出版社
- 発売日: 2008/06/13
- メディア: 単行本
- 購入: 1人 クリック: 44回
- この商品を含むブログ (3件) を見る
- 社会経済的な分野から理系的な分野へと応用分野が拡大
- 遺伝法則と生物測定(メンデル、ゴルトン、カール・ピアソン)
- 相関、回帰分析
- 実験計画法
- 統計的品質管理
- 数理統計学の確立
- 近年はコンピュータの発展によりあらゆる分野へ
1-4. データ分析の流れ
- データ分析のPDCAサイクル
- 何が知りたいかを考え、データを取り、統計的手法で解釈し、データに基づいて行動
1-5. データの種類
- 質的データと量的データ
- 質的データ
- 数量として意味のないもの
- 順序尺度:順序に意味があるもの(例)大変良い、やや良い、等
- 名義尺度:順序にも意味のないもの(例)性別、職業
- 量的データ
- 連続 or 離散
- 比例尺度 or 間隔尺度
- 比例尺度:○倍に意味のあるもの(例)長さ
- 間隔尺度:○倍に意味のないもの(例)温度
- 国勢調査等では、回答者が答えやすいようにコード化されている場合も
- 健康診断の多くの検査項目の基準値は、健康な人の95%が入る範囲とされている
Week2: 統計グラフと質的データの要約
下川 敏雄 氏 (山梨大学大学院医学工学総合研究部 准教授)
2-1. 度数分布表による要約
新製品
度数 | 相対度数 | |
美味しい | 158 | 0.380 |
やや美味しい | 133 | 0.320 |
どちらでもない | 42 | 0.101 |
やや不味い | 50 | 0.120 |
不味い | 33 | 0.079 |
- 清涼飲料水メーカーA社が行った官能検査のデータ例
- 度数・・・質的変数の項目に該当する個体の数
- 相対度数・・・個体の割合
- 「美味しい」から「不味い」までの段階評価は、順序尺度
- 順序があるので、項目を入れ替えできない
- 名義尺度では、度数で並べ替えを行った方が解釈しやすい
- 度数分布表は、棒グラフ、円グラフ、帯グラフ、(集合)棒グラフの基礎となる
2-3. 統計グラフ(2) - 帯グラフとまとめ-
- 複数の群での項目の構成比を省察・・・帯グラフ
- (例)「美味しい」あるいは「やや美味しい」というポジティブな回答をした割合はどのくらいか?
- 統計グラフ(統計的視覚表現)の目標
- データを分析する(データの表層を捉え、傾向を示唆できるか否かを精査する)
- 分析結果を伝える
- 「世界の富」
- 世界の裕福な20%の人々が世界の80%の富を独占(Paretoの法則)
- シャンパングラス視覚効果
2-4. 2変数のデータのまとめ方:クロス集計表
- 2変数の質的データの関係性を評価・・・クロス集計表(分割表)
- 行周辺度数・・・行単位での小計
- 列周辺度数・・・列単位での小計
- 全体度数(総度数)
- 「(行の数)×(列の数)のクロス集計表」と呼ばれる
- 行パーセント・・・行列周辺度数を100%に合わせたもの
- 列パーセント・・・列周辺度数を100%に合わせたもの
- 総(全体)パーセント
2-5. クロス集計表における諸種の測度
- クロス集計表を作成する目的は
- 因果関係を評価する
- 連関関係を評価する
- 因果関係
- 因果関係がある2変数のクロス集計表では、原因を列側、結果を行側に書くのが一般的
- 原因側の変数・・・説明変数(独立変数)
- 結果側の変数・・・応答変数(従属変数)
- 行パーセント、およびオッズ比で評価
- 因果関係がある2変数のクロス集計表では、原因を列側、結果を行側に書くのが一般的
- 連関関係
- 2変数に双方向の関係性があることを「連関関係」という
- 行パーセント、列パーセントの両方で解釈が可能
- オッズとは、ある結果が生じる比率とある結果が生じない比率との比
- オッズ比は、結果に対してどれくらい要因が寄与しているかを表わす
オッズ比の定義: (対角の積の比)
- ファイ係数
- 連関関係を表わす測度
- 2個の質的変数の連関(相関)の強さを数値化した指標
- -1から1までの範囲の値を取る(負の連関=-1.0、正の連関=1.0、無関係=0)
ピアソンの積率相関係数を2×2のクロス集計表に適用したものとしてのファイ係数も定義されており、これを特に四分点相関係数(four-fold point correlation coefficient)とも言う。-1≦φ≦1の値をとり、以下の式で表される。
計 a b c d 計 n
- ファイ係数の目安
- 0.8 ≦ |φ| ・・・非常に強い関連
- 0.5 ≦ |φ| < 0.8・・・やや強い関連
- 0.25 ≦ |φ| < 0.5・・・やや弱い関連
- |φ| ≦ 0.25 ・・・非常に弱い関連(関連性なし)
2-6. 多重クロス集計表
- 3変数以上の質的変数(例えば、性別・自動車保持・自動車嗜好)の相互の連関関係を考察するための手法が「多重クロス集計表」
- 3変数の場合は「3重クロス集計表」
- 多重クロス集計表の作成手順
- 性別でデータを二つに分ける(層化)
- それぞれの性別でクロス集計表を作成する
- 2個のクロス集計表を縦に並べる
性別 | 自動車保持 | 自動車嗜好 | 計 | |
好き | 好きでない | |||
男性 | 持っている | 283 | 28 | 311 |
持っていない | 141 | 68 | 209 | |
計 | 424 | 96 | 520 | |
女性 | 持っている | 70 | 50 | 120 |
持っていない | 93 | 121 | 214 | |
計 | 163 | 171 | 334 |
- 多重クロス集計表の問題としてよく知られているのが、Simpsonのパラドックス
- 層化の前後で結果が逆転する
- 一般的には、多重クロス集計表ではそれぞれの層で解釈するのがよい
2-7. 多重クロス集計表における第3の変数
- 擬似的な関係(見かけの連関関係)
- 原因と結果それぞれに対して影響を与える「第3の変数」が存在
- 例えば、「血圧」「年収」に対する、第3の変数「年齢」
- 「血圧」と「年収」には連関関係はなく、「年齢」が「血圧」と「年齢」それぞれに影響を及ぼしている
- 媒介的な関係
- 原因と結果の間に媒介となる「第3の変数」が存在
- 例えば、「性別」「自動車事故経験」に対する、第3の変数「走行距離」
- 男性の方が「走行距離」が長い傾向にあり、その結果として「走行距離」が長いと「自動車事故経験」の割合が高くなった
- 交互作用
- 2つの変数間の連関パターンが「第3の変数」によって異なる
2-8. クロス集計表を用いた実践例
- 変数のコントロール(第3の変数の影響を減らす方法)
- 1. 調査方法によるコントロール
- 調査段階で、第3の変数で層化したときの被験者数の割合ができるだけ等しくなるように被験者を集める(層別)
- 2. サブグループ解析
- 層に対して個々にクロス集計表を作る(多重クロス集計表)
- 3. 数理的に調整
- 多変量解析
- 1. 調査方法によるコントロール
層別化
ランダム化比較試験において、いずれかの群に特定の因子保有者が偏らないように、ランダム化前に、あらかじめ両群にこれらが均等に分かれるように操作すること。
「臨床試験の基礎知識 p.1」より
Week3: 量的データの要約
3-1. 量的データの要約 事始め
- データの散らばりをグラフで表現する
- ドットプロット
- 幹葉図(みきはず/かんようず)
- ただし、個体が多い場合には不便
- データの散らばりを大まかに把握する
3-2. 度数分布表とヒストグラム
- 度数分布表
- 階級に分けて、階級ごとに個体数や割合をまとめた表
- 階級幅
- 階級値(階級の中央の値)
- 度数分布表をグラフ化したものが、ヒストグラム、および度数折れ線
- 複数のグループを比較する場合は、縦軸は相対度数(あるいは密度)とするとよい
- 度数折れ線は、ヒストグラムの柱の真ん中を折れ線でつないだもの
- 複数のグループを重ねて描くときは、度数折れ線の方が見やすい
- データが離散量の場合は、棒を線で描くか、棒の間隔を空けるようにする
- ただし、複数の離散値を1つの階級にまとめた場合(例:10~15点)には、間隔を空けずに柱で描くことも多い
- 階級数の工夫
- 境界を区切りのよい数字にする
- いくつか作成してみて、見やすいものを採用
- スタージェスの公式が参考になる場合もある
スタージェスの公式
3-3. 分布を読みとる
- ヒストグラムの読み取り方
- 単峰か多峰か
- 特に、山が1つで左右対称の形を「ベル型の分布」という
- 間欠泉のデータは多峰型
- 異質なデータの混在に注意
- 高原型(位置の近い複数のグループが混ざっている?)
- 離島(外れ値)
- 歪んだ分布
- 右に歪んだ(右の裾が長い)分布
3-4. 箱ひげ図
- 箱の左側、真ん中の線、右側はそれぞれ、第1四分位数、第2四分位数(中央値)、第3四分位数を示す
- テューキーの箱ひげ図
- 一番有名な描き方だが、少し複雑
- 1. 四分位範囲(IQR)の長さを測る
- 2. 箱の端から四分位範囲の長さの1.5倍の位置に「フェンス」を作る
- 3. フェンスの内側にあるデータの中で最もフェンスに近いものまでヒゲをのばす
- 4. フェンスを越えたデータは外れ値として○で示す
- 5. フェンスからさらに四分位範囲の1.5倍を越えたものは「異常値」と呼ばれる
- シンプルな箱ひげ図では、ひげは「最小値」「最大値」を表す
- 五数要約をグラフ化したものと捉えることができる
- コンパクトなグラフなので、複数の分布を比較しやすい
- フィッシャーのアヤメのデータ(3種類のアヤメのがくの長さ)
がくの長さのばらつきをテューキーの箱ひげ図で比較(アヤメのデータより)
> boxplot(Sepal.Length ~ Species, data=iris, style="tukey")
(参考)
3-5. 分布の位置を表す代表値
- 代表値
- 平均値(算術平均)
- 中央値
- 最頻値
- 連続する量的データの場合は、度数分布において最も度数の多い階級の階級値を「最頻値」とする
- ベル型の分布では、平均≒中央値≒最頻値
- 右に歪んだ分布では、最頻値<中央値<平均
- 左に歪んだ分布では、平均<中央値<最頻値
3-6. 分布のばらつきの大きさを測る
- ばらつきの大きさを測る指標
- 分散には、n ではなく n-1 で割った分散が用いられることもある
- ・・・データを要約する場合に用いられることが多い
- (n-1で割ったもの)・・・統計的推測で用いられることが多い
- 変動係数
- その他の指標
- 歪度(わいど)
- 尖度(せんど)
4-1. 相関と散布図
- プロモーション活動の広告費と売上のデータ
- 広告費と売上の関係を視覚的に捉えるために使われるのが「散布図」
- 「説明変数」を横軸に、「目的変数」を縦軸に据える
4-2. 層別散布図
- グループの情報が得られるときには、グループごとに散布図を描くと有効な場合がある
- 層別をする
- 小学生の50m層のタイムと漢字書き取り能力のデータ(学年で層別する)
- 販売価格と販売数量のデータ(特別陳列の有無で層別する)
- 事前層別:確証的データ分析
- 事前に研究仮説があり、それをもとにデータ分析を通して確認するアプローチ
- 事後層別:探索的データ分析
- ビッグデータのように仮説の見当がぼんやりとしか分からないとき
- 分析を試行錯誤することでデータの真実を見つける
4-3. 相関係数
- 広告費と売上の関係性はどの程度のものか?
- 相関係数 r
- 相関の正負の方向とその強さを表す指標
- 分母は2変数の標準偏差の積で、分子である共分散の単位を打ち消す働きもしている(データの変動の大きさも打ち消している)
- 共分散は、Xの平均偏差(平均との偏差)とYの平均偏差の積の和をデータの数で割ったもの
- 散布図で、広告費と売上のそれぞれの平均でグラフを4分割したときに、右上がりの領域(ともに平均よりも上、およびともに平均よりも下)のデータでは、偏差積の値が正になる
- 相関係数の範囲は、-1≦r≦1
- 0の場合は「無相関」とも呼ばれる
- 相関係数の評価の目安
- 0.0 ≦ |r| ≦ 0.2 :ほとんど相関が無い
- 0.2 < |r| ≦ 0.4 :弱い相関
- 0.4 < |r| ≦ 0.7 :中程度(比較的強い)の相関
- 0.7 ≦ |r| ≦ 1.0 :強い相関
4-4. 見かけの相関
- 疑似相関
- 第3の変数の影響により、2つの変数間の相関係数が見かけ以上に大きくなる
- 疑似無相関
- 第3の変数の影響により、2つの変数間の相関係数が見かけ上は相関が無くなる
- 2012年度プロ野球セリーグの個人打撃成績
- 安打と四球の相関係数・・・r=0.851
- 安打と三振の相関係数・・・r=0.156
- 打席数という第3の変数が影響しているのでは?
- 偏相関係数
- 第3の変数の影響を取り除いた相関係数
4-5. 相関と時系列
- 相関係数はあくまで直線的な関連性を捉えている
- 非線形関係(曲線的な関係)は相関係数では捉えることができない
- 相関係数は外れ値の影響を受ける
- よって、散布図も同時に活用するのが正しいやり方
- 相関係数を解釈するときのその他の注意点
- 床面効果
- 試験内容が難しすぎて0点付近に多数が分布してしまうケース(最低点が0点に制限されてなければ測定できたかもしれない能力が測れない)
- 天井効果
- 試験内容が簡単すぎるため、最高得点に多数が分布してしまうケース
- 切断効果
- 偏った範囲のデータしか得られていない場合
- 入学試験の得点と入学後の成績(受験者の選抜により不合格者のデータが補足できず、正しい相関が見られない)
4-6. 単回帰分析
- 回帰分析
- 直線により表現される説明変数から目的変数の値を予測式を求める
- 説明変数が1つの場合、単回帰分析
- 説明変数が複数ある場合は、重回帰分析
- 最小二乗法
- Y軸方向の誤差を最小にする(正と負の誤差が存在するので二乗和を計算する)
- 決定係数
- 目的変数の変動のうち、説明変数によって説明される部分の割合
- 0.7〜0.8程度であれば当てはまりが良いとされる
4-7. 時系列グラフ、移動平均
- 時系列データ
- 時間軸上で等間隔に観測される系列的なデータ
- 等間隔にデータが記録されていることが重要
- 読み取るべき特徴
- 長期的な傾向(トレンド):右肩上がり、右肩下がり
- 周期性
- ノイズ:不規則な変化
- 魚介類の1世帯当たり年平均1ヶ月間の支出金額
- 移動平均
- 平均をとる期間を長くすればするほど、より長期の傾向を示す
4-8. 指数、増加(減少)率、成長率
- 時間系列に沿ってデータの変動の特徴を読み取る
- 様々な加工により、変化が分かりやすくなる
- 指数
- 増加(減少)率
- 成長率
- 指数
- 増加(減少)率
- 成長率
5-1. 統計調査の役割
- e-Stat
- 母集団
- 調べたい対象全体からなる集団
- 標本
- 母集団から一部を抜き出したもの
- 全数調査
- 標本調査
- 標本抽出法
- 無作為抽出
- ランダム・デジット・ダイヤリング
- 層化抽出
- 無作為抽出
5-3. 統計情報の加工・提供
- 統計情報の発信、高度利用の促進、統計(データ)リテラシーの普及・啓発
- 統計局ホームページ
- 総合統計書
- 日本統計年鑑
- 日本の統計
- Statistical Handbook of Japan
- 世界の統計
- 統計でみる都道府県・市区町村のすがた(社会・人口統計体系)
- 地域メッシュ統計
-
- 都市計画や防災計画の策定、民間企業が出店する際の商圏分析などで幅広く利用される
-
- 政府統計の総合窓口(e-Stat)
- 政府統計のポータルサイト
5-8. 標本誤差と確率
- 標本誤差
- 標本から得られた結論に伴う確率的な誤差
- 確率論や統計的推測から、標本誤差を見積もることが重要
- 台風の予報円の定義は「円内に台風の中心が入る確率が70%」
- 信頼係数95%の信頼区間
- アメリカでは、世論調査の結果を示す際に「margin of error」として示される
- 生物的な実験の結果を表示する際には、エラーバー(誤差範囲)を付ける
5-9. まとめと更なる学習
反転授業(2014.12.20)
グループディスカッション
- シンプソンのパラドックス
- 男性の新規顧客数 31と比較して、女性が 390と大きいために、女性の影響が大きく繁栄されてしまっているのが原因
- 第3の変数を見抜くには
- 計測可能な項目を経験上把握しておいて、統計調査の段階でデザインに組み込んでおく必要がある
他のグループの発表
- 唐揚げ定食だったら、(年配の人は唐揚げを食べないだろうから)「年齢」を考慮すべきでは?
- 今回の例では、「打席数」を第3の変数として偏相関係数を取るのではなく、「打率」と「三振率」で相関を取るとよかったのでは?
その他
- 「影響を取り除く」と「影響をコントロール」は同じ意味
R 演習
反転授業には Mac を持っていったのですが、R Console (on Mac) で日本語文字化け問題がいろいろと。
2. Quarzで日本語文字化け
> cm <- c(268.8, 252.1, 300.7, 206.8, 280.4, 172.7, 244.6, 212.4, 265.5, 153.6, 225.0) > sales <- c(3233.5, 2814.7, 4605.4, 2859.7, 4155.7, 2062.6, 2587.0, 2254.8, 3655.8, 1483.5, 3412.1) > data1 <- data.frame(広告費=cm, 売上=sales) > par(mfrow=c(2, 2)) > hist(data1$広告費)
のように、日本語をラベルにすると文字化けしてしまう。
うまくいった対策例がこちら ↓
~/.Rprofile
setHook(packageEvent("grDevices", "onLoad"), function(...){ if(.Platform$OS.type == "windows") grDevices::windowsFonts(sans ="MS Gothic", serif="MS Mincho", mono ="FixedFont") if(capabilities("aqua")) grDevices::quartzFonts( sans =grDevices::quartzFont( c("Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic Pro W6", "Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic Pro W6")), serif=grDevices::quartzFont( c("Hiragino Mincho Pro W3", "Hiragino Mincho Pro W6", "Hiragino Mincho Pro W3", "Hiragino Mincho Pro W6"))) if(capabilities("X11")) grDevices::X11.options( fonts=c("-kochi-gothic-%s-%s-*-*-%d-*-*-*-*-*-*-*", "-adobe-symbol-medium-r-*-*-%d-*-*-*-*-*-*-*")) grDevices::pdf.options(family="Japan1GothicBBB") grDevices::ps.options(family="Japan1GothicBBB") } ) attach(NULL, name = "JapanEnv") assign("familyset_hook", function() { winfontdevs=c("windows","win.metafile", "png","bmp","jpeg","tiff","RStudioGD") macfontdevs=c("quartz","quartz_off_screen","RStudioGD") devname=strsplit(names(dev.cur()),":")[[1L]][1] if ((.Platform$OS.type == "windows") && (devname %in% winfontdevs)) par(family="sans") if (capabilities("aqua") && devname %in% macfontdevs) par(family="sans") }, pos="JapanEnv") setHook("plot.new", get("familyset_hook", pos="JapanEnv")) setHook("persp", get("familyset_hook", pos="JapanEnv"))
本題
> # 広告費 > cm <- c(268.8, 252.1, 300.7, 206.8, 280.4, 172.7, 244.6, 212.4, 265.5, 153.6, 225.0) > # 売上 > sales <- c(3233.5, 2814.7, 4605.4, 2859.7, 4155.7, 2062.6, 2587.0, 2254.8, 3655.8, 1483.5, 3412.1) > data1 <- data.frame(広告費=cm, 売上=sales) > data1 広告費 売上 1 268.8 3233.5 2 252.1 2814.7 3 300.7 4605.4 4 206.8 2859.7 5 280.4 4155.7 6 172.7 2062.6 7 244.6 2587.0 8 212.4 2254.8 9 265.5 3655.8 10 153.6 1483.5 11 225.0 3412.1
> # 2x2の表示領域を出す > par(mfrow=c(2, 2)) > hist(data1$広告費) > hist(data1$売上)
装飾いろいろ
> par(mfrow=c(2, 2)) > # 文字サイズを指定 > par(ps=16) > hist(data1$広告費, col="lightblue", breaks=c(150, 200, 250, 300, 350), ylim=c(0, 5), xlab="(万円)", ylab="度数", main="広告費のヒストグラム(n=11)") > hist(data1$売上, col="lightblue", breaks=c(seq(1000, 5000, by=1000)), ylim=c(0, 5), xlab="(万円)", ylab="度数", main="売上のヒストグラム(n=11)")
回帰分析
> par(mfrow=c(2, 2)) > plot(売上 ~ 広告費, data=data1) > result <- lm(formula=売上 ~ 広告費, data=data1) > # 回帰直線 > abline(result) > summary(result) Call: lm(formula = 売上 ~ 広告費, data = data1) Residuals: Min 1Q Median 3Q Max -602.87 -372.99 85.91 336.01 578.62 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -1257.663 712.937 -1.764 0.111547 広告費 18.183 2.986 6.089 0.000182 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 430.1 on 9 degrees of freedom Multiple R-squared: 0.8047, Adjusted R-squared: 0.783 F-statistic: 37.08 on 1 and 9 DF, p-value: 0.0001815 > # 相関係数 > cor(data1) 広告費 売上 広告費 1.0000000 0.8970485 売上 0.8970485 1.0000000
装飾いろいろ
> par(mfrow=c(2, 2)) > par(ps=16) > plot(売上 ~ 広告費, data=data1, pch=21, col="red", bg="red", cex=1.5, xlab="広告費(万円)", ylab="売上(万円)", main="広告費と売上の産婦図と\n回帰直線") > result <- lm(formula=売上 ~ 広告費, data=data1) > abline(result, col="blue", lwd=3) > # テキスト > text(160, 4000, "y=-1257.66+18.18x", adj=0) > text(260, 2000, "r=0.897", adj=0)
残差分析
> 残差 <- residuals(result) > data_res <- cbind(data1, 残差) > data_res 広告費 売上 残差 1 268.8 3233.5 -396.39377 2 252.1 2814.7 -511.53977 3 300.7 4605.4 395.47255 4 206.8 2859.7 357.14442 5 280.4 4155.7 314.88489 6 172.7 2062.6 180.08043 7 244.6 2587.0 -602.86822 8 212.4 2254.8 -349.57967 9 265.5 3655.8 85.90971 10 153.6 1483.5 -51.72668 11 225.0 3412.1 578.61611
> par(mfrow=c(2, 2)) > plot(残差 ~ 広告費, data=data_res, pch=21, col="red", bg="red", cex=1.5, ylim=c(-1500, 1500), xlab="広告費(万円)", ylab="残差(万円)", main="残差分析") > abline(h=0)
決定係数R2の意味
> par(mfrow=c(2, 2)) > hist(data1$売上, col="lightblue", breaks=c(seq(1000, 5000, by=1000)), ylim=c(0, 6), xlab="(万円)", ylab="度数", main="売上のヒストグラム(n=11)") > hist(残差, col="lightblue", breaks=c(seq(-2000, 2000, by=1000)), ylim=c(0, 6), xlab="(万円)", ylab="度数", main="残差のヒストグラム(n=11)") > > sd(data1$売上) [1] 923.2747 > sd(残差) [1] 408.0247 > 1-var(残差)/var(data1$売上) [1] 0.804696