header

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

[[講義と演習]]

&size(25){&color(blue){確率・統計第二(講義と演習)};}; 担当:[[間瀬茂:http://www.is.titech.ac.jp/is-wiki/?maselab]] 学部(情報科学科,4学期)(金曜日3,4限と5,6限)

** 講義の狙い [#k4111c6a]

統計学の数学的基礎(数理統計学)を紹介する.

** 演習の狙い [#d6ea8913]

数理統計学に関する様々な話題と問題を解き,統計的考え方と問題解決の
テクニックを学ぶ.毎回レポートを提出する.

&size(20){&color(red){受講者はこのページの末尾にある,受講者への連絡に注意してください!!!};};

** 講義内容 [#cbc1ca5f]
- 確率論の復習
- 統計学の基礎概念
- データの母集団分布とその推定
- 統計的仮説検定
- 最尤推定法
- 回帰分析
- 尤度比検定
- 適合度検定
- 分散分析

** 資料 [#o5e304f3]

講義は
[[稲垣宣男著「数理統計学」裳華房,改訂版:http://www.amazon.co.jp/%E6%95%B0%E7%90%86%E7%B5%B1%E8%A8%88%E5%AD%A6-%E6%95%B0%E5%AD%A6%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E7%A8%B2%E5%9E%A3-%E5%AE%A3%E7%94%9F/dp/4785314117/ref=sr_1_1?s=books&ie=UTF8&qid=1349180262&sr=1-1]]の第二部を中心として紹介する.生協の教科書販売所で入手できる.

演習は第一部及び第二部の章末問題,及び幾つかの番外問題を解答する。

** 評価 [#u35e5cb0]

出席及びレポート.レポートは演習毎に毎回三問を解説付きで出題するので,二問を選んで解答すること.演習問題とその解答は原則二週間後にこのページで紹介するので,提出は次回もしくは次々回の演習時間中に限るので注意すること.

** 注意 [#j0e8ee84]

確率・統計第一等の大学専門レベルの確率論の知識がなければ,理解は困難であろう.

** 受講者への連絡 [#m365ea40]

-[[第一回レポート解答例:https://docs.google.com/file/d/0Bw_ZmbcAMrEuNzUxd2IzVkUxZ1E/edit]]

-[[第二回レポート解答例:https://docs.google.com/file/d/0Bw_ZmbcAMrEuM2dRaTJ6Z1FRZTQ/edit]]

-[[第三回レポート解答例:https://docs.google.com/file/d/0Bw_ZmbcAMrEuc2x4Z0pjOE5qNmc/edit]]

-[[第四回レポート解答例:https://docs.google.com/file/d/0Bw_ZmbcAMrEuRkZTQ01ybF9SMkE/edit]]

-[[第五回レポート解答例:https://docs.google.com/file/d/0Bw_ZmbcAMrEuR1ZQb3pfSVE3UmM/edit]]

-[[第六回レポート解答例:https://docs.google.com/file/d/0Bw_ZmbcAMrEuZE56bDVNVV90NDQ/edit]]

-[[第七回レポート解答例:https://docs.google.com/file/d/0Bw_ZmbcAMrEuTFg1aXEwbHY5RlU/edit]]

-[[第八回レポート解答例:https://docs.google.com/file/d/0Bw_ZmbcAMrEuX3p4c094bU1JV28/edit]]

-[[第九回レポート解答例:https://docs.google.com/file/d/0Bw_ZmbcAMrEuYjdwSkF4d3BrMHc/edit]]

-[[第十回レポート解答例:https://docs.google.com/file/d/0Bw_ZmbcAMrEuV2dZTGNtNzh1ZW8/edit]]

-[[第十一回レポート解答例:https://docs.google.com/file/d/0Bw_ZmbcAMrEub1R1QWVqUEI3UFU/edit]]

-[[第十二回レポート解答例:https://docs.google.com/file/d/0Bw_ZmbcAMrEuZjJpSnNSMnk1MHc/edit]]

-[[第十三回レポート解答例:https://docs.google.com/file/d/0Bw_ZmbcAMrEuX2ZCYV9aZ2Z5N0k/edit]]

-[[1月25日講義資料(日本人の名字の統計解析):https://docs.google.com/file/d/0Bw_ZmbcAMrEuQW82N2Yzb25TckE/edit]]

//今後の予定:
//-1月18日(金)センター試験準備休講
//-1月25日(金)講義のみ開講,演習は自習
//-2月1日(金)講義,演習とも自習
//-2月8日(金)5,6時限試験(西三号棟二階W321講義室)
//-試験はこれまでのレポート課題から6問出題し,3問を選択し解答.試験時間は1時間.プログラム,通信機能のない電卓の持ち込みは可であるが,電卓がなければ到底解答不能の問題は無いと思ってください.
//-12,13回のレポートは1月25日の講義時間または試験時間中に回収します.従って,試験前に解答例を公表することは無いので注意してください.


#counter

//
//*** (2012.07.10 講義資料) [#yc15a357]
//
//今週の講義のデモ用ファイルを [[ここ:https:docs.google.com/?tab=mo&authuser=0#folders/0Bw_ZmbcAMrEuMFdRT2QwWTA3dFU]] に置きました.L11_u.R, L11_s.R,L11_e.R です.それから,恒例の授業評価用紙を配布するのを忘れて
//しまいました.私の部屋(西八W棟806号室)のドアに用紙を置いておきますので,
//書き込んだら私のレポートボックスに入れておいてください.
//
//*** (2012.07.03 講義資料) [#yc15a357]
//
//今週の講義のデモ用ファイルを [[ここ:https:docs.google.com/?tab=mo&authuser=0#folders/0Bw_ZmbcAMrEuMFdRT2QwWTA3dFU]] に置きました.L10_u.R, L10_s.R,L10_e.R です.
//
//
//*** (2012.06.26, データ解析第四回レポート課題) [#m9fc09b1]
//
// 提出期限はこれまでのを含め7月25日(水)厳守!
// 提出はこれまでのようにメイル利用ですが,メイルが苦手ならば紙媒体でも良し
// 紙の場合は西八E棟三階とW棟三階の境に用意した私のレポートボックスにお願いします
// 人に相談は構いませんが,丸写しは厳禁.非常識なほど似たレポートがあればすべてを採点しません
// レポートには「データ解析第x回レポート」と明記,名前と学籍番号も必ず明記のこと
// 複数のレポートを一緒にまとめて提出しないこと
//
//第四回レポートの課題:誕生日が一年365日,一様かつ独立なn=100人をシミュレーションし,その中の最大誕生日一致人数を返す関数BD2を定義せよ.BD2をN=10000回実行し,その結果を表にまとめよ.
//
//ヒント: 100人の誕生日の一致状況を判定するアルゴリズムは,素朴にコードすると複雑且つ時間がかかりがちである.次の例を参考にすること.これ以外の実行可能なアルゴリズムがあれば考えてください:
// > x <- c(1,1,2,7,4,5,8,5,5)
// > (y <- sort(x))
// [1] 1 1 2 4 5 5 5 7 8
// > z <- rle(y) # 関数 rle は数列 y の引き続く同じ値の数を集計する
// > z
// Run Length Encoding
//   lengths: int [1:6] 2 1 1 3 1 1  # つまりベクトルyには1が2回,2が1回,,,5が3回,,,8が1回と続く
//   values : num [1:6] 1 2 4 5 7 8
// > z$lengths
// [1] 2 1 1 3 1 1
//
//
//*** (2012.06.26 講義資料) [#yc15a357]
//
//今週の講義のデモ用ファイルを [[ここ:https:docs.google.com/?tab=mo&authuser=0#folders/0Bw_ZmbcAMrEuMFdRT2QwWTA3dFU]] に置きました.L9_u.R, L9_s.R,L9_e.R です.
//
//*** (2012.06.19 講義資料) [#hd3f1dff]
//
//今週の講義のデモ用ファイルを [[ここ:https:docs.google.com/?tab=mo&authuser=0#folders/0Bw_ZmbcAMrEuMFdRT2QwWTA3dFU]] に置きました.L8_u.R, L8_s.R,L8_e.R です.
//
//*** (2012.06.12, データ解析第三回レポート課題) [#b735cee2]
//
//提出期限は今回もできた時に.(人に相談は構いませんが,丸写しは厳禁).提出は私宛のメイルの件名に「データ解析第三回レポート」と明記して,添付ファイルもしくはメイル本文にテキストとして直接書いてください.名前と学籍番号も必ず明記してください.
//
//BMI指数は体重と身長から簡単な計算で得られることが,広く普及した理由の一つです.しかし簡単な計算で得られるものが有用であるという根拠はありません.今回の課題では,体脂肪率の予測という観点から,新しい BMI指数 nBMI=(体重Kg)^a/(身長m)^b を定義し,最適なパラメータ a,b, を人体計測値データから決定してみてください.
//
//注意:人体計測データファイル bodysize_u,csv, bodysize_s.csv は必ず最新のものを[[ここ:https:docs.google.com/?tab=mo&authuser=0#folders/0Bw_ZmbcAMrEuMFdRT2QwWTA3dFU]]からダウンロードして使ってください.以前にアップロードしたファイルは一部に未計測値が含まれ,完全ではなく,以下の作業でエラーが発生する可能性があります.
//
// X <- read.csv("bodysize_s.csv") # 人体の各種測定値データフレームを読み込む(Windows OSの場合)
// # X <- read.csv("bodysize_u.csv") # 人体の各種測定値データフレームを読み込む(Linux OSの場合)
// Y <- X[,2:4]                      # 身長,体重,体脂肪率変数だけのデータフレーム
// names(Y)[1:3] <- c("height","weight","fat") # 身長,体重,体脂肪率変数名を簡略化
// Y[[1]] <- Y[[1]]/100              # 身長変数の単位をメートルに変換
// attach(Y)                         # データフレーム Y 内の変数を直接アクセスできるように登録
// BMI <- weight/(height)^2          # BMI指数のベクトルを計算
// fm <- nls(fat ~ weight^a/height^b, data=Y, start=c(a=1,b=2)) # a,bの初期値は古典的BMI指数のそれを使用
// ###############################################################
// # 以下を検討してください:
// # (1) 非線形回帰結果 fm から,新しいBMI指数データ nBMI を求める (ヒント:fitted 関数)
// # (2) パラメータ a,b の値を求める (ヒント:coef関数)
// # (3) 相関係数 cor(fat,BMI), cor(fat,nBMI) を比較する
// # (4) 新旧のBMI指数値とfat値の差の標本標準偏差 sd(fat-BMI),sd(fat-nBMI)を比較する
// 
//*** (2012.06.12 講義資料) [#hd3f1dff]
//
//今週の講義のデモ用ファイルを [[ここ:https:docs.google.com/?tab=mo&authuser=0#folders/0Bw_ZmbcAMrEuMFdRT2QwWTA3dFU]] に置きました.L7_u.R, L7_s.R,L7_e.R です.データファイル sname.RData, Nelson.RData も必要です.
//sname.RData, Nelson.RData はRオブジェクトをそのまま記録したファイルで,
//load命令で読み込みます:
// load("sname.RData")   # オブジェクト sname が復元される
// load("Nelson.RData")  # オブジェクト Nelson が復元できる
//
//*** (2012.06.05 講義資料) [#x27a8d94]
//
//今週の講義のデモ用ファイルを [[ここ:https:docs.google.com/?tab=mo&authuser=0#folders/0Bw_ZmbcAMrEuMFdRT2QwWTA3dFU]] に置きました.L6_u.R, L6_s.R,L6_e.R です.データファイル NIST.ceramic.data も必要です.
//
//*** (2012.05.29 講義資料) [#uda24dd5]
//
//今週の講義のデモ用ファイルを [[ここ:https:docs.google.com/?tab=mo&authuser=0#folders/0Bw_ZmbcAMrEuMFdRT2QwWTA3dFU]] に置きました.L5_u.R, L5_s.R,L5_e.R です
//
//*** (2012.05.21 講義資料) [#rc217fb1]
//
//今週の講義のデモ用ファイルを [[ここ:https:docs.google.com/?tab=mo&authuser=0#folders/0Bw_ZmbcAMrEuMFdRT2QwWTA3dFU]] に置きました.L4_u.R, L4_s.R,L4_e.R です
//
//*** (2012.05.15, データ解析第二回レポート課題) [#n02b8c04]
//
//提出期限は今回もできた時に.(人に相談は構いませんが,丸写しは厳禁).提出は私宛のメイルの件名に「データ解析第二回レポート」と明記して,添付ファイルもしくはメイル本文にテキストとして直接書いてください.名前と学籍番号も必ず明記してください.
//
//BMIは相対的な肥満度を表す簡便な指数として広く使われています.その根拠の一つとして体脂肪率と相関が高いことが挙げられています.しかし,本当でしょうか.今回のレポートの内容はBMIと体脂肪率の関係,及び体脂肪率を他の身体計測値を用いて表す(重回帰)です.以下の作業を実行するRのプログラムと最終的に得られた結果(summary関数の出力)です.まず次の作業を行なってください.各段階でのRの出力は含めても含めなくても結構です.
//
//注意:人体計測データファイル bodysize_u,csv, bodysize_s.csv は必ず最新のものを[[ここ:https:docs.google.com/?tab=mo&authuser=0#folders/0Bw_ZmbcAMrEuMFdRT2QwWTA3dFU]]からダウンロードして使ってください.以前にアップロードしたファイルは一部に未計測値が含まれ,完全ではなく,以下の作業でエラーが発生する可能性があります.
//
// X <- read.csv("bodysize_s.csv") # 人体の各種測定値データフレームを読み込む(Windows OSの場合)
// # X <- read.csv("bodysize_u.csv") # 人体の各種測定値データフレームを読み込む(Linux OSの場合)
// str(X)
// Y <- X[,-1]               # ID変数を取り除いたデータフレーム
// str(Y)
// names(Y)[1:3] <- c("height","weight","fat") # 身長,体重,体脂肪率変数名を簡略化
// ### BMI指数を計算
// attach(Y)                         # データフレーム Y 内の変数を直接アクセスできるように登録
// BMI <- weight/(height/100)^2      # BMI指数のベクトルを計算
// cor(fat,BMI)                      # BMI と体脂肪率の相関係数
// ### 体脂肪率の箱型図とはずれ値
// boxplot(fat, BMI)                 # 体脂肪率とBMIの並行箱型図を描く
// plot(fat,BMI)                     # 体脂肪率とBMI指数の散布図を描く
// names(BMI) <- as.character(1:813) # BMI指数ベクトルに通し番号ラベルを付ける
// boxplot.stats(BMI)$out            # BMI指数の外れ値を確認
// ### 体脂肪率をBMI指数に回帰
// summary(y1 <- lm(fat ~ 1+BMI))    # 体脂肪率をBMI指数に回帰(定数項を含む)し要約
// op <- par(mfrow=c(2,2))           # 描画領域を2x2に分割
// plot(y1)                          # 4つの回帰診断図を一度に表示
// matplot(fat,cbind(predict(y1),resid(y1))) # 体脂肪率と予測値,残差の同時プロット
// abline(0,0)                       # x軸を重ね書き
// ### 体脂肪率を他のすべての変数に重回帰
// summary(y2 <- lm(fat ~ ., data=XX)); plot(y2)
//引き続き,step 関数で変数選択した結果,fat 変数を他のすべての変数に二次回帰した結果,そしてそれを step 関数で変数選択した結果を吟味してください.swiss データの解析プログラムが参考になるでしょう.考察も添えてください.
//
//*** (2012.05.15 講義資料) [#e542a5dd]
//
//今日の講義のデモ用ファイルを [[ここ:https:docs.google.com/?tab=mo&authuser=0#folders/0Bw_ZmbcAMrEuMFdRT2QwWTA3dFU]] に置きました.L3_u.R, L3_s.R,L3_e.R です.
//
//*** (2012.05.08 講義資料) [#e542a5dd]
//
//今日の講義のデモ用ファイルを [[ここ:https:docs.google.com/?tab=mo&authuser=0#folders/0Bw_ZmbcAMrEuMFdRT2QwWTA3dFU]] に置きました.swiss_u.R, swiss_s.R,swiss_e.R です.
//
//*** (2012.04.25, データ解析第一回レポート課題) [#n02b8c04]
//
//提出期限はまだ慣れないこともありますから,できた時に.(人に相談は構いませんが,丸写しは厳禁).提出は私宛のメイルの件名に「データ解析第一回レポート」と明記して,添付ファイルもしくはメイル本文にテキストとして直接書いてください.名前と学籍番号も必ず明記してください.
//
//レポートの内容は以下の作業を実行するRのプログラムと最終的に得られた集計表です.各段階でのRの出力は含めても含めなくても結構です.最終結果の集計表は付け加えてください.
//
//======================================
//
//WHOの基準によれば,BMI(Body Mass Index)
//
// BMI=体重(Kg)/(身長(m))^2  (身長はメートル単位に注意!)
//
//は次の8段階に分類されます.
//
// 1  16未満         重度の痩身
// 2  16以上17未満   中度の痩身
// 3  17以上18.5未満 軽度の痩身
// 4  18.5以上25未満 普通
// 5  25以上30未満   肥満
// 6  30以上35未満   肥満クラス1
// 7  35以上40未満   肥満クラス2
// 8  40以上         肥満クラス3 
//
//(1) Rで体重 w(Kg) と身長 h (cm) を引数とし,WHO基準クラス番号 1,2,...,8
//を返す関数 BMI(w, h) を定義する.
//
//(2) データ physical を[[データ解析の資料URL:https:docs.google.com/open?id=0Bw_ZmbcAMrEuMFdRT2QwWTA3dFU]]からダウンロードし
//Rで読み込む(日本人の身体計測値データ)
//
// physical <- read.csv("bodysize_s.csv")  # Windows, Mac なら
// physical <- read.csv("bodysize_u.csv")  # Linux なら
//
//(3) str(physical) でオブジェクトの構造を確認.特に総データ数と,身長と体重変数が何番目か確認.
//
//(4) BMI関数(と必要なら for ループ,if 文)を使い全員の肥満度クラス番号を計算し,ベクトル bmi に入れる.(データフレーム physical から体重と身長変数を抜き出すには二重鈎括弧 physical[[.]] を使う)
//
//(5) bmi を集計表にまとめる(つまり、クラス1,2,3,4,5,6,7,8がそれぞれ何人ずついるか。ヒント;関数 table を使用)
//
//*** (2012.4.24) [#q5990522]
//
//今週の講義で使ったデモ用のRのソースファイルを [[データ解析の資料URL:https:docs.google.com/open?id=0Bw_ZmbcAMrEuMFdRT2QwWTA3dFU]] に置きました.
// L2_s.R (SJIS版) Windows, Mac なら
// L2_u.R  (UTF版) Linuxなら
// L2_e.R (EUC版)  Linuxの場合,上で文字化けするならならこちらを使う
//です.またデモ用関数のソースファイル
// Demo_s.R (SJIS版)
// Demo_u.R  (UTF版)
// Demo_e.R (EUC版)
//も置きました.使用OSのロケールに合わせたファイルをダウンロードして使ってください.
//
//*** (2012.04.25) [#n8a75460]
//
//Demo("L1.R") が実行できないという質問がありました.原因は私のLinuxでは日本語のロケールがUTFになっていることです.WindowsやMacではSJISで無いと文字化けします.日本語が含まれないファイルでは区別の必要はありません.[[データ解析の資料URL:https:docs.google.com/open?id=0Bw_ZmbcAMrEuMFdRT2QwWTA3dFU]]にUTF, SJIS, EUC(Linuxで使われるもうひとつのロケール)用に三種類のファイルを置きますから,使っているOSに合わせたファイルをダウンロードしてください.例えば
// L1_s.R (SJIS版)
// L1_u.R  (UTF版)
// L1_e.R (EUC版)
//です.Demo 関数については [[RjpWikiの記事:http:www.okada.jp.org/RWiki/?R%A4%CE%A5%C7%A5%E2%CD%D1%A4%CE%B4%D8%BF%F4]] を参照してください。
//
//*** (2012.4.17) [#a8221c1f]
//
//今日の講義で使ったデモ用のプログラムのソース L1.R を[[データ解析の資料URL:https:docs.google.com/open?id=0Bw_ZmbcAMrEuMFdRT2QwWTA3dFU]]に置きました.またデモ用の関数のソースファイルがDemo.R です.講義と同じ内容を実行するには,まず必要なパッケージ evaluate (とそれが依存する二つのパッケージ)を使っているパソコンにインストールする必要があります.これは実行中のR端末から命令
//
// install.packages("evaluate", dependencies=TRUE)
//
//を実行するとひとりでにインストールできます.途中で質問がありますが,CRANのミラーサイトは日本のどれかを選んでください.その後
//
// source("Demo.R")
//
//で Demo 関数を読み込みます.ls()命令で確認してください.
//最後に
//
// Demo("L1.R") 
//
//とするとデモが始まります.CRキーを押すたび,命令と対応実行結果が順に表示されます
//
//*** (2012.4.17) [#m0b98074]
//
//データ解析の資料を [[データ解析の資料URL:https:docs.google.com/open?id=0Bw_ZmbcAMrEuMFdRT2QwWTA3dFU]] に置きましたから,必要ならダウンロードしてください.内容は[[Rの公式入門マニュアルの和訳:https:docs.google.com/file/d/0Bw_ZmbcAMrEudVJRb05zQXI0elU/edit]],[[Rの紹介プレゼン:https:docs.google.com/file/d/0Bw_ZmbcAMrEudzdWUmh2VnNGZ3c/edit]],[[Rの本体に含まれる統計処理用関数のヘルプ文章の和訳:https:docs.google.com/file/d/0Bw_ZmbcAMrEuV0xOWVNxdU85TTA/edit]](大部)です.今後,講義で使う資料や課題はこのURLに置きます.
//なお CRAN (Comprehensive R Archive Network)の[[筑波大学ミラーサイト:http:cran.md.tsukuba.ac.jp/]] から,例えばWindows用のバイナリーが手に入ります.日本のRユーザーの情報交換サイト [[RjpWiki:http:www.okada.jp.org/RWiki/?RjpWiki]] には各種OSへのRのインストール方法の紹介がありますが,
//賞味期限切れの記事も結構ありますので注意.私の愛用している Ubuntu Linux ではRのインストールは
//
// sudo apt-get install r-base
//
//主要パッケージの一括インストールは
//
// sudo apt-get install r-cran*
//
//です.
//
//
//