Come rilevare le opinioni degli utenti polarizzate (stelle alte e basse)


15

Se ho un sistema di valutazione a stelle in cui gli utenti possono esprimere la loro preferenza per un prodotto o un articolo, come posso rilevare statisticamente se i voti sono altamente "divisi". Significato, anche se la media è 3 su 5, per un dato prodotto, come posso rilevare se si tratta di una divisione 1-5 rispetto a un consenso 3, usando solo i dati (nessun metodo grafico)


3
Cosa c'è di sbagliato nell'usare una deviazione standard?
Spork,


1
Stai cercando di rilevare la "distribuzione bimodale"? Vedi stats.stackexchange.com/q/5960/29552
Ben Voigt,

1
Nella scienza politica esiste una letteratura sulla misurazione della polarizzazione politica che ha esaminato vari modi per definire cosa si intende per "polarizzazione". Un bel documento che discute in dettaglio 4 diversi modi semplici per definire la polarizzazione è il seguente (vedi pp. 692-699): educ.jmu.edu/~brysonbp/pubs/PBJ.pdf
Jake Westfall

Risposte:


12

Si potrebbe costruire un indice di polarizzazione; esattamente come lo si definisce dipende da cosa si intende per essere più polarizzati (cioè che cosa intendi esattamente, in casi limite particolari, con più o meno polarizzati?):

Ad esempio, se la media è "4", una divisione del 50-50 tra "3" e "5" è maggiore o meno polarizzata del 25% "1" e del 75% "5"?

Ad ogni modo, in assenza di quel tipo di definizione specifica di cosa intendi, suggerirò una misura basata sulla varianza:

Data una media particolare, definire la divisione più polarizzata possibile come quella che massimizza la varianza *.

* (NB ciò significherebbe che il 25% "1" e il 75% "5" sono sostanzialmente più polarizzati rispetto alla divisione 50-50 di "3" e "5"; se ciò non corrisponde alla tua intuizione, non utilizzare la varianza)

Quindi questo indice di polarizzazione è la proporzione della più grande varianza possibile ( con la media osservata ) nella varianza osservata.

Chiama la valutazione media ( m = ˉ x ).mm=x¯

La varianza massima si verifica quando una proporzione è a5e1-pè a1; questo ha una varianza di (m-1)(5-m)np=m1451p1 .(m-1)(5-m)nn-1

Quindi semplicemente prendi la varianza del campione e dividi per ; questo dà un numero compreso tra0(accordo perfetto) e1(completamente polarizzato).(m-1)(5-m)nn-101

Per un numero di casi in cui la valutazione media è 4, ciò darebbe quanto segue:

inserisci qui la descrizione dell'immagine


Potresti invece preferire non calcolarli relativamente alla maggiore varianza possibile con la stessa media, ma invece come percentuale della maggiore varianza possibile per qualsiasi valutazione media . Ciò implicherebbe invece la divisione per e restituisce nuovamente un valore compreso tra 0 (accordo perfetto) e1(polarizzato agli estremi in un rapporto 50-50). Ciò produrrebbe le stesse relatività del diagramma sopra, ma tutti i valori sarebbero 3/4 più grandi (cioè da sinistra a destra, dall'alto verso il basso sarebbero 0, 16,5%, 25%, 25%, 50 % e 75%).4nn-11

Ognuna delle due è una scelta perfettamente valida, così come qualsiasi altro numero di modi alternativi di costruire un tale indice.


Ma poi quando m = 1ottieni 1 - 1 = 0e 0 / 0. Come correggerlo?
Francesco,

@Franceso Ottimo punto. Quando o m = 5 la formula per la prima forma non è definita. Tuttavia, secondo varie ipotesi, il limite sembra essere 1, che è probabilmente quello che userei. Se qualcuno volesse definirlo come 1 o 0 per quel caso limite, mi sembrerebbe ragionevole. m=1m=5
Glen_b -Restate Monica

8

"Nessun metodo grafico" è una specie di grande handicap, ma ... ecco un paio di idee strane. Entrambi trattano le valutazioni come continue, il che è una sorta di debolezza concettuale, e probabilmente non è l'unica ...

curtosi

  • La curtosi di {1,1,1,5,5,5} = 1. Non otterrai una curtosi inferiore con una combinazione di 1–5 voti.
  • La curtosi di {1,2,3,4,5} = 1,7. Inferiore significa valori più estremi; più alto significa più medio.
  • Questo non funzionerà se la distribuzione non è approssimativamente simmetrica. Dimostrerò di seguito.

Regressione binomiale negativa

Con un frame di dati come questo: Montare il modelloFrequencyRating+

Run'tiongFrequency1312153749537
utilizzando la regressione binomiale negativa. IlFrequency~Run'tiong+Run'tiong coefficiente dovrebbe essere vicino allo zero se i rating sonouniformemente distribuiti, positivo se ci sono proporzionalmente valori medio raggio (cfr piùdistribuzione binomiale), o negative con distribuzioni polarizzato come quello sopra, per cui il coefficiente è - 11.8.Run'tiong

FWIW, ecco il codice cui ho giocato:

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

Non posso resistere a lanciare in una trama ...

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

Il Run'tiong



Modifica: ho appena visto questa domanda pubblicizzata sulla barra laterale: e quando ho fatto clic, l'ho vista nelle Domande sulla rete attiva che rimandavano a se stesse, come a volte accade ,

quindi ho pensato che questo potrebbe meritare una rivisitazione in un modo più generalmente utile. Ho deciso di provare i miei metodi sulle recensioni dei clienti di Amazon per la maglietta The Mountain Three Wolf Moon :

Run'tiong12345Frequency20854891982273


βRun'tiong=-19.1

A proposito, @ Duncan's σFrequencyT-shirt a maniche corte The Mountain Three Wolf Moon2=1.31
x=rep(5:1,c(2273,198,89,54,208))var(x)/(4*length(x)/(length(x)-1))


Si tratta di circa 0,77 per la prima versione dell'indice di polarizzazione (cioè rispetto al più polarizzato dato il punteggio medio), ma sì, come dici tu, 0,33 per la seconda versione (rispetto alla distribuzione più polarizzata possibile).
Glen_b -Restate Monica

@Glen_b: E la prima versione non è meno appropriata quando la media non è fissata su vari insiemi di classificazioni che devono essere confrontate? O ho frainteso la tua risposta?
Nick Stauner,

Dipende da quale sia l'obiettivo. A giudicare dal titolo "come rilevare le opinioni polarizzate", mi sposto verso il primo ( dato il punteggio medio, quanto è polarizzata l'opinione al riguardo? ). Se lo scopo era davvero quello di confrontare diversi set di rating, potrebbe essere più sensato lavorare con il secondo approccio, come suggerisci. È per questo che ho fatto entrambe le cose. Il mio commento non era inteso in alcun senso come critica; Sono lusingato che tu l'abbia menzionato affatto.
Glen_b -Restate Monica

@Glen_b: Capito :) TBH, sto suggerendo che l'approccio del modello di regressione binomiale negativa è migliore, ma ammetto di non averlo provato a fondo. Ho la sensazione che la maggior parte dei set di valutazione polarizzati reali non sarà uniformemente polarizzata, quindi penso che la robustezza contro l'asimmetria sarà importante per i futuri lettori.
Nick Stauner,

5

(1-3)2+(3-3)2+(3-3)2+(5-3)24=1
(1-3)2+(1-3)2+(5-3)2+(5-3)24=2

2

Dubito di poter aggiungere qualcosa di prezioso alle risposte intelligenti già fornite. In particolare, alla buona idea di @ Glen_b di valutare come la varianza osservata sia relativamente vicina alla varianza massima possibile sotto la media osservata. La mia proposta schietta e diretta dalla proposta di spalla riguarda invece una solida misura di dispersione basata non su deviazioni da qualche centro ma direttamente su distanze tra punti dati.

dioio zéro distanze. Calcola una tendenza centrale nella distribuzione delle distanze (a te la scelta; può essere, ad esempio, media, mediana o centro di 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

Come puoi vedere, le 3 statistiche potrebbero essere molto diverse come misure di "polarizzazione" (se dovessi misurare il "disaccordo" piuttosto che il confronto bipolare, probabilmente sceglierei HL). La scelta è tua. Una nozione: se calcoli le distanze al quadrato , la loro media sarà direttamente correlata alla normale varianza nei dati (e così arriverai al suggerimento di @ Duncan di calcolare la varianza). Il calcolo delle distanze non sarà troppo difficile anche con grandeN qui perché la scala di valutazione è descrittiva e con relativamente pochi gradi, quindi l'algoritmo di ponderazione della frequenza per calcolare le distanze si offre naturalmente.


La media delle distanze al quadrato a coppie è correlata alla varianza.
Glen_b -Restate Monica

0

Che ne dici se la valutazione a 3 stelle è inferiore alla media di 5 e 4, e anche inferiore alla media di 1 e 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
}

Dalla parte superiore della mia testa non riesco a pensare a nessuna situazione in cui ciò non funzionerebbe. Utilizzando l'esempio sopra: recensioni dei clienti Amazon per la maglietta a maniche corte The Mountain Three Wolf Moon :

Run'tiong12345Frequency20854891982273

In questo caso:

Run'tiongun'verun'ge(1,2)3un'verun'ge(4,5)Frequency131891235

Ciò supererebbe il test e sarebbe considerato opinione divisa.


1
cosa succederebbe se ci fossero un sacco di 2 e 4 e relativamente poche altre valutazioni? È difficile immaginare che ciò accada nella realtà, ma si vorrebbe davvero chiamarlo polarizzato?
Nick Stauner,

Pensaci, si potrebbero trovare più facilmente casi con un sacco di 1 e 5 secondi, pochissimi 2 e 4 secondi e una moderata quantità di 3 secondi. Per esempio,
Run'tiong12345Frequency25515525
È piuttosto polarizzato, no? Eppure il tuo metodo produrrebbe lo stesso risultato per questo come per una distribuzione uniforme di 15 di ogni valutazione.
Nick Stauner,

0

Penso che quello che stai cercando sia la deviazione standard:

σ=Σio=0n(Xio-μ)2ndove σ è la deviazione standard, n è il numero di punti dati,X rappresenta tutti i punti dati eμ è la media.

Non so che linguaggio di programmazione sia, ma ecco un metodo java che ti darà la deviazione standard:

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;
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.