t検定、カイ二乗検定の備忘録
■t検定
主に2群の平均値の差の検定に用いる。
母集団が正規分布に従っている場合、標本分散を用いて算出される統計量tが自由度n-1のt分布に従うという性質を用いて検定を行う。
なお、利用する際は以下の条件を満たしている必要がある。
1.標本が母集団から無作為に抽出されている
2.母集団が正規分布に従っている
3.2群が等分散である
なお、母集団分散が未知でも大標本の場合はt分布でなく正規分布とz統計量を用いて同様の検定をしても問題ないようである。
実行例
#データの確認 summary(iris) head(iris) # Sepal.Length Sepal.Width Petal.Length Petal.Width Species #1 5.1 3.5 1.4 0.2 setosa #2 4.9 3.0 1.4 0.2 setosa #3 4.7 3.2 1.3 0.2 setosa #4 4.6 3.1 1.5 0.2 setosa #5 5.0 3.6 1.4 0.2 setosa #6 5.4 3.9 1.7 0.4 setosa #setosaとvirginicaのがく片の長さについてt検定を行う setosa_length <- iris$Sepal.Length[iris$Species=="setosa"] virginica_length <- iris$Sepal.Length[iris$Species=="virginica"] t.test(setosa_length,virginica_length,paired = FALSE) #データに対応がある場合paired = TRUEを指定する必要がある # Welch Two Sample t-test # #data: setosa_length and virginica_length #t = -15.386, df = 76.516, p-value < 2.2e-16 #alternative hypothesis: true difference in means is not equal to 0 #95 percent confidence interval: # -1.78676 -1.37724 #sample estimates: #mean of x mean of y # 5.006 6.588
■カイ二乗検定
分割表において、2つの分類基準が独立であるかどうかを調べるために使われることが多い。(ピアソンのカイ二乗検定)
観測度数と期待度数の差を用いた統計量Χがカイ二乗分布に従うことを利用した検定。
なお、以下の場合はカイ二乗検定を使うべきではない。 ・条件間に対応がある場合 ・観測度数が20未満の場合 ・期待度数が5未満のセルがある場合
実行例
#データ読み込み、確認 dat <- data.frame(Titanic) summary(dat) head(dat) # Class Sex Age Survived Freq #1 1st Male Child No 0 #2 2nd Male Child No 0 #3 3rd Male Child No 35 #4 Crew Male Child No 0 #5 1st Female Child No 0 #6 2nd Female Child No 0 #Freq列でサンプルの出現頻度がわかるようになっている dat <- dat[dat$Freq!=0,] #頻度が0のデータを除外 #1行1サンプルになるようデータを加工する titanic.df <- data.frame(Class=rep(dat$Class[1],dat$Freq[1]), #データの出現回数だけ行を増やす Sex=rep(dat$Sex[1],dat$Freq[1]), Age=rep(dat$Age[1],dat$Freq[1]), Survived=rep(dat$Survived[1],dat$Freq[1])) for (i in 2:nrow(dat)) { titanic.df_sub <- data.frame(Class=rep(dat$Class[i],dat$Freq[i]), Sex=rep(dat$Sex[i],dat$Freq[i]), Age=rep(dat$Age[i],dat$Freq[i]), Survived=rep(dat$Survived[i],dat$Freq[i])) titanic.df <- rbind(titanic.df,titanic.df_sub) } #クロス集計 (test <- xtabs(~Age + Survived, data = titanic.df)) # Survived #Age No Yes # Child 52 57 # Adult 1438 654 #カイ二乗検定 chisq.test(test) # Pearson's Chi-squared test with Yates' continuity correction # #data: test #X-squared = 20.005, df = 1, p-value = 7.725e-06 #chisq.test()ではデフォルトでイェーツ補正がかかるようになっている点に注意