ใช้แบบทดสอบt - paired
ตราบใดที่คุณมีอันดับที่เพียงพอ (15 ก็เพียงพอแล้วและผมก็จะยิ่งมีความสุขที่มีน้อย) และการเปลี่ยนแปลงบางอย่างในความแตกต่างของคะแนนที่มีปัญหาที่ทุกคนใช้คู่T -test จากนั้นคุณจะได้รับการประมาณการที่ง่ายต่อการตีความ - การจัดอันดับเฉลี่ยในระดับตัวเลข 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 -test จะช่วยให้เรา:
> 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- ค่าเท่ากับ 0.13 ซึ่งไม่แนะนำอย่างยิ่งว่าผลิตภัณฑ์จะได้รับการจัดอันดับแตกต่างกันแม้ว่าจะมีความแตกต่างที่ชัดเจนที่ 0.8 (แต่โปรดสังเกตช่วงความมั่นใจค่อนข้างมาก - เราต้องการข้อมูลเพิ่มเติม)
ข้อมูลปลอม?
อยากรู้อยากเห็นและt-ทดสอบunpaired โดยไม่คาดคิดให้ค่าp-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
[…]
p- ค่าคือ 0.0834 มักจะเป็นข้อมูลที่มีความสมดุลก็จะเป็นเกือบจะเหมือนกันกับพี -value จากคู่T -test ที่นี่อยู่ใกล้กับp-valueของการทดสอบt - unpaired เนื่องจากความสัมพันธ์เชิงลบ โปรดทราบว่าความแปรปรวนสำหรับผลกระทบลูกค้า (การสกัดกั้นแบบสุ่ม) เกือบเป็นศูนย์ สิ่งนี้จะไม่ค่อยเกิดขึ้นกับข้อมูลจริง
สรุป
โดยสรุปใช้t -test ที่จับคู่ จากนั้นคุณจะได้รับการประมาณที่ง่ายต่อการตีความ (ค่าเฉลี่ยเชิงตัวเลขอย่างง่าย)
หากไม่ใช่ลูกค้าทุกคนที่ให้คะแนนผลิตภัณฑ์ทั้งสองให้ใช้โมเดลเอฟเฟกต์ผสมแทน (นี้จะให้ประมาณผลเช่นเดียวกับคู่T -test เมื่อพวกเขาได้ทั้งหมดจัดอันดับผลิตภัณฑ์ทั้งสองเพื่อให้คุณได้เป็นอย่างดีเสมออาจใช้มัน.)