Cara mendeteksi pendapat pengguna yang terpolarisasi (peringkat bintang tinggi dan rendah)

15

Jika saya memiliki sistem peringkat bintang di mana pengguna dapat mengekspresikan preferensi mereka untuk suatu produk atau barang, bagaimana saya bisa mendeteksi secara statistik jika suara sangat "terbagi". Artinya, bahkan jika rata-rata adalah 3 dari 5, untuk produk yang diberikan, bagaimana saya bisa mendeteksi jika itu adalah perpecahan 1-5 versus konsensus 3, hanya menggunakan data (tidak ada metode grafis)

David Williams
sumber
3
Apa yang salah dengan menggunakan Deviasi Standar?
Spork
1
Bukan jawaban, tetapi relevan: evanmiller.org/how-not-to-sort-by-average-rating.html
Fractional
1
Apakah Anda mencoba mendeteksi "distribusi bimodal"? Lihat stats.stackexchange.com/q/5960/29552
Ben Voigt
1
Dalam ilmu politik ada literatur tentang pengukuran polarisasi politik yang telah memeriksa berbagai cara untuk mendefinisikan apa yang dimaksud dengan "polarisasi". Satu kertas yang bagus yang membahas secara detail 4 cara sederhana yang berbeda mendefinisikan polarisasi adalah sebagai berikut (lihat hlm 692-699.): Educ.jmu.edu/~brysonbp/pubs/PBJ.pdf
Jake Westfall

Jawaban:

12

Orang bisa membuat indeks polarisasi; persis bagaimana seseorang mendefinisikannya tergantung pada apa yang dianggap lebih terpolarisasi (yaitu, apa yang Anda maksudkan, dalam kasus tepi tertentu, oleh lebih atau kurang terpolarisasi?):

Misalnya, jika rerata adalah '4', apakah pemisahan 50-50 antara '3' dan '5' lebih, atau kurang terpolarisasi dari 25% '1' dan 75% '5'?

Bagaimanapun, dengan tidak adanya definisi spesifik tentang apa yang Anda maksudkan, saya akan menyarankan ukuran berdasarkan varian:

Diberikan rata-rata tertentu, tentukan split terpolarisasi paling mungkin sebagai salah satu yang memaksimalkan varians *.

* (NB yang akan mengatakan bahwa 25% '1' dan 75% '5' secara substansial lebih terpolarisasi dari 50-50 split '3's dan' 5's; jika itu tidak sesuai dengan intuisi Anda, jangan gunakan varian)

Jadi indeks polarisasi ini adalah proporsi dari varian terbesar yang mungkin ( dengan rata-rata yang diamati ) dalam varian yang diamati.

Panggil peringkat rata-rata ( m = ˉ x ).mm=x¯

Varians maksimum terjadi ketika proporsi di5dan1-pdi1; ini memiliki varian (m-1)(5-m)np=m1451p1 .(m-1)(5-m)nn-1

Jadi cukup ambil varians sampel dan bagi dengan ; ini memberikan angka antara0(perjanjian sempurna) dan1(sepenuhnya terpolarisasi).(m-1)(5-m)nn-101

Untuk sejumlah kasus di mana peringkat rata-rata adalah 4, ini akan memberikan yang berikut:

masukkan deskripsi gambar di sini


Anda mungkin lebih suka tidak menghitungnya relatif terhadap varians terbesar yang mungkin dengan rata-rata yang sama, tetapi sebagai persentase dari varians terbesar yang mungkin untuk peringkat rata-rata apa pun . Itu akan melibatkan membagi bukan oleh , dan sekali lagi menghasilkan nilai antara 0 (perjanjian sempurna) dan1(terpolarisasi pada ekstrem dalam rasio 50-50). Ini akan menghasilkan relativitas yang sama dengan diagram di atas, tetapi semua nilai akan menjadi 3/4 lebih besar (yaitu, dari kiri ke kanan, atas ke bawah adalah 0, 16.5%, 25%, 25%, 50 % dan 75%).4nn-11

Salah satu dari keduanya adalah pilihan yang benar-benar valid - seperti halnya sejumlah cara alternatif lain untuk membangun indeks tersebut.

Glen_b -Reinstate Monica
sumber
Tapi kemudian ketika m = 1Anda mendapatkan 1 - 1 = 0dan 0 / 0. Bagaimana Anda mengoreksi hal itu?
Francesco
@ Franceso Poin yang bagus. Ketika atau m = 5 rumus untuk bentuk pertama tidak terdefinisi. Namun, dengan berbagai asumsi batasnya tampaknya 1, yang mungkin saya gunakan. Jika seseorang ingin mendefinisikannya sebagai 1 atau 0 untuk case edge, itu akan masuk akal bagi saya. m=1m=5
Glen_b -Reinstate Monica
8

"Tidak ada metode grafis" adalah semacam kendala besar, tapi ... di sini ada beberapa ide aneh. Keduanya memperlakukan peringkat sebagai kontinu, yang merupakan kelemahan konseptual, dan mungkin bukan satu-satunya ...

Kurtosis

  • Kurtosis dari {1,1,1,5,5,5} = 1. Anda tidak akan mendapatkan kurtosis yang lebih rendah dengan kombo 1–5 peringkat.
  • Kurtosis {1,2,3,4,5} = 1,7. Lebih rendah berarti nilai yang lebih ekstrem; lebih tinggi berarti lebih menengah.
  • Ini tidak akan berfungsi jika distribusinya kurang simetris. Saya akan menunjukkan di bawah.

Regresi binomial negatif

RSebuahtsayangFreqkamuency1312153749537
FreqkamuencyRSebuahtsayang+RSebuahtsayangRSebuahtsayang

FWIW, inilah kode saya mainkan:

x=rbinom(99,4,c(.1,.9))+1;y=sample(0:4,99,replace=T)+1 #Some polarized & uniform rating data
table(x);table(y)                                                         #Frequencies
require(moments);kurtosis(x);kurtosis(y)                                  #Kurtosis

Y=data.frame(n=as.numeric(table(y)),rating=as.numeric(levels(factor(y)))) #Data frame setup
X=data.frame(n=as.numeric(table(x)),rating=as.numeric(levels(factor(x)))) #Data frame setup
require(MASS);summary(glm.nb(n~rating+sqrt(rating),X))  #Negative binomial of polarized data
summary(glm.nb(n~rating+sqrt(rating),Y))                #Negative binomial of uniform data

Tidak bisa menahan diri untuk tidak ...

require(ggplot2);ggplot(X,aes(x=rating,y=n))+geom_point()+stat_smooth(formula=y~x+I(sqrt(x)),method='glm',family='poisson')

RSebuahtsayang



Sunting: Baru saja melihat pertanyaan ini diiklankan di bilah sisi: dan ketika saya mengklik, saya melihatnya di Pertanyaan Jaringan Panas yang menghubungkan kembali ke dirinya sendiri, seperti yang kadang terjadi ,

jadi saya pikir ini mungkin perlu ditinjau kembali dengan cara yang lebih bermanfaat secara umum. Saya memutuskan untuk mencoba metode saya pada ulasan pelanggan Amazon untuk Tee Lengan Pendek Gunung Tiga Serigala :

RSebuahtsayang12345Freqkamuency20854891982273


βRSebuahtsayang=-19.1

σFreqkamuencyThe Mountain Three Wolf Moon, Tee Lengan Pendek2=1.31
x=rep(5:1,c(2273,198,89,54,208))var(x)/(4*length(x)/(length(x)-1))

Nick Stauner
sumber
Ini sekitar 0,77 untuk versi pertama dari indeks polarisasi (yaitu relatif terhadap yang paling terpolarisasi diberi peringkat rata-rata), tapi ya, seperti yang Anda katakan, 0,33 untuk versi kedua (relatif terhadap distribusi yang paling terpolarisasi mungkin).
Glen_b -Reinstate Monica
@ Glen_b: Dan bukankah versi pertama kurang tepat ketika rata-rata tidak diperbaiki di berbagai set peringkat yang perlu dibandingkan? Atau apakah saya salah mengerti jawaban Anda?
Nick Stauner
Itu tergantung apa tujuannya. Menilai dengan judul "bagaimana mendeteksi pendapat yang terpolarisasi", saya condong ke yang pertama ( diberi peringkat rata-rata, bagaimana pendapat yang terpolarisasi tentang itu? ). Jika tujuannya memang untuk membandingkan berbagai peringkat yang berbeda, mungkin lebih masuk akal untuk bekerja dengan pendekatan kedua, seperti yang Anda sarankan. Itu sebabnya saya melakukan keduanya. Komentar saya tidak dimaksudkan sebagai kritik; Saya tersanjung Anda menyebutkannya sama sekali.
Glen_b -Reinstate Monica
@ Glen_b: Dipahami :) TBH, saya menyarankan pendekatan pemodelan regresi binomial negatif lebih baik, tapi saya akui saya belum mengujinya secara menyeluruh. Saya merasa bahwa set peringkat terpolarisasi paling nyata tidak akan terpolarisasi secara merata, jadi saya berpikir ketahanan terhadap asimetri akan menjadi penting bagi pembaca masa depan.
Nick Stauner
5

Saya akan berpikir cara mudah adalah dengan menghitung varians. Dalam sistem sederhana seperti itu, varian yang lebih tinggi akan berarti lebih banyak 1/5. EDIT Contoh cepat: jika nilai Anda 1,3,3,5 varians Anda akan:

(1-3)2+(3-3)2+(3-3)2+(5-3)24=1
Jika angka Anda 1,1,5,5, varians Anda adalah:
(1-3)2+(1-3)2+(5-3)2+(5-3)24=2
Duncan
sumber
2

Saya ragu bahwa saya dapat menambahkan sesuatu yang berharga pada jawaban cerdas yang sudah diberikan. Secara khusus, untuk ide baik @ Glen_b untuk menilai bagaimana varians yang diamati relatif dekat dengan varians maksimal yang mungkin di bawah rata-rata yang diamati. Sebaliknya, proposal saya yang langsung dan langsung dari bahu adalah tentang beberapa ukuran dispersi yang kuat bukan berdasarkan penyimpangan dari beberapa pusat tetapi langsung pada jarak antara titik data.

Hitung jarak berpasangan (perbedaan absolut) antara semua titik data. Keluardsayasayajarak nol. Hitung kecenderungan sentral dalam distribusi jarak (pilihan ada di tangan Anda; mungkin, misalnya, rata-rata, median, atau pusat Hodges-Lehmann ).

Rating scale                   Distances      Mean     Median    Hodges-Lehmann
1  2  3  4  5

Frequency distributions:

1     2     1                 0 2 2 2 2 4      2          2          2

2           2                 0 0 4 4 4 4      2.7        4          2

1        2  1                 0 1 1 3 3 4      2          2          2

1  1  1     1                 1 1 2 2 3 4      2.2        2          2

1  1     1  1                 1 1 2 3 3 4      2.3        2.5        2.5

1           3                 0 0 0 4 4 4      2          2          2

Seperti yang Anda lihat, 3 statistik mungkin sangat berbeda sebagai ukuran "polarisasi" (jika saya mengukur "ketidaksepakatan" daripada konfrontasi bipolar, saya mungkin akan memilih HL). Pilihan ada padamu. Satu gagasan: jika Anda menghitung jarak kuadrat , rata-rata mereka akan langsung terkait dengan varians biasa dalam data (dan karenanya Anda akan tiba di saran @ Duncan untuk menghitung varians). Perhitungan jarak tidak akan terlalu sulit bahkan dengan yang besarN di sini karena skala peringkatnya descrete dan dengan nilai yang relatif sedikit, sehingga algoritma pembobotan frekuensi untuk menghitung jarak menawarkan dirinya secara alami.

ttnphns
sumber
Mean dari jarak kuadrat berpasangan terkait dengan varians.
Glen_b -Reinstate Monica
0

Bagaimana, jika peringkat bintang 3 lebih kecil dari rata-rata 5 dan 4, dan juga lebih kecil dari rata-rata 1 dan 2:

if (number_of_ratings > 6)      // kind of meaningless unless there's enough ratings
{
    if ( ((rating(5)+rating(4))*0.5 > rating(3)) &&
         ((rating(1)+rating(2))*0.5 > rating(3))
       )    
    {
        // Opinion divided
    }
    else
    {
        // Opinion not divided
    }
}
else
{
    // Hard to tell yet if opinion is divided
}

Dari atas kepala saya, saya tidak bisa memikirkan situasi di mana itu tidak akan berhasil. Menggunakan contoh di atas: ulasan pelanggan Amazon untuk Tee Lengan Pendek Three Wolf Moon :

RSebuahtsayang12345Freqkamuency20854891982273

Pada kasus ini:

RSebuahtsayangSebuahverSebuahge(1,2)3SebuahverSebuahge(4,5)Freqkamuency131891235

Ini akan lulus ujian dan dianggap pendapat terbagi.

Roket
sumber
1
bagaimana jika ada banyak 2s dan 4s, dan peringkat lainnya relatif sedikit? Sulit membayangkan ini terjadi dalam kenyataan, tetapi apakah orang benar-benar ingin menyebutnya terpolarisasi?
Nick Stauner
Kalau dipikir-pikir, orang bisa lebih mudah menemukan kasus dengan banyak 1s dan 5s, sangat sedikit 2s dan 4s, dan jumlah sedang 3s. Contohnya,
RSebuahtsayang12345Freqkamuency25515525
Itu cukup terpolarisasi, bukan? Namun metode Anda akan menghasilkan hasil yang sama untuk ini seperti untuk distribusi seragam 15 dari setiap peringkat.
Nick Stauner
0

Saya pikir apa yang Anda cari adalah standar deviasi:

σ=saya=0n(xsaya-μ)2ndimana σ adalah standar deviasi, n adalah jumlah titik data,x mewakili semua titik data, danμ adalah mean.

Saya tidak tahu bahasa pemrograman apa ini, tapi inilah metode java yang akan memberi Anda deviasi standar:

public static double standardDeviation(double[] data) {
            //find the mean
    double sum = 0;
    for(double x:data) {
        sum+=x;
    }
    double mean = sum/data.length;

            //find standard deviation
    Double sd;
    sd=0.0;
    for(double x:data) {
        sd+=Math.pow((x-mean),2);
    }
    sd=sd/data.length;
    sd=Math.sqrt(sd);

    return sd;
}
anonim
sumber