Gunakan uji- t berpasangan
Selama Anda memiliki peringkat cukup (15 sudah cukup, dan saya akan senang bahkan dengan lebih sedikit) dan beberapa variasi perbedaan peringkat, tidak ada masalah sama sekali menggunakan uji- t berpasangan . Kemudian Anda mendapatkan perkiraan yang sangat mudah untuk ditafsirkan - peringkat rata-rata pada skala numerik 1-5 + perbedaannya (antara produk).
Kode r
Sangat mudah dilakukan di 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
Pertama mari kita periksa peringkat rata-rata:
> mean(as.numeric(d$product1))
[1] 3.9333
> mean(as.numeric(d$product2))
[1] 3.1333
Dan uji- t memberi kita:
> 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
p
Data palsu?
Anehnya, dan secara tak terduga, t -test yang tidak berpasangan memberikan nilai p yang lebih rendah .
> 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
[…]
Ini menunjukkan bahwa contoh data palsu. Untuk data nyata, orang akan mengharapkan korelasi positif (cukup tinggi) antara peringkat dari pelanggan yang sama. Di sini korelasinya negatif (walaupun secara statistik tidak signifikan):
> 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
Data tidak ada
Ketika tidak semua pelanggan memberi nilai kedua produk (yaitu, data tidak seimbang), pendekatan yang lebih baik menggunakan model efek campuran:
Pertama-tama mari kita konversi data ke bentuk numerik:
> d2 = d
> d2[,-1] = lapply(d2[,-1], as.numeric)
Dan mengubahnya menjadi bentuk 'panjang':
> library(tidyr)
> d3 = gather(d2, product, value, -customer)
Dan akhirnya cocok dengan model efek campuran dengan pelanggan sebagai efek acak:
> 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
[…]
p
Ringkasan
Singkatnya, gunakan uji- t berpasangan . Kemudian Anda mendapatkan perkiraan yang mudah diinterpretasikan (rata-rata numerik sederhana).
Jika tidak semua pelanggan memberi peringkat kedua produk, gunakan model efek campuran. (Ini akan memberikan kira-kira hasil yang sama seperti dipadankan t -test ketika mereka telah semua dinilai baik produk, sehingga Anda mungkin juga selalu menggunakannya.)