情報処理実習3B(Web)

2016年度 前期 木03 13:30-15:00 瀬田2-218

Rによる二元配置要因分散分析

大学生の自習時間に関する学部別学年別調査データ(架空データ)を用いる。

ある大学で学生の一日あたりの平均自習時間を調査した。学生を学部ごと、学年ごとに無作為で4人抽出し、1ヶ月の平均時間を調査した。ただし回答漏れが存在している。

このデータから学部・学年の違いが自習時間に影響するかどうかついて分析せよ。

回答漏れがあることから、このデータは「非釣り合い型」となる。それに留意して分析を進める。

二元配置要因分散分析

スクリプト

data <- read.csv("http://kyoto-edu.sakura.ne.jp/weblesson/statistics/data/self-study2.csv",na.strings=99999, fileEncoding = "utf-8")
fm1 <- time~grade*faculty #学年*学部
fm2 <- time~faculty*grade #学部*学年

#二元配置分散分析
source("http://kyoto-edu.sakura.ne.jp/weblesson/statistics/socialStatisticsBasic.R", encoding="UTF-8")
output.twoway.anova <- twoway.factorial.anova(fm1,data,interaction=T)

#結果出力
output.twoway.anova
twoway.factorial.anova関数(socialStatisticsBasic.Rで読み込まれる自作関数)
twoway.factorial.anova(formula,data,type,interaction)
二元配置要因分散分析を行う。
  • formula=「従属変数(検定変数)~因子1*因子2」
  • data=モデル中の変数を含むデータフレーム(formulaが実体を持つ時は省略可)
  • type=平方和のタイプ(1または2 初期値は2)
  • interaction=グラフを出力するか(TRUE/FALSE 初期値はFALSE)

「非釣り合い型」データなので平方和計算をType2で分析を行う。

結果

$factor1
     N df     mean       u2 Missing Value
1st 18 17 116.5556 102.2614             2
2nd 19 18 115.4211 250.7018             1
3rd 19 18 110.7895 223.7310             0
4th 20 19 102.1000 297.5684             0
Sum 76 72 111.0263 245.9193             4

$factor2
            N df     mean       u2 Missing Value
economy    14 13 106.6429 287.4780             1
law        15 14 104.4667 279.8381             1
literature 16 15 112.3750 160.6500             0
science    16 15 119.7500 138.7333             0
sociology  15 14 110.9333 295.4952             0
Sum        76 72 111.0263 245.9193             4

$mix.mean
     economy    law literature science sociology
1st 121.6667 116.50     113.75  112.25    121.00
2nd 104.3333 104.25     118.75  124.50    122.50
3rd 113.7500 110.00     111.00  112.75    106.25
4th  90.0000  88.50     106.00  129.50     96.50

$anova
           Sum Sq df  Mean Sq        F          P
grade    2439.712  3 813.2373 4.745573 0.00510066
faculty  2089.115  4 522.2787 3.047710 0.02418242
mix      4246.336 12 353.8613 2.064926 0.03473388
Residual 9596.583 56 171.3676       NA         NA

学年・学部・交互作用、すべて有意である。

事後検定

学年についての多重比較検定

#学年要因が有意なので学年について多重比較検定を行う。
multiple.comparison.test(fm1,data,anova=output.twoway.anova)

結果

$Tukey
            mean diff       SE         t df           p
1st vs. 2nd  2.166667 4.341708 0.4990355 56 0.958955806
1st vs. 3rd  6.283333 4.341708 1.4472030 56 0.475891596
1st vs. 4th 14.933333 4.275419 3.4928352 56 0.005065363
2nd vs. 3rd  4.116667 4.275419 0.9628686 56 0.770928990
2nd vs. 4th 12.766667 4.208085 3.0338422 56 0.018632358
3rd vs. 4th  8.650000 4.208085 2.0555667 56 0.180462377

1回生と4回生、2回生と4回生の間に差がある。

学部についての多重比較検定

#学部要因が有意なので学部について多重比較検定を行う。
multiple.comparison.test(fm2,data,anova=output.twoway.anova)

結果

$Tukey
                         mean diff       SE         t df          p
economy vs. law             2.6250 4.909029 0.5347290 56 0.98333782
economy vs. literature     -4.9375 4.817263 1.0249596 56 0.84277929
economy vs. science       -12.3125 4.817263 2.5559119 56 0.09290377
economy vs. sociology      -4.1250 4.909029 0.8402884 56 0.91682255
law vs. literature         -7.5625 4.723715 1.6009645 56 0.50307599
law vs. science           -14.9375 4.723715 3.1622356 56 0.02048691
law vs. sociology          -6.7500 4.817263 1.4012106 56 0.62946323
literature vs. science     -7.3750 4.628277 1.5934657 56 0.50776624
literature vs. sociology    0.8125 4.723715 0.1720044 56 0.99979762
science vs. sociology       8.1875 4.723715 1.7332756 56 0.42244487

法学部と理工学部の間に差がある。

単純主効果検定

#交互作用が有意なので単純主効果検定を行う。
simple.main.effects(fm1,data,anova=output.twoway.anova)

結果

$grade
             Sum Sq df  Mean Sq         F          P
economy    2003.131  3 667.7103 3.8963636 0.01341000
law        1690.983  3 563.6611 3.2891938 0.02713921
literature  340.250  3 113.4167 0.6618328 0.57900126
science     891.500  3 297.1667 1.7340894 0.17045596
sociology  1760.183  3 586.7278 3.4237972 0.02319165
Residual   9596.583 56 171.3676        NA         NA

$faculty
            Sum Sq df    Mean Sq         F            P
1st       243.2778  4   60.81944 0.3549064 0.8395426985
2nd      1442.4649  4  360.61623 2.1043436 0.0923525241
3rd       134.9079  4   33.72697 0.1968107 0.9390393714
4th      4514.8000  4 1128.70000 6.5864275 0.0002039407
Residual 9596.5833 56  171.36756        NA           NA
  • 経済学部、法学部、社会学部において学年間に差がある。
  • 4回生において学部間に差がある。

経済学部、法学部、社会学部での学年についての多重比較検定

#経済学部において学年要因が有意なので学年について多重比較検定を行う。
multiple.comparison.test(fm1,data,fact="economy",anova=output.twoway.anova)
#法学部において学年要因が有意なので学年について多重比較検定を行う。
multiple.comparison.test(fm1,data,fact="law",anova=output.twoway.anova)
#社会学部において学年要因が有意なので学年について多重比較検定を行う。
multiple.comparison.test(fm1,data,fact="sociology",anova=output.twoway.anova)

結果

経済学部
$Tukey
            mean diff        SE         t df          p
1st vs. 2nd 17.333333 10.688547 1.6216735 56 0.37498039
1st vs. 3rd  7.916667  9.998220 0.7918076 56 0.85786669
1st vs. 4th 31.666667  9.998220 3.1672303 56 0.01293284
2nd vs. 3rd -9.416667  9.998220 0.9418343 56 0.78250133
2nd vs. 4th 14.333333  9.998220 1.4335885 56 0.48414173
3rd vs. 4th 23.750000  9.256553 2.5657498 56 0.06080695
法学部
$Tukey
            mean diff       SE         t df         p
1st vs. 2nd     12.25 9.256553 1.3233867 56 0.5521753
1st vs. 3rd      6.50 9.998220 0.6501157 56 0.9150742
1st vs. 4th     28.00 9.256553 3.0248840 56 0.0190869
2nd vs. 3rd     -5.75 9.998220 0.5751023 56 0.9391192
2nd vs. 4th     15.75 9.256553 1.7014972 56 0.3325762
3rd vs. 4th     21.50 9.998220 2.1503827 56 0.1500494
社会学部
$Tukey
            mean diff       SE         t df          p
1st vs. 2nd     -1.50 9.998220 0.1500267 56 0.99878185
1st vs. 3rd     14.75 9.998220 1.4752625 56 0.45903075
1st vs. 4th     24.50 9.998220 2.4504361 56 0.07930128
2nd vs. 3rd     16.25 9.256553 1.7555130 56 0.30546832
2nd vs. 4th     26.00 9.256553 2.8088208 56 0.03356738
3rd vs. 4th      9.75 9.256553 1.0533078 56 0.71896990

経済学部、法学部においては1回生と4回生の間に、社会学部においては2回生と4回生の間に差がある。

4回生での学部についての多重比較検定

#4回生において学部要因が有意なので学部について多重比較検定を行う。
multiple.comparison.test(fm2,data,fact="4th",anova=output.twoway.anova)

結果

$summary
            N df  mean        u2 Missing Value
economy     4  3  90.0  99.33333            0
law         4  3  88.5  73.66667            0
literature  4  3 106.0  68.66667            0
science     4  3 129.5  92.33333            0
sociology   4  3  96.5  45.66667            0
Sum        20 15 102.1 297.56842            1

$Tukey
                         mean diff       SE         t df            p
economy vs. law                1.5 9.256553 0.1620474 56 0.9998403025
economy vs. literature       -16.0 9.256553 1.7285051 56 0.4252656470
economy vs. science          -39.5 9.256553 4.2672471 56 0.0007112350
economy vs. sociology         -6.5 9.256553 0.7022052 56 0.9551507818
law vs. literature           -17.5 9.256553 1.8905525 56 0.3342894065
law vs. science              -41.0 9.256553 4.4292944 56 0.0004139425
law vs. sociology             -8.0 9.256553 0.8642526 56 0.9086736615
literature vs. science       -23.5 9.256553 2.5387419 56 0.0965432822
literature vs. sociology       9.5 9.256553 1.0262999 56 0.8421510449
science vs. sociology         33.0 9.256553 3.5650418 56 0.0064988732

理工学部と文学部以外の他学部とに差がある。

事後検定で用いている関数

simple.main.effects関数(socialStatisticsBasic.Rで読み込まれる自作関数)
simple.main.effects(formula,data,anova)
単純主効果検定を行う。
  • formula=「従属変数(検定変数)~因子1*因子2」
  • data=モデル中の変数を含むデータフレーム(formulaが実体を持つ時は省略可)
  • anova=twoway.factorial.anova関数の戻り値の出力結果オブジェクト
multiple.comparison.test関数(socialStatisticsBasic.Rで読み込まれる自作関数)
multiple.comparison.test(formula,data,anova,method,fact,summary)
多重比較検定を行う。
  • formula=「従属変数(検定変数)~因子1*因子2」
  • data=モデル中の変数を含むデータフレーム(formulaが実体を持つ時は省略可)
  • anova=twoway.factorial.anova関数の戻り値の出力結果オブジェクト(二元配置分散分析のときは指定した方が検出力が上がる)
  • method=事後比較の方法("Tukey","Games-Howell","bonferroni","holm","BH")。初期値はTukey
  • fact=因子2の特定の値(指定するとその値を取るデータだけ抽出して検定を行う。単純主効果検定後の多重検定に用いる)
  • summary=概要を出力するか(TRUE/FALSE 初期値はTRUE)

考察例

学年、学部の違いにより自習時間に差があるかどうかを二元配置要因分散分析(平方和Type2)を用いて検証を行った。

学年、学部双方の主効果において1%水準で有意性が見られた(学年 F(3,56)=4.75, p<.01、学部 F(4,56)=3.05, p<.01)。

また学年と学部の交互作用においても1%水準で有意であった(F(12,56)=2.06,p<0.01)。

この結果より学年・学部の違いにより自習時間に影響があり、さらに学部と学年の組合せによっても自習時間に影響が出ることが分かる。

事後検定より学部間では法学部と理工学部に自習時間に差があり、1,2回生と4回生でも異なっていることが分かる。

さらに4回生時の理工学部は文学部以外の他学部より自習時間は多く、また経済学部・法学部・社会学部は4回生になると1回生(経済法)または2回生(社会)と比較して自習時間が減少していることが分かる。