エンジニアのスキルを試すコードパズル ─この問題,あなたは解けますか?

第7回 t検定による問題解決,Rで実践できますか?~データサイエンティストの統計学─倉橋一成からの問題

この記事を読むのに必要な時間:およそ 1 分

問題

10万人の集団A,B,Cの群があります。これらの集団の身長の「平均値」が等しいか等しくないか,全員の身長を測定せずに判断したいと思います。それぞれの集団から100人ずつサンプリングしてt検定したらどうなるか,Rで計算してみましょう。

準備として,以下のコードを実行し,10万人分の身長データを3群作成してください。それぞれの群は以下のように想定しています。

  • A群とB群⇒ 平均値が170cmの集団
  • C群⇒ 平均値が175cmの集団
# A群のデータ生成
set.seed(1)
heightA <- 170 + 10*rnorm(100000)
# B群のデータ生成
set.seed(2)
heightB <- 170 + 10*rnorm(100000)
# C群のデータ生成
set.seed(3)
heightC <- 175 + 10*rnorm(100000)

準備ができたら,下記の4つの問題に解答してください。

【問1】⁠ A,B,C群からそれぞれ100人ずつサンプリングしたいです。下記の空欄(1)~(3)にあてはまるコードを埋めてください。
# A群のサンプリング
set.seed(11)
heightASmple <-   (1)  
# B群のサンプリング
set.seed(12)
heightBSmple <-   (2)  
# C群のサンプリング
set.seed(13)
heightCSmple <-   (3)  
【問2】A群 vs B群,A群 vc C群の身長の平均値をt検定し,5%有意であったか計算してください。計算に使ったRのコードと計算結果を提出してください。
【問3】問1と問2の操作を1000回繰り返したときのP値を求めてください。下記の空欄(1)と(2)にあてはまるコードを埋めてください。
PvalAB <- NA
PvalAC <- NA

# 問1のP値を算出
for( i in 1:1000 ){

  (1)  

}

# 問2のP値を算出
for( i in 1:1000 ){

  (2)  

}
【問4】問3で作成した1000回分のP値を使って,αエラーとβエラーに関してどのようなことが言えるか記述してください。計算に使ったRのコードと計算結果を提出してください。

難易度
★★☆☆(当該領域で,実務を一通り遂行していれば解けると思われるレベル)
言語/領域(Perl,Pythonなど)
R,データサイエンス
解答形式

ファイルアップロード形式

解答評価のポイント
有意差検定ができるかどうかを評価します。
挑戦を開始する前にご準備いただきたいもの

解答の提出方法はテキストファイル(.txt)をアップロードする形式です。Rで実行したコードや解答文をテキストファイルにまとめて記入してください。あらかじめ,⁠設問1.txt」を用意しておくとよいでしょう。

その他注意事項
  • 一度挑戦を開始すると,解答を送信しなかった場合でも,1回目のチャレンジは終了となります。
  • 何度でも挑戦できますが,最新の挑戦のみが採点されます。
  • 白紙に近いなど,採点不能なものは,フィードバックいたしかねます。
  • この問題の正解及びコードレビューは,技術評論社のサイトこの連載上にて掲載します。優秀な解答,面白い解答をいただいた方は,ニックネーム,解答内容,解答フィードバック内容を公開させていただく可能性があります。ご了承ください。
解答受付先
https://codeiq.jp/ace/kurahashi_issei/q173
掲載期間(開始~終了)
1月23日(水)~2月7日(木)
採点可能人数
30人
想定時間(分)
30分~
制限時間
なし

著者プロフィール

倉橋一成(くらはしいっせい)

東京大学で医療分野を中心に統計学を研究。機械学習に関して論文発表し博士号を取得。研究成果をビジネスに活かすために,卒業と同時に分析専門会社iAnalysis合同会社を設立。博士過程のころから製薬会社の統計アドバイザーも務める。 現在は医療分野の他にソーシャルゲーム・Webサービス・金融分野などで,統計学を応用したデータマイニングサービスを展開している。

iAnalysis合同会社:http://ianalysis.jp/
ブログ:http://d.hatena.ne.jp/isseing333/

コメント

コメントの記入