युग्मित t -est का उपयोग करें
जब तक आपके पास पर्याप्त रेटिंग है (15 पर्याप्त है, और मैं कम के साथ भी खुश रहूंगा) और रेटिंग अंतर में कुछ भिन्नता है, युग्मित टी- टेस्ट का उपयोग करने में कोई समस्या नहीं है । फिर आपको ऐसे अनुमान मिलते हैं जो व्याख्या करना बहुत आसान है - औसत रेटिंग 1-5 संख्यात्मक पैमाने पर + इसका अंतर (उत्पादों के बीच)।
आर कोड
आर में करना बहुत आसान है:
> 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.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 के स्पष्ट अंतर के बावजूद अलग-अलग रेट किया गया है (लेकिन काफी आत्मविश्वास अंतराल पर ध्यान दें - हमें वास्तव में अधिक डेटा की आवश्यकता है)।
नकली डेटा?
मजे की बात है, और अप्रत्याशित रूप से, एक unpaired टी टेस्ट एक देता है कम पी -value।
> 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 है। आमतौर पर संतुलित डेटा के लिए यह हो जाएगा लगभग समान करने के लिए पी एक जोड़ी से -value टी -Test। यहाँ यह के करीब है पी एक की -value unpaired टी टेस्ट नकारात्मक सहसंबंध की वजह से। ध्यान दें कि ग्राहक प्रभाव (यादृच्छिक अवरोधन) के लिए विचरण लगभग शून्य है। वास्तविक आंकड़ों के साथ ऐसा शायद ही कभी होता होगा।
सारांश
सारांश में, युग्मित टी का उपयोग करें -est का । फिर आपको ऐसे अनुमान मिलते हैं जिनकी व्याख्या करना आसान है (सरल संख्यात्मक औसत)।
यदि सभी ग्राहकों ने दोनों उत्पादों को रेट नहीं किया है, तो इसके बजाय मिश्रित प्रभाव मॉडल का उपयोग करें। (यह रूप में लगभग एक ही परिणाम देगा युग्मित टी -Test जब वे है सब दोनों उत्पादों दर्जा दिया है, तो आप के रूप में अच्छी हमेशा के लिए इसका इस्तेमाल कर सकते हैं।)