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


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

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

確認のため、久しぶりにSPSSを使いましたが「Rは有能」なソフトウェアであることを改めて感じました。SPSSも大変有能ですが「自身の真理」を追求するのにRは一つの手段になると思います。Rのバージョンが2.7-9?頃にSPSSのRプラグインを必死に利用しようとしたことを思い出します。

2015/10/1に世界の大学ランキングが発表されました。「おこがましいと思わんかね」というセリフが幻聴で聞こえそうですが、日本がもつ「事象を最適化し、人の役に立てる力」に対して、ほんの少しでも「からだにいいもの」が役に立てばと思います。少しでもRが「からだにいいもの」になればと思います。Big Blueに喧嘩を売っているわけではありません。Rのコマンドの利用が苦手ならSPSSの利用をオススメします。

なお、実行コマンドはR version 3.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用データ例の作成##### #作業ディレクトリにTestDataをSPSSで再現するシンタックスとデータファイルが出力されます #descrパッケージは過去記事を参照ください #install.packages("descr") library("descr") data.frame2txt(TestData, sps.codefile = "TestData.sps", datafile = "TestData.txt", r.codefile = "TestData.R") ######## ########################################### ###1サンプルのT検定で表示される結果の再現## ########################################### t.test(TestData[, 4], mu = 15) #One Sample t-test #data: TestData[, 4] #t = 27.594, df = 49, p-value < 2.2e-16 #alternative hypothesis: true mean is not equal to 15 ###SPSSは差の95%信頼区間であることに注意### #95 percent confidence interval: # 25.12475 26.71525 #sample estimates: # mean of x # 25.92 ########################################### ###独立したT検定で表示される結果の再現##### ########################################### #等分散性のための Levene の検定 library(car) levene.test(TestData[, 4], TestData[, 1], center=mean) #Levene's Test for Homogeneity of Variance (center = mean) # Df F value Pr(>F) #group 1 0.2178 0.6428 # 48 #等分散を仮定した場合 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 #等分散を仮定しない場合 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 ########################################### ###対応あるT検定で表示される結果の再現##### ########################################### t.test(TestData[, 3], TestData[, 4], paired = TRUE) #Paired t-test #data: TestData[, 3] and TestData[, 4] #t = -17.59, df = 49, p-value < 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 [/code]

SPSSによる結果

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

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.


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

スポンサードリンク

関連コンテンツ


スポンサードリンク