##################################################################### ##################################################################### #山田剛史・村井潤一郎(2004)よくわかる心理統計 ミネルヴァ書房 #I なぜ心理学に統計が? ##################################################################### ##################################################################### source("http://blue.zero.jp/yokumura/R/testtheory/ctt.R") library(doBy) library(vcd) #-----------------------------------------# #(1) 平均を出してみよう p.8 #-----------------------------------------# tab121 <- read.table("http://blue.zero.jp/yokumura/Rseminar/yamada/tab121.csv", header=T, sep=",") #データの読み込み tab121 tab121$sex #水準が,女,男になっているため factor(tab121$sex, levels=c("男", "女")) #男,女に変更 tab121$sex <- factor(tab121$sex, levels=c("男", "女")) #変更を保存 summaryBy(affect ~ sex, data=tab121, FUN=mean) #男女別平均値 #summaryBy(formula=式,data=データ, FUN = 関数) #でグループごとに計算 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #-----------------------------------------# #(2) 1つの量的変数についてまとめたいとき。p.12 #-----------------------------------------# tab121 summaryBy(affect ~ sex, data=tab121, FUN=c(mean, svar, ssd)) #男女別平均値,分散,標準偏差 #svar, ssdは,標本分散,標本標準偏差の関数を独自に定義 #-----------------------------------------# #(3) 同じ人たちに対して測定された2つの得点を比較したいとき。p.13 #-----------------------------------------# tab142 <- read.table("http://blue.zero.jp/yokumura/Rseminar/yamada/tab142.csv", header=T, sep=",") #データの読み込み tab142 tab142[, 2:3] #数字の部分だけを選択 apply(tab142[, 2:3], 2, mean) apply(tab142[, 2:3], 2, ssd) apply(tab142[, 2:3], 2, standardize, mean=0, sd=1) #standardizeは,標準化の関数を独自に定義 #apply(X, 2, 関数) #で列ごとに関数を適用する #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #-----------------------------------------# #(4) 2つの量的変数の間の関係を調べたいとき。p.14 #-----------------------------------------# tab142 plot(lonely ~ affect, data=tab142) #図1.4.1 graphics.off() #図を閉じる cor.test(~ lonely + affect, data=tab142) #相関係数の検定 #plot(y軸の変数名 ~ x軸の変数名, data=データ) #で散布図を描画 # #cor.test(~ u + v, data=データ) #で相関係数の検定。ただし,uとvは,量的変数であること。 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #-----------------------------------------# #(5) 2つの質的変数間の連関を調べたいとき。p.15 #-----------------------------------------# tab145 <- read.table("http://blue.zero.jp/yokumura/Rseminar/yamada/tab145.csv", header=T, sep=",") tab145 tab145$sex #水準が,女,男になっているため factor(tab145$sex, levels=c("男", "女")) #男,女に変更 tab145$sex <- factor(tab145$sex, levels=c("男", "女")) #変更を保存 tab146 <- xtabs(~sex+smoke, data=tab145) #クロス集計 tab146 table2d_summary(tab146) #クロス表の周辺度数 assocstats(tab146) #クロス表の検定 #xtabs(~ 質的変数 + 質的変数, data=データ) #でクロス集計 # #table2d_summary(クロス集計) #でクロス表の周辺度数などを算出 # #assocstats(クロス集計) #でクロス表の検定結果を算出 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #-----------------------------------------# #(6) より大きな集団へ一般化したいとき。 # 特に,2つのグループの平均を比較したいとき。p.16 #-----------------------------------------# tab121 summaryBy(affect ~ sex, data=tab121, FUN=c(mean, svar)) t.test(affect ~ sex, data=tab121, var.equal=T) #t検定 #t.test(量的変数 ~ 質的変数, data=データ, var.equal=T) #でt検定の結果を算出 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #-----------------------------------------# #(7) より大きな集団へ一般化したいとき。 # 特に,3つ以上のグループの平均を比較したいとき。p.17 #-----------------------------------------# tab149 <- read.table("http://blue.zero.jp/yokumura/Rseminar/yamada/tab149.csv", header=T, sep=",") tab149 tab149$lover factor(tab149$lover, levels=c("恋人あり", "片思い中", "恋人なし")) tab149$lover <- factor(tab149$lover, levels=c("恋人あり", "片思い中", "恋人なし")) summaryBy(affect ~ lover, data=tab149, FUN=mean) aov.tab149 <- aov(affect ~ lover, data=tab149) aov.tab149 summary(aov.tab149) #分散分析表 #aov(量的変数 ~ 質的変数, data=データ) #で分散分析の結果を算出 # #summary(分散分析の結果) #で分散分析の結果を分散分析表に纏める #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~