第4章は統計を扱います。今回も「シロート統計学」のハルさんとコラボレーションすることとなりました。シロート統計学はEZRを使った統計分析をわかりやすく解説されています。第4章はシロート統計学で使われていたEZRをRで行うとどうなるのか?といった視点で進めていきます。今回使うデータもハルさんのサイトと同じものを使わせでいただく事になりました。それぞれ見比べることで参考にしてみてください!今回は一元配置分散分析を紹介しますまず一元配置分散分析(ANOVA)についてはハルさんのサイトをご参照ください。1.準備〜4.データの読み込みまでは【4-1】Rでt検定を行う方法と全く同じ流れになります。1〜4まででわからない部分があれば確認してみてください。第4章は毎回ExcelデータをダウンロードしてRを使うのでプロジェクトで管理して行うことを勧めています。ここではR練習というプロジェクトを作り、Excelファイルを入れるためのdataフォルダを作っています。これを前提に次から進めていきます。次にRのコードを書くためのスクリプトファイルを作ります。3.データのダウンロード今回もハルさんのサイトのデータを使わせていただきます。デモデータ(ANOVA)この章ではRを使ってダウンロードしています。リンクのアドレスをコピーdestfileは保存場所と保存のファイル名を指定します。実際のコードは以下になります。"の中)とdestfileのdata/以降を変更するだけでOKです。destfile)dataフォルダにダウンロードできたことを確認します。4.データの読み込みデータを読み込みます。今回は【4-0】第4章を進めていく上での準備で行った方法で進めます。Fileでデータを確認します。データが入っているセルを確認します。Datasetでデータを取り込みます。Sheet,Rangeを指定します。Name:ハルさんのサイトではgripでしたがgrip_anovaとします(大文字・小文字は別物とされます)Sheet:このExcelは1つしかデータがないのでDefaultのままでOKRange:先ほど確認したB2:C62Importボタンを押す前に右にあるコードをコピーしスクリプトファイルに貼り付けることも忘れずに行います。"B2:C62")View(grip_anova)データが正しく入っていることを確認します。これでデータの取り込みは完成です。5.正規分布の確認ハルさんのサイトに沿って正規分布の確認を行います。正規分布の確認は【4-1】Rでt検定を行う方法で紹介しています。以下のコードがイメージできない場合はまずこちらの記事をご参照ください。ヒストグラムで分布を確認します。1つずつグラフを作るのは手間がかかるので、まとめてグラフを作ります。ヒストグラムはgeom_histgram関数を使います。グラフが重なっていると見にくいのでfacet.gridでカテゴリーごとにグラフを分けます。facet.gridに関しては【3-4】Rのggplot2でヒストグラムを作るgeom_histogram関数で紹介しています。次にハルさんのサイトでは正規性の検定を行っています。正規性の検討はshapriro.test関数を3つのカテゴリーそれぞれに行う必要があります。今回はsplit関数とmap関数を使いまとめて行ってみます。下の図は【4-1】Rでt検定を行う方法で使った方法ですが今回のコードと見比べてみてください。コードがほとんど同じです。コードを使うと他でも役に立つことがわかります。map(~shapiro.test(.$grip))まとめて結果が出ました。すべて正規分布であることが棄却されませんでした。次に等分散性の確認を行います。3群以上で等分散性を検定するにはBartlett検定を使います。使えば$は必要ありません。どちらでも大丈夫です。grip_anova)8.分散分析(ANOVA)を行うそれでは本題の一元配置分散分析と多重比較を行います。実は一元配置分散分析と重回帰分析(t検定も)は同じ分析方法です(詳しく知りたい方は一般線形モデルで検索してみてください)。出てきた結果を分散分析の形式で表示するか重回帰分析の結果で表示するかの違いだけです。そのため一元配置分散分析を行うには分散分析のaov関数か重回帰分析のlm関数で行います。その後に行う多重比較ではlm関数が使えないものもあるので基本はaov関数で大丈夫です。どちらの関数もまずモデルを作りサマリーを表示するというのが一般的な流れです。全体的な流れは以下の通りです。sumamry関数だけ結果の表示が変わるので注意が必要です。grip_anova)summary.aov(model_grip_lm)結果はどちらもEZRと同じになりました。9.多重比較を行うハルさんのサイトでは多重比較でTukeyを紹介していますが他も紹介します。Tukeyだけ関数が違います。Tukeyの場合Tukeyの場合は先程のaov関数の結果を使います。lm関数の結果は使えませんので注意が必要です。TukeyHSD(model_grip_anova)Bonferroniの場合pairwise.t.test関数はモデルの結果を使いません。"hochberg")10.まとめ今回は一元配置分散分析を紹介しました。行うときはlongデータである必要があります。Excelでデータ収集するときに注意するか、wideデータの場合はlongデータに直してから分析を行ってください。longデータとwideデータについてはで【2-5】Rでデータを集計するのに便利なlongデータとgather関数で紹介しています。次回はKruskal-Wallis検定を行います。(追記)グラフの作成EZRでは検定と同時にグラフを作成しますが、Rでは直接作成します。【4-1】t検定でグラフを使ったときのコードがそのまま使えます。グラフを作るために必要な要約のコードもそのまま使います。c(0,50))コードの違いはわかったでしょうか?t検定で使ったデータであるgripを今回のデータであるgrip_anovaに変更しただけです。それ以外のコードの中身は全く一緒です!11.今回のコード今回使ったコードのまとめになります。