যুক্ত করা ব্যবহার করুন টন -test
যতক্ষণ আপনার পর্যাপ্ত রেটিং থাকে (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
আর টি -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
-value 0.13, যা নেই না জোরালোভাবে যে সুপারিশ পণ্য ভিন্নভাবে 0.8 আপাত পার্থক্য সত্ত্বেও রেট করা হয়, (কিন্তু মনে রাখবেন না বেশ আস্থা ব্যবধান - আমরা সত্যিই আরো ডেটা প্রয়োজন)।p
নকল তথ্য?
অদ্ভুতভাবে, এবং অপ্রত্যাশিতভাবে, একটি বিজোড় টি -test একটি দেয় নিম্ন পি -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
[…]
-value 0,0834 হয়। সাধারণত সুষম ডেটার জন্য এটা হবে প্রায় অনুরূপ করতে পি একটি জোড়া থেকে -value টি -test। এখানে এটা কাছাকাছি পি একটি এর -value বিজোড় টি -test নেতিবাচক পারস্পরিক সম্পর্ক কারণে। নোট করুন যে গ্রাহক প্রভাব (র্যান্ডম ইন্টারসেপ্ট) এর বৈকল্পিকতা প্রায় শূন্য। এটি সত্যই উপাত্তের সাথে খুব কমই ঘটে।p
সারসংক্ষেপ
সংক্ষেপে বলা, ব্যবহার যুক্ত করা টন -test। তারপরে আপনি এমন প্রাক্কলন পান যা ব্যাখ্যা করা সহজ (সাধারণ সংখ্যাগত গড়)।
যদি সমস্ত গ্রাহক উভয় পণ্যকে রেট না করে থাকেন তবে পরিবর্তে একটি মিশ্র প্রভাবগুলির মডেল ব্যবহার করুন। (এই যেমন প্রায় একই ফলাফল দেবে যুক্ত করা টন -test যখন তারা আছে সব উভয় পণ্য রেট, তাই আপনি ভাল হিসাবে সবসময় এটি ব্যবহার পারে।)