Kembangkan tes statistik untuk membedakan dua produk

9

Saya memiliki kumpulan data dari survei pelanggan, saya ingin menggunakan uji statistik untuk melihat apakah ada perbedaan signifikan antara produk 1 dan produk 2.

Berikut ini adalah kumpulan data ulasan pelanggan.

Nilai dari sangat buruk, buruk, oke, bagus, sangat bagus.

customer    product1    product2
1           very good   very bad
2           good        bad
3           okay        bad
4           very good   okay
5           bad         very good
6           okay        good
7           bad         okay
8           very good   very bad
9           good        good
10          good        very good
11          okay        okay
12          very good   good
13          good        good
14          very good   okay
15          very good   okay

Metode apa yang harus saya gunakan untuk melihat apakah ada perbedaan antara kedua produk ini?

qifengwu
sumber
Harap perhatikan bahwa jawaban @ Glen_b memberikan saran yang unggul, dibandingkan dengan jawaban yang Anda terima. Mungkin saya harus mengatakan bahwa Anda dapat mengubah jawaban yang diterima kapan saja (tidak semua orang menyadarinya).
amoeba

Jawaban:

3

Untuk peringkat oleh hakim yang berbeda, seseorang dapat menggunakan tes Friedman. http://en.wikipedia.org/wiki/Friedman_test

Anda dapat mengonversi peringkat dari sangat buruk ke sangat baik ke angka -2, -1, 0, 1 dan 2. Kemudian masukkan data dalam bentuk panjang dan terapkan friedman.test dengan pelanggan sebagai faktor pemblokir:

> mm
   customer variable value
1         1 product1     2
2         2 product1     1
3         3 product1     0
4         4 product1     2
5         5 product1    -1
6         6 product1     0
7         7 product1    -1
8         8 product1     2
9         9 product1     1
10       10 product1     1
11       11 product1     0
12       12 product1     2
13       13 product1     1
14       14 product1     2
15       15 product1     2
16        1 product2    -2
17        2 product2    -1
18        3 product2    -1
19        4 product2     0
20        5 product2     2
21        6 product2     1
22        7 product2     0
23        8 product2    -2
24        9 product2     1
25       10 product2     2
26       11 product2     0
27       12 product2     1
28       13 product2     1
29       14 product2     0
30       15 product2     0
> 
> friedman.test(value~variable|customer, data=mm)

        Friedman rank sum test

data:  value and variable and customer
Friedman chi-squared = 1.3333, df = 1, p-value = 0.2482

Peringkat perbedaan antara 2 produk tidak signifikan.

Edit:

Berikut ini adalah output dari regresi:

> summary(lm(value~variable+factor(customer), data=mm))

Call:
lm(formula = value ~ variable + factor(customer), data = mm)

Residuals:
   Min     1Q Median     3Q    Max 
  -1.9   -0.6    0.0    0.6    1.9 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)
(Intercept)         4.000e-01  9.990e-01   0.400    0.695
variableproduct2   -8.000e-01  4.995e-01  -1.602    0.132
factor(customer)2   6.248e-16  1.368e+00   0.000    1.000
factor(customer)3  -5.000e-01  1.368e+00  -0.365    0.720
factor(customer)4   1.000e+00  1.368e+00   0.731    0.477
factor(customer)5   5.000e-01  1.368e+00   0.365    0.720
factor(customer)6   5.000e-01  1.368e+00   0.365    0.720
factor(customer)7  -5.000e-01  1.368e+00  -0.365    0.720
factor(customer)8   9.645e-16  1.368e+00   0.000    1.000
factor(customer)9   1.000e+00  1.368e+00   0.731    0.477
factor(customer)10  1.500e+00  1.368e+00   1.096    0.291
factor(customer)11  7.581e-16  1.368e+00   0.000    1.000
factor(customer)12  1.500e+00  1.368e+00   1.096    0.291
factor(customer)13  1.000e+00  1.368e+00   0.731    0.477
factor(customer)14  1.000e+00  1.368e+00   0.731    0.477
factor(customer)15  1.000e+00  1.368e+00   0.731    0.477

Residual standard error: 1.368 on 14 degrees of freedom
Multiple R-squared:  0.3972,    Adjusted R-squared:  -0.2486 
F-statistic: 0.6151 on 15 and 14 DF,  p-value: 0.8194

masukkan deskripsi gambar di sini

juga
sumber
1
Menggunakan tes Friedman adalah pembunuhan yang berlebihan. Ini seperti merekomendasikan untuk menggunakan ANOVA ketika hanya ada dua kelompok; maka itu hanya mengurangi menjadi uji-t.
amoeba
Analisis regresi ini tidak benar. Anda telah memperlakukan pelanggan sebagai variabel berkelanjutan dan bukan sebagai faktor. Jika Anda memperbaikinya, dengan mengubahnya menjadi faktor, Anda mendapatkan nilai- p dari 0,1316, yaitu, sama dengan dari uji- t berpasangan .
Karl Ove Hufthammer
Saya telah menyadari bahwa itu harus menjadi faktor, tetapi saya tidak mengubahnya karena penekanan saya pada tes Friedman. Tetapi karena ukuran sampel kecil, saya pikir tes non-parametrik (daripada uji-t) akan lebih sesuai di sini. Saya telah mengoreksi bagian regresi dalam jawaban saya.
rnso
9
  1. Satu kemungkinan adalah Anda bisa menggunakan tes tanda.

    Ini bergantung pada perbandingan dalam pelanggan untuk melihat apakah peringkat mereka dari produk1 ke produk2 naik, turun, atau tetap sama (di bawah tes tanda binomial anggapannya adalah Anda hanya mendapatkan hasil "naik" atau "turun", tetapi ada beberapa cara umum untuk mendekati ikatan dalam-pasangan, seperti pelanggan 9's goodvs good).

    Salah satu pendekatan umum adalah untuk mengecualikan peringkat terikat seperti pelanggan 9 (sehingga kesimpulannya adalah tentang proporsi relatif perbedaan naik-turun dalam populasi, dengan asumsi sampel acak pelanggan).

    Dalam hal ini Anda memiliki 4 pelanggan yang memberi peringkat lebih tinggi untuk produk kedua, 8 yang memberi lebih rendah, dan tiga yang memberi yang sama.

    Dalam hal itu, dengan data Anda, 4 dari satu tanda dan 8 lainnya, tes tanda dua sisi tidak akan mendekati penolakan pada tingkat signifikansi tertentu. Inilah analisis dalam R:

    > binom.test(4,12)
    
            Exact binomial test
    
    data:  4 and 12
    number of successes = 4, number of trials = 12, p-value = 0.3877
    alternative hypothesis: true probability of success is not equal to 0.5
    95 percent confidence interval:
     0.09924609 0.65112449
    sample estimates:
    probability of success 
                 0.3333333 
    

    Nilai p cukup tinggi.

  2. Sekarang jika Anda siap untuk menetapkan skor (atau bahkan hanya untuk memberi peringkat) ke ukuran relatif dari perubahan peringkat dalam setiap pasangan - yaitu, apakah perubahan "baik" menjadi "buruk" pelanggan 2 lebih besar, lebih kecil atau sama dengan pelanggan 4 "sangat bagus" menjadi "oke", dan seterusnya, maka Anda dapat menerapkan tes peringkat yang ditandatangani pada peringkat tersebut atau dengan melakukan tes permutasi berpasangan pada skor yang diberikan (meskipun Anda juga harus berurusan dengan ikatan yang berat, ini bisa dilakukan dengan mengubah urutan peringkat atau skor yang Anda miliki).

Ada beberapa pilihan lain yang mungkin Anda pertimbangkan - tetapi saya tidak berpikir pilihan analisis akan mengubah hasilnya; Saya pikir mereka semua akan gagal menolak pada level signifikansi tipikal pada data ini.

Glen_b -Reinstate Monica
sumber
1
@alesc "inferior" hanya dalam kondisi tertentu, unggul dalam kondisi lain. Apakah Anda mengetahui kondisi apa itu? Itu pemesanan Anda sebutkan adalah pemesanan kategori asli , tetapi yang penting untuk tes peringkat yang ditandatangani adalah pemesanan perbedaan . Dengan menetapkan angka 1 hingga 5 untuk kategori asli tersebut, Anda telah benar-benar mengambil skala interval di mana tidak ada. Tidak termasuk peringkat terikat tidak merusak data, itu sebenarnya mengkondisikan pada informasi yang relevan dengan pertanyaan apakah ada kecenderungan peringkat meningkat atau menurun.
Glen_b -Reinstate Monica
4
Kami sedang berhadapan dengan item skala Likert 5 poin . ( Skala Likert yang sebenarnya adalah jumlah dari barang-barang tersebut.) Item skala ini adalah ordinal, Anda mengatakannya sendiri. Tapi dengan menggunakan skor mana jarak antara kategori yang sama Anda sedang memaksakan skala interval - yang jarak yang sama Anda dikenakan secara harfiah apa skala interval adalah . Jadi Anda bilang itu ordinal, dan kemudian segera memperlakukannya sebagai interval. Fakta bahwa Anda gagal menyebutkan apa yang Anda lakukan adalah mengapa jawaban Anda perlu diubah. Segera setelah Anda menerapkan tes peringkat yang ditandatangani untuk pasangan data ordinal, Anda memperlakukan dokumen asli sebagai interval.
Glen_b -Reinstate Monica
1
@ rnso Secara umum dengan awalnya mengonversi kategori terurut ke angka equispaced Anda akan mengenakan skala interval di mana ada yang ordinal ... (jadi sekali lagi, secara umum Anda harus membuat pilihan seperti itu eksplisit) tetapi dalam hal ini - karena hanya peringkat relatif dalam setiap kelompok yang penting dan hanya ada dua kelompok, yang tidak merugikan apa pun. Friedman dalam dua kelompok setara dengan tes tanda (dua sisi). Artinya, jawaban Anda sama dengan jawaban saya.
Glen_b -Reinstate Monica
1
@ rnso Dalam hal 'pengaturan', di R Anda dapat menjadikan variabel kategori ordinal Anda sebagai faktor (bahkan faktor ordinal), meskipun untuk beberapa fungsi Anda mungkin perlu berurusan dengan angka. Setiap kali Anda melakukan itu (gunakan angka yang saya maksud), Anda harus ingat bahwa angka-angka itu tidak memiliki properti interval - Anda tidak bisa hanya mengambil perbedaan (atau jumlah) dari angka yang Anda gunakan. Jika Anda tidak akan - a priori - mengklaim bahwa perubahan dari very badke goodsepenuhnya identik dengan perubahan dari badke very good, Anda tidak dapat mengklaimnya setelah Anda kode sebagai angka ... (
ctd
1
(ctd) ... (yaitu Anda tidak bisa hanya memperlakukan pergeseran 3 kategori dengan titik awal yang berbeda baik sebagai "d = 3". Jadi jika Anda melakukan kode 'sangat buruk' sebagai 1 hingga 'sangat baik' sebagai 5 , Anda tidak bisa hanya mengambil perbedaan. Anda pertama-tama harus secara eksplisit menganggap Anda memiliki skala interval, dan kemudian perbedaan itu bermakna.
Glen_b -Reinstate Monica
3

Anda memiliki data ordinal yang tergantung. Anda harus menggunakan uji peringkat bertanda Wilcoxon untuk menguji perbedaan yang signifikan antara kedua produk di semua pelanggan.

Namun mengingat data di atas, tes peringkat-bertanda Wilcoxon tidak memberikan hasil yang signifikan.

alesc
sumber
3
Saya tidak berpikir Anda dapat menggunakan tes peringkat yang ditandatangani tanpa membuat asumsi tambahan. Misalnya, tes peringkat yang ditandatangani bergantung pada peringkat perbedaan pasangan absolut, yang berarti Anda harus memutuskan apakah perubahan "baik" menjadi "buruk" 2 pelanggan lebih besar, lebih kecil atau sama dengan pelanggan 4 "sangat baik" "ke" oke ". Yang menunjukkan bahwa Anda mungkin mengenakan skala interval pada beberapa titik (sulit untuk mengatakan dengan tepat apa yang Anda lakukan, karena Anda tidak benar-benar menjelaskannya). Itu adalah pilihan yang mungkin disetujui OP tetapi Anda harus bertanya terlebih dahulu.
Glen_b -Reinstate Monica
4
Untuk memperjelas: Saya pikir ini berpotensi jawaban yang masuk akal, tetapi asumsi khususnya harus lebih eksplisit. Saya pikir jawaban ini dapat ditingkatkan jika Anda menjelaskan bagaimana Anda beralih dari pasangan seperti ( good, bad) atau ( very good, okay) ke serangkaian peringkat yang ditandatangani, karena ini akan membuat asumsi yang dibuat di sepanjang jalan menjadi lebih jelas.
Glen_b -Reinstate Monica
15
4
Alesc, @Glen_b benar (dan Anda tidak): dalam pengujian peringkat bertanda Anda tidak menetapkan peringkat pada nilai individual, Anda menetapkan peringkat pada perbedaan di antara pasangan nilai . Jadi, Anda harus dapat menghitung perbedaannya terlebih dahulu. Ini tidak mungkin dengan data ordinal.
amoeba
1

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.)

Karl Ove Hufthammer
sumber