simulation_stats_book

数値シミュレーションで読み解く統計の仕組み・サポートサイト

こちらは「数値シミュレーションで読み解く統計の仕組み;Rでわかる心理統計」のサポートサイトです。 ここでは本書で案内していたコード,練習問題の解答例を掲載しています。

本書「はじめに」でも言及しましたが,こちらのサイトにあるコードをコピーして利用することはお勧めしません。 読者の皆さんには,Rプログラミングの技術を習得していただくことを期待しており,コードをコピー&ペーストすることではプログラミング技術は身に付かないからです。同じデジタルな情報を書き写すことは馬鹿馬鹿しいことのように思えますが,転記ミス,誤タッチ,TYPOを自分で経験し,エラーの対処を体験することが上達への近っ道だからです。

プログラミング技術を磨くためには,まず教本の写経から始め,ついでコードの一部を自分で改変し,どこがどう変わったか確認する,という段階に進んでください。常にコードを「読み」,結果に「触れる」ことで自らが体験すること,自分なりの感覚を把握することが肝要です。

また,ここに示されている練習問題の解答例は,あくまでも解答「例」であり,学力テストのような唯一の正答ではありません。FizzBuzz課題の例で示したように,機能的に一緒であれば,実装の方法についてはいくつものルートがありえます。あくまでも「そういう答え方もあるのか」という参照をしてください。

正誤表

万全を期して作成したつもりですが,初版で既にいくつか間違いのご指摘をいただいております。 ご指摘に御礼申し上げ,また,ここにお詫びして修正をご報告いたします。

page 解説
p.6  Rコードn <- 2500 n <- 25 テキストでは$n=25$の例として示していましたが,コードは続く$n=2500$の例を実行するものになっていました。
p.6 5行目 実際に帰無仮説が採択される 実際に帰無仮説が棄却される  
p.6 6行目 有意水準α = 0.05以下 有意水準α = 0.05未満  
p.7 コード内のコメント データが当初の倍になるまで増やし続ける データが当初の3倍になるまで増やし続ける  
p.10(下から5行目)  わかりやすく書いる書籍 わかりやすく書いている書籍  
p.18 L7 BはAと同じくxを3列2行に BはAと同じくxを3行2列に rowは行,colは列です。失礼しました。
p.18 Rの出力の要素が全て0になっている 1から24までの数字が順に入ります。 array関数が配列を指定するものです。
p.26  RコードSpecies = "setosa" Species == "setosa" 等価演算子は==です
p.26-27 出力 コード 右肩に「出力」と書かれているブロックは、「コード」が正しいです。
p.35-36 出力 コード 右肩に「出力」と書かれているブロックは、「コード」が正しいです。
p.26脚注8  magritterパッケージ magrittrパッケージ  
p.40 決して実行しないでくださいのコード 変更なし Rではカウンタ変数は別途割り当てられるので,永久ループにはならないそうです。しかしプログラミング言語として,一般的に避けるべき作法です。
p.41 Rが永遠の計算ループから抜け出せなくなります。 抜け出せなくなることはありませんが,おかしな挙動になります。 両方iで回すと,内側のiループが外側のiループ分繰り返されるという動きになります
p.46 Rコードifelse(a > 10, print("a >10"), print("a <=10")) print()は不要です  
p.47脚注22 ¦¦¦ 本文中のコードと同様に、\|\|\|  
p.48冒頭       a が 10 以下か、b が 10 以上 a が 10 以下、かつ、b が 10 以上 コード的には問題ないんですが,条件文の意味が違いました。
p.49 モジュロ;odulo モジュロ;modulo  
p.55 ?proc.time ?system.time  
p.57 iter <- 10000 iter <- 100000  
p.80 RコードMC_demo() mc_demo()  
p.91 中央 $\sum_{i=1}^{1}f(x) = f(1) = \theta^1 (1 - \theta)^0 = \theta$, $\sum_{i=0}^{0}f(x) = f(0) = \theta^0 (1 - \theta)^1 = 1 -\theta$ $f(1) = \theta^1 (1 - \theta)^0 = \theta$, $f(0) = \theta^0 (1 - \theta)^1 = 1 -\theta$  
p.104 Rコード最後の行内 df(line_x,df1 = nu_1, df2= nu_2) df(line_x,df1 = 1, df2= nu) これに伴い、図3.29の曲線もわずかに変化します(ヒストグラムに変化はありません)。
P.124 図4.2の結果を導いた 図4.1の結果を導いた  
P.134 Rコードvar_p var_p() Rのネイティブパイプは,関数()の形に渡すことが必要です(magritterのパイプ演算子%>%であれば問題ありません)
P.142本文下から3行目 サンプルサイズ$n$が4、10、100と大きくなるにつれて   サンプルサイズ$n$が4、20、100と大きくなるにつれて  
P.143図4.14      誤った画像ファイルが挿入されていました。コードを実行して出力される図が正しいです
P.152コード最終行 df = n - 2 df = n - 1 p151の数式と対応するので、-1が正しいです
P.167 ページ中央付近の本文 wtcars$wt mtcars$wt  
P.168 Rコードcor(mtcar$mpg, mtcars$wt) cor(mtcars$mpg, mtcars$wt)  
P.182 Rコードt.test(sample_r)$conf.int[1:2] cor.test(dat_obs[, 1], dat_obs[, 2])$conf.int[1:2] 出力も[1] 0.3787639 0.8187475となります。
P.181 パーセンタイル信頼区間の方が広くなっています。 今回はパーセンタイル信頼区間の方が狭くなっています。 ここは一般的に狭くなるわけではないので。
P.182 FisherのZ変換の上限(0.4973)と下限(0.5011) 上限は0.5897387,下限は0.4217412 Rのコード変更に伴って修正させていただきます。
P.247 ただし、ここでは簡単のためにサンプルサイズが群ごとに等しいこを仮定します。 ただし、ここでは簡単のためにサンプルサイズが群ごとに等しいことを仮定します。 誤字

各章のコード

確認環境

コードについては以下の環境で確認しました。


R version 4.3.1 (2023-06-16)

Platform: x86_64-apple-darwin22.4.0 (64-bit)

Running under: macOS Ventura 13.4.1