対応のあるt検定を使用する
十分な評価(15で十分であり、それより少なくても私は満足します)と評価の差異の変動がある限り、対応のあるt検定を使用してもまったく問題はありません。次に、解釈が非常に簡単な見積もりを取得します。1〜5の数値スケールでの平均評価+その差(製品間)です。
Rコード
Rで行うのは非常に簡単です。
> ratings = c("very bad", "bad", "okay", "good", "very good")
> d = data.frame(
customer = 1:15,
product1 = factor(c(5, 4, 3, 5, 2, 3, 2, 5, 4, 4, 3, 5, 4, 5, 5),
levels=1:5, labels=ratings),
product2 = factor(c(1, 2, 2, 3, 5, 4, 3, 1, 4, 5, 3, 4, 4, 3, 3),
levels=1:5, labels=ratings))
> head(d)
customer product1 product2
1 1 very good very bad
2 2 good bad
3 3 okay bad
4 4 very good okay
5 5 bad very good
6 6 okay good
まず、平均評価を確認しましょう。
> mean(as.numeric(d$product1))
[1] 3.9333
> mean(as.numeric(d$product2))
[1] 3.1333
そして、t検定は私たちに与えます:
> t.test(as.numeric(d$product1),
as.numeric(d$product2), paired=TRUE)
Paired t-test
data: as.numeric(d$product1) and as.numeric(d$product2)
t = 1.6, df = 14, p-value = 0.13
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-0.27137 1.87137
sample estimates:
mean of the differences
0.8
-値がないこれ、0.13ではない( -私たちは本当に多くのデータを必要とするが、かなり信頼区間を注意ください)強く製品は0.8の見かけの違いにもかかわらず、別々に評価されます示唆しています。p
偽のデータ?
不思議なことに、そして予想外に、対応のないt検定はより低い p値を与えます。
> t.test(as.numeric(d$product1),
as.numeric(d$product2), paired=FALSE)
Welch Two Sample t-test
data: as.numeric(d$product1) and as.numeric(d$product2)
t = 1.86, df = 27.6, p-value = 0.073
[…]
これは、サンプルデータが偽物であることを示唆しています。実際のデータの場合、同じ顧客からの評価の間に(かなり高い)正の相関があると予想されます。ここで、相関関係は負です(統計的に有意ではありません)。
> cor.test(as.numeric(d$product1), as.numeric(d$product2))
Pearson's product-moment correlation
data: as.numeric(d$product1) and as.numeric(d$product2)
t = -1.38, df = 13, p-value = 0.19
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
-0.73537 0.18897
sample estimates:
cor
-0.35794
データがありません
すべての顧客が両方の製品(つまり、不均衡なデータ)を評価していない場合、より良いアプローチは混合効果モデルを使用することです:
まず、データを数値形式に変換します。
> d2 = d
> d2[,-1] = lapply(d2[,-1], as.numeric)
そして、それを「長い」形式に変換します。
> library(tidyr)
> d3 = gather(d2, product, value, -customer)
そして最後に、ランダム効果として顧客と混合効果モデルを適合させます。
> l = lme(value~product, random=~1|customer, data=d3)
> summary(l)
Linear mixed-effects model fit by REML
Data: d3
AIC BIC logLik
101.91 107.24 -46.957
Random effects:
Formula: ~1 | customer
(Intercept) Residual
StdDev: 3.7259e-05 1.1751
Fixed effects: value ~ product
Value Std.Error DF t-value p-value
(Intercept) 3.9333 0.30342 14 12.9633 0.0000
productproduct2 -0.8000 0.42910 14 -1.8644 0.0834
[…]
-値は0.0834です。通常、バランスの取れたデータの場合、対応のあるt検定のp値とほぼ同じになります。ここでは、負の相関関係があるため、対応のないt検定のp値に近くなっています。顧客効果(ランダムインターセプト)の分散はほぼゼロであることに注意してください。これは、実際のデータではめったに起こりません。p
概要
要約すると、対応のあるt検定を使用します。次に、解釈が容易な見積もりを取得します(単純な数値平均)。
すべてのお客様が両方の製品を評価したわけではない場合は、代わりに混合効果モデルを使用してください。(これは、ほぼ同じ結果が得られますペアT検定彼らは時にしているすべての両方の製品を評価するので、あなたにも、常にそれを使用することがあります。)