*disclaimer
637941
- 2. R による統計分析例
2. R による統計分析例
2.1 分散分析
分散分析とは
- 「分散」(バラツキ)を分析する
- データの「バラツキ」が、何らかの理由(要因)によるものなのか、偶然の誤差なのかを判定する。
- 「要因」の数により、「一要因」から「三要因」まである。
- 集めたデータが、一人の被験者からとった複数のデータ(「被験者内」) なのか、複数の被験者からとったデータ(「被験者間」)なのかを区別する。
- 要因が複数ある場合は、「混合」(被験者内と被験者間)の場合もある。
分散分析の流れ
2.2 Rで分散分析はANOVA君できまり
- js-STARと同じ使い勝手・説明
anova君のインストール(Rで書かれたプログラムを読み込んで使う)
- anovakun というソースコードをダウンロードする
- Rのメニューからソースコードを読み込む
source("http://riseki.php.xdomain.jp/index.php?plugin=attach&refer=ANOVA%E5%90%9B&openfile=anovakun_471.txt")
分散分析のタイプと分析の手順
分散分析のタイプ一覧 As(1要因参加者間) sA(1要因参加者内) ABs(2要因参加者間) AsB(2要因混合) sAB(2要因参加者内) ABCs(3要因参加者間) ABsC(3要因混合) AsBC(3要因混合) sABC(3要因参加者内)
- 分析のタイプを決める。
- 要因はいくつあるか
- それぞれの要因は「被験者内」か「被験者間」か(「対応のある」データか「対応のない」データか)
- それぞれの要因に「水準」はいくつあるか
- 例
- トレーニングをする前と後で成績が上がるか(一要因・被験者内・二水準)
- トレーニングをする前と後、そして、しばらくしてからも効果が残るか(一要因・被験者内・三水準)
- 文学部、工学部、理学部で、英語の成績に差があるか(一要因・被験者間・三水準)
- 漢字の画数が多い熟語と少ない熟語で読む時間に差があるか(一要因・被験者内・二水準)
- 漢字の画数が多い熟語と少ない熟語で、実在する語と実在しない語とで、読む時間に差があるか(二要因・被験者内・2×2)
- 漢字の画数が多い熟語と少ない熟語を読むときに、日本語母語話者と学習者とで差があるか(二要因・混合・2×2)
- 漢字の画数が多い熟語と少ない熟語で、実在する語と実在しない語とで、日本語母語話者と学習者とで読む時間に差があるか(三要因・混合・2×2×2)
- 分析にタイプに合わせてデータを整形する。
- データを読み込む。
- 分析のタイプに合わせて、コマンドを実行する。
ANOVA君の使い方
3.データファイルの作成
- ポイント
- 被験者内は、横に並べる
- 被験者間は、縦に並べる
- js-STARの形式を参考に
3.1より古いRの場合、新しい今のanovakunだとうまく動かない:anovakunが使う関数が入っていない
Error in ci.calc(dat = dat, design = design, factnames = factnames, cilmd = cilmd, : could not find function "anyNA"
古いR(3.0.1)で古いanovakun(4.3.3)だと大丈夫なんだけど、、、
↓この一行をコピペしてanyNA()が使えるようにしてください。 (Thanks to 阿部君)
anyNA = function(x) {any(is.na(x))}
anovakunのコマンド
anovakun(データ, "分析のタイプ", 各要因の水準数, , オプション)
- 要因をAからZで
- 小文字のsは「被験者」の意味
- 被験者間はsの左側
- As
- 被験者内はsの右側
- sA
- 被験者間はsの左側
- 被験者間と被験者内の両方の要因があるときは
- 被験者間要因の方から先に割り当てる
- 同じ要因が複数ある場合は
- より包括的な要因から順にならべる
- 1要因被験者間で、水準が3つだとすると
anovakun(データ, "As", 3)
- 2要因混合タイプで、水準が、それぞれ、2と3だとすると
anovakun(データ, "AsB", 2, 3)
- オプションとしては、多重比較など。
- 「Bonferroniの方法」が有名だが、検出力が低くなるので、その改良版の「Holmの方法」を使うようになっている。
anovakun(データ, "AsB", 2, 3, holm=T)
2.3 分析の実例「三つのクラスで、成績に差があるか?」
対応のないサンプルの場合:threeclasses.xlsx(590)を例に
- ポイントは、データをどういうフォーマットで並べた表を用意するか。
- 対応のない三つのクラス間なので、被験者間
- 縦に並べる
- 左側にクラスの違いを示す記号を付けておく
- 要因は一つだけ
- 水準は三つ(三つのクラス)
- 対応のない三つのクラス間なので、被験者間
- データの形
three.txt(209)
a 76 a 85 a 81 a 41 a 73 a 66 a 88 a 78 a 85 a 47 a 71 a 62 a 89 a 84 a 74 a 78 a 78 a 75 a 93 a 57 a 61 a 79 b 56 b 44 b 46 b 73 b 74 b 58 b 72 b 74 b 85 b 68 b 67 b 68 b 73 b 68 b 83 b 80 b 76 b 81 b 81 b 77 b 53 b 57 c 54 c 67 c 73 c 57 c 74 c 74 c 65 c 82 c 74 c 82 c 66 c 80 c 60 c 78 c 69 c 82 c 71 c 63 c 60 c 75 c 72 c 68
- データをRに読み込んでおく
- 「クリップボード」にコピーしておいて
- 読み込むコマンド
three <- read.table("clipboard")
- anovakunの命令
anovakun(three, "As", 3)
- その結果
[ As-Type Design ] This output was generated by anovakun 4.7.1 under R version 3.2.1. It was executed on Tue Jul 21 19:20:51 2015. << DESCRIPTIVE STATISTICS >> ---------------------------- A n Mean S.D. ---------------------------- a1 22 73.6818 13.3502 a2 22 68.8182 11.7823 a3 22 70.2727 8.1951 ---------------------------- << ANOVA TABLE >> --------------------------------------------------------- Source SS df MS F-ratio p-value --------------------------------------------------------- A 274.2121 2 137.1061 1.0706 0.3490 ns Error 8068.4091 63 128.0700 --------------------------------------------------------- Total 8342.6212 65 128.3480 +p < .10, *p < .05, **p < .01, ***p < .001 output is over --------------------///
2.4 分析の実例「事前テストと事後テスト、遅延テストで差があるか」
対応のあるサンプルの例 prepostdelay.xlsx(567)(練習のための作例です)
- あるクラスで学習実験をしました。
- 事前テスト => 学習 => 事後テスト => 1週間後に遅延テスト
- 同じ人から3種類のデータを取っているので「対応のあるデータ」(被験者内)
- 学習の効果はあったでしょうか?
- また、その効果は維持されたでしょうか?
- 要因は、タイミングだけなので、1要因(水準は三つ)
- タイプとしては sA(1要因参加者内) タイプ。
- 分散分析の場合、対応のあるデータについては、球面性の検定をする必要がある。
- 各水準間の「差」の分散が等しいことを確認するため
- その際に、もし有意だった場合(p値が0.05より小さい場合)球面性が保たれていないことになるが、自動で自由度の補正を行うオプションをつけるようにすればよい auto=T
- コマンド
- データの読み込み
prepostdelay <- read.table("clipboard", head=T)
- 実行
anovakun(prepostdelay, "sA", 3, auto=T)
- グラフで見てみる
boxplot(prepostdelay)
2.5 やってみよう
杉浦・岩崎(2003)日本語学習者のための擬音語・擬態語学習用マルチメディアCALL教材の改善に向けて
- 20人の被験者にCALL教材を使ってもらいました。
- 学習してもらう項目「実験項目群」と学習してもらわない項目「統制項目群」の二種類の項目群からなるテストを受けてもらいました。
- テストは、事前・事後・遅延の3種類を受けてもらいました。
- 教材に含まれていて学習した項目(実験項目群)と教材に含まれていなかった項目(統制項目群)とで、差があるかどうか。
- データ
sugiura-iwasaki.xls(493)
- 分析
- 実験項目群について、事前・事後・遅延の成績に差があるか?
- 統制項目群について、事前・事後・遅延の成績に差があるか?
- 実験項目群と統制項目群とで、事前・事後・遅延の成績に差があるか?
杉浦担当の授業に関しての課題
上の「分析」をRを使ってやってみること。 その手順と結果と考察をレポートにまとめること。 評価のポイントは、 1)分析手順がわかっているか、 2)結果のどこを見てどう判断すればよいかわかっているか、 3)結果について、自分で考察することができるか、 という点を評価しますので、「わかっている」ということが、わかるように書いてください。 枚数の制限は特に設けませんが、出てきた結果を、どこが必要か、どこは不要か、ということを 考えずにただコピペして枚数を増やすというのはよくありません。 必要なことを十分書いてください。 授業の感想も、書いてくださいね。よろしく。 締め切りは、7月30日木曜日午後5時 PDFファイルにして、杉浦にメールで送ってください。(24時間以内に受け取ったという返事をもらってください。ない場合は催促してください。)
レポートを書く前に、クラスメイト同士で相談してお互いに教えあってもよいですが、レポートを書く時には、その分析と書くことは自分一人で行ってください。約束です。
https://sugiura-ken.org/wiki/