Rで解析:RでSPSSのT検定周りを確認しました。

Rの解析に役に立つ記事
スポンサーリンク

研究分野によって「検定に使用するソフトウェア」のスタンダードは若干異なりますが、SPSSを押さえておけば間違いが無いと思います。そこで、Rの普及を願いSPSSのT検定周りを再現する方法を確認したので紹介します。

検定は実験計画に基づき実施するのが基本と考えます。紹介するデータ例はデタラメです。あくまでSPSSとRの結果が同じになるRのコマンドを紹介します。きちんと実験計画に則り検定を実施していただければと思います。

なお、実行コマンドはR version 4.2.2で確認しています。

スポンサーリンク

実行コマンド

詳細はコメント、パッケージヘルプを確認してください。SPSSのシンタックス出力にdescrパッケージを使用しています。過去に紹介していますので、ぜひ検索してみて下さい。

set.seed(1234)
###R用データ例の作成#####
n <- 50
TestData <- data.frame(Group = sample(paste0("Group", 1:2), n, replace = TRUE),
                       Effects = sample(c("Low", "Middle", "Hight"), n, replace = TRUE),
                       Data1 = sample(1:20, n, replace = TRUE),
                       Data2 = sample(21:30, n, replace = TRUE),
                       Data3 = sample(1:100, n, replace = TRUE))
########

###SPSS&#29992;&#12487;&#12540;&#12479;&#20363;&#12398;&#20316;&#25104;#####
#&#20316;&#26989;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12395;TestData&#12434;SPSS&#12391;&#20877;&#29694;&#12377;&#12427;&#12471;&#12531;&#12479;&#12483;&#12463;&#12473;&#12392;&#12487;&#12540;&#12479;&#12501;&#12449;&#12452;&#12523;&#12364;&#20986;&#21147;&#12373;&#12428;&#12414;&#12377;
#descr&#12497;&#12483;&#12465;&#12540;&#12472;&#12399;&#36942;&#21435;&#35352;&#20107;&#12434;&#21442;&#29031;&#12367;&#12384;&#12373;&#12356;
#install.packages("descr")
library("descr")
data.frame2txt(TestData, sps.codefile = "TestData.sps",
               datafile = "TestData.txt", r.codefile = "TestData.R")
########

###########################################
###1&#12469;&#12531;&#12503;&#12523;&#12398;T&#26908;&#23450;&#12391;&#34920;&#31034;&#12373;&#12428;&#12427;&#32080;&#26524;&#12398;&#20877;&#29694;##
###########################################
t.test(TestData[, 4], mu = 15)
#One Sample t-test
#data:  TestData[, 4]
#t = 27.594, df = 49, p-value &lt; 2.2e-16
#alternative hypothesis: true mean is not equal to 15
###SPSS&#12399;&#24046;&#12398;95%&#20449;&#38972;&#21306;&#38291;&#12391;&#12354;&#12427;&#12371;&#12392;&#12395;&#27880;&#24847;###
#95 percent confidence interval:
#   25.12475 26.71525
#sample estimates:
#  mean of x 
#      25.92

###########################################
###&#29420;&#31435;&#12375;&#12383;T&#26908;&#23450;&#12391;&#34920;&#31034;&#12373;&#12428;&#12427;&#32080;&#26524;&#12398;&#20877;&#29694;#####
###########################################
#&#31561;&#20998;&#25955;&#24615;&#12398;&#12383;&#12417;&#12398; Levene &#12398;&#26908;&#23450;
library(car)
levene.test(TestData[, 4], TestData[, 1], center=mean)
#Levene's Test for Homogeneity of Variance (center = mean)
#      Df F value Pr(&gt;F)
#group  1  0.2178 0.6428
#      48

#&#31561;&#20998;&#25955;&#12434;&#20206;&#23450;&#12375;&#12383;&#22580;&#21512;
t.test(subset(TestData[, 4], TestData[, 1] == "Group1"),
       subset(TestData[, 4], TestData[, 1] == "Group2"), var.equal = TRUE)
#Two Sample t-test
#data:  subset(TestData[, 4], TestData[, 1] == "Group1") and subset(TestData[, 4], TestData[, 1] == "Group2")
#t = 0.50152, df = 48, p-value = 0.6183
#alternative hypothesis: true difference in means is not equal to 0
#95 percent confidence interval:
#  -1.203641  2.003641
#sample estimates:
#  mean of x mean of y 
#      26.12     25.72 

#&#31561;&#20998;&#25955;&#12434;&#20206;&#23450;&#12375;&#12394;&#12356;&#22580;&#21512;
t.test(subset(TestData[, 4], TestData[, 1] == "Group1"),
       subset(TestData[, 4], TestData[, 1] == "Group2"), var.equal = FALSE)
#Welch Two Sample t-test
#data:  subset(TestData[, 4], TestData[, 1] == "Group1") and subset(TestData[, 4], TestData[, 1] == "Group2")
#t = 0.50152, df = 47.736, p-value = 0.6183
#alternative hypothesis: true difference in means is not equal to 0
#95 percent confidence interval:
#  -1.203871  2.003871
#sample estimates:
#  mean of x mean of y 
#      26.12     25.72 

###########################################
###&#23550;&#24540;&#12354;&#12427;T&#26908;&#23450;&#12391;&#34920;&#31034;&#12373;&#12428;&#12427;&#32080;&#26524;&#12398;&#20877;&#29694;#####
###########################################
t.test(TestData[, 3], TestData[, 4], paired = TRUE)
#Paired t-test
#data:  TestData[, 3] and TestData[, 4]
#t = -17.59, df = 49, p-value &lt; 2.2e-16
#alternative hypothesis: true difference in means is not equal to 0
#95 percent confidence interval:
#  -16.69144 -13.26856
#sample estimates:
#mean of the differences 
#                 -14.98 

SPSSによる結果

SPSSR

Rの結果と見比べてもらえればと思います。descrパッケージの利用によりSPSSで結果を再現することが可能です。

SPSSのシンタックスは以下の通りです。

/* 1サンプルのT検定
T-TEST
/TESTVAL=15
/MISSING=ANALYSIS
/VARIABLES=Data2
/CRITERIA=CI(.95).
/* 独立したサンプルのT検定
T-TEST GROUPS=Group(1 2)
/MISSING=ANALYSIS
/VARIABLES=Data2
/CRITERIA=CI(.95).
/*対応あるサンプルのT検定
T-TEST PAIRS=Data1 WITH Data2 (PAIRED)
/CRITERIA=CI(.9500)
/MISSING=ANALYSIS.

少しでも、あなたのウェブや実験の解析が楽になりますように!!

タイトルとURLをコピーしました