Czy mamy problem z „litością przychylną”?


51

Wiem, może to zabrzmieć nie na temat, ale wysłuchaj mnie.

W Stack Overflow i tutaj otrzymujemy głosy na posty, wszystko to jest przechowywane w formie tabelarycznej.

Na przykład:

post id identyfikator wyborcy typ głosowania datetime
------- -------- --------- --------
10 1 2 2000-1-1 10:00:01 
11 3 3 2000-1-1 10:00:01 
10 5 2 2000-1-1 10:00:01 

... i tak dalej. Głosowanie typu 2 to głosowanie pozytywne, głosowanie typu 3 to głosowanie negatywne. Możesz przesłać anonimową wersję tych danych na stronie http://data.stackexchange.com

Istnieje przekonanie, że jeśli post osiągnie wynik -1 lub niższy, bardziej prawdopodobne jest, że zostanie on oceniony. Może to być po prostu uprzedzenie potwierdzające lub może być zakorzenione.

Jak przeanalizowalibyśmy te dane, aby potwierdzić lub zaprzeczyć tej hipotezie? Jak zmierzylibyśmy efekt tego błędu?


1
czy możemy uzyskać przykład zapytania? Nie wszyscy są dobrze zorientowani w pisaniu instrukcji SQL. Posiadanie przykładowych danych może zachęcić ludzi do zabawy. +1 za pytanie.
mpiktas

Głosy @Jeff są anonimowe, można uzyskać tylko częściowe informacje ze zrzutu danych, obejmuje wszystkie przejścia, chociaż tutaj jest szybki przykład danych. Stackexchange.com/stackoverflow/q/101738 pełne anonimowe dane są dostępne w publicznym zrzutu danych
Sam Saffron,

Dlaczego po prostu głosujesz? W jaki sposób prawdopodobieństwo głosowania w górę lub w dół wokół każdej konkretnej wartości byłoby z pewnością interesujące?
Bob Durrant

@ Bob, na pewno się zgodzili
Sam Saffron

1
Widziałem inne rodzaje stron zaciemniających głosy (tj. Dodających hałas przed ich wyświetleniem), a czasem nawet całkowicie ukrywających się w górę i w dół głosów na krótki czas, aby uniknąć różnych form bandwagonningu, litości głosów i innych „społecznych” elementy głosowania.
Glen_b

Odpowiedzi:


32

Możesz użyć modelu wielostanowiskowego lub łańcucha Markowa (pakiet MSM w R jest jednym ze sposobów, aby je dopasować). Następnie możesz sprawdzić, czy prawdopodobieństwo przejścia od -1 do 0 jest większe niż od 0 do 1, 1 do 2 itd. Możesz także spojrzeć na średni czas w -1 w porównaniu do innych, aby sprawdzić, czy jest on krótszy .


3
+1 świetna referencja. W Journal of Statistics Software znajduje się artykuł na temat pakietu msm. Model wydaje się idealnie dopasowany do tego rodzaju zadań.
mpiktas

3
Pomysł na model łańcuchowy Markowa wygląda dobrze, ale średni czas przy -1 nie da całej historii. Jest możliwe (i prawdopodobne - źle myślę), że bardziej prawdopodobne jest, że zostaniesz oceniony jako -1 niż gdzie indziej.
Bob Durrant

Wydaje mi się, że to, co można najpierw zrobić, to zgrupować trajektorie głosowania - te, które otrzymują (prawie) tylko w górę / w dół (bardzo popularne / bardzo złe pytania) i te, które są bardziej kontrowersyjne. Następnie możesz wykonać łańcuchy Markowa na trzech klasach.
Jonas

13

Przeprowadzić eksperyment. Każdego dnia losowo oceniaj połowę nowych postów o określonej godzinie.


5
Fajnie, powinniśmy zaobserwować znaczny wzrost odznak „krytycznych” i prawdopodobnie spadek motywacji dla nowych użytkowników :-) Lepiej zacząć od użytkowników o wysokiej liczbie powtórzeń, w tym przypadku (ryzyko ryzyka eksperymentu!)
chl

14
Właściwie moglibyśmy zrobić to lepiej ... używając testów AB, mogliśmy wybrać, aby wyświetlić połowę głosowanego pytania -1 na stronie jako 0, a połowę jako -1 ... i sprawdzić, czy któraś z grup jest bardziej prawdopodobna pozytywnie! Pomysłowy.
Sam Saffron,

4
Idea eksperymentu kontroluje jakość postów, ale (1) osoby, które zostały obniżone, powinny wcześniej zgodzić się na udział w eksperymencie, oraz (2) po krótkim czasie, obniżki powinny zostać usunięte.
zbicyclist,

2
+1 (i +1 do wszystkich komentarzy tutaj): kontrolowany, odwracalny eksperyment, przekazany z wyprzedzeniem wszystkim użytkownikom, których może to dotyczyć i przeprowadzony za ich zgodą, jest jednym z najsilniejszych sposobów na uzyskanie tych informacji.
whuber

13

Podsumowanie mojej odpowiedzi. Lubię modelowanie łańcucha Markowa, ale brakuje mu aspektu „czasowego”. Z drugiej strony, skupienie się na aspekcie czasowym (np. Średni czas przy ) pomija aspekt „przejścia”. Chciałbym przejść do następującego ogólnego modelowania (które przy odpowiednim założeniu może prowadzić do [procesu Markowa] [1]). Poza tym za tym problemem kryje się wiele „cenzurowanych” statystyk (co z pewnością jest klasycznym problemem niezawodności oprogramowania?). Ostatnie równanie mojej odpowiedzi daje oszacowanie maksymalnego prawdopodobieństwa intensywności głosowania (w górę z „+” i dow z „-”) dla danego stanu głosowania. Jak widać z równania, jest to związek pośredni z przypadkiem, gdy szacujesz jedynie prawdopodobieństwo przejścia i przypadkiem, gdy mierzysz tylko czas spędzony w danym stanie. Mam nadzieję, że to pomoże.1

Modelowanie ogólne (w celu ponownego sformułowania pytania i założeń). Niech i będą zmiennymi losowymi modelującymi odpowiednio daty głosowania i powiązany znak głosowania (+1 za głosowanie, -1 za głosowanie negatywne). Proces głosowania jest prosty ( S i ) i 1(VDi)i1(Si)i1

Yt=Yt+Yt
gdzie

Yt+=i=01VDit,Si=1 and Yt=i=01VDit,Si=1

Ważna jest tutaj intencja -jump gdzie może być lub a jest dobrą filtracją, w przypadku rodzajów, bez innej wiedzy byłoby to : .ϵ

λtϵ=limdt01dtP(Yt+dtϵYtϵ=1|Ft)
ϵ+Ft
Ft=σ(Yt+,Yt,VD1,,VDYt++Yt,S1,,SYt++Yt)

ale zgodnie z twoim pytaniem, domyślnie zakładasz, że Oznacza to, że dla istnieje sekwencja deterministyczna taki, że .

P(Yt+dtϵYtϵ=1|Ft)=P(Yt+dtϵYtϵ=1|Yt)
ϵ=+,(μiϵ)iZλtϵ=μYtϵ

W ramach tego formalizmu można przekształcić pytanie w następujący sposób: „prawdopodobne jest, że ” (lub przynajmniej różnica jest większa niż podany próg).μ1+μ0+>0

Przy takim założeniu łatwo jest wykazać, że jest [jednorodnym procesem markowa] [3] na z generatorem podanym przezYtZQ

i,jZQi,i+1=μi+Qi,i1=μiQii=1(μi++μi)Qij=0 if |ij|>1

Odpowiedź na pytanie (poprzez zaproponowanie oszacowania maksymalnego prawdopodobieństwa dla problemu statystycznego) Na podstawie tej przeformułowania rozwiązanie problemu odbywa się poprzez oszacowanie i zbudowanie testu na podstawie jego wartości. Naprawmy i zapomnijmy indeks bez utraty ogólności. Oszacowania (i ) można dokonać przed obserwacją(μi+)iμ+μ

(T1,η1),,(Tp,ηp) gdzie są długościami w tych Okresu w stanie (tj. kolejne czasy z ) i wynosi jeśli pytanie zostało poddane głosowaniu, jeśli zostało poddane głosowaniu, a jeśli był to ostatni stan obserwacji.TjjthpiYt=iηj- 1 0+110

Jeśli zapomnisz przypadek z ostatnim stanem obserwacji, wspomniane pary otrzymają rozkład zależny od i : jest on dystrybuowany jako (gdzie Exp jest losową odmianą rozkładu wykładniczego, a wynosi + lub -1 w zależności od tego, kto zrealizuje maksimum). Następnie możesz użyć następującego prostego lematu (dowód jest prosty): μ - i ( min ( E x p ( μ + i ) , E x p ( μ - i ) ) , η ) ημi+μi(min(Exp(μi+),Exp(μi)),η)η

Lemma Jeśli i , to i . X+Exp(μ+)XExp(μ)T=min(X+,X)Exp(μ++μ)P(X+1<X)=μ+μ++μ

Oznacza to, że gęstość o jest dane przez: gdzie dla jest funkcją gęstości wykładniczej zmiennej losowej z parametrem . Z tego wyrażenia łatwo jest uzyskać estymator maksymalnego prawdopodobieństwa dla i :f(t,ϵ)(T,η)

f(t,ϵ)=gμ++μ(1(ϵ=+1)μ++1(ϵ=1)μμ++μ)
gaa>0aμ+μ

(μ^+,μ^)=argminln(μ+μ+)((μ+μ+)i=1pTi+p)pln(μ)p+ln(μ+)
gdzieoraz.p=|i:δi=1|p+=|i:δi=+1|

Komentarze do bardziej zaawansowanych podejść

Jeśli chcesz wziąć pod uwagę przypadki, w których jest ostatnim zaobserwowanym stanem (z pewnością mądrzejszym, ponieważ kiedy przechodzisz przez , często jest to twój ostatni wynik ...), musisz nieco zmodyfikować rozumowanie. Odpowiednia cenzura jest względnie klasyczna ...i1

Możliwe inne podejście może obejmować

  • Intensywność maleje z czasem
  • Mając intensywność, która maleje wraz z czasem spędzonym od ostatniego głosowania (wolę ten. W tym przypadku istnieje klasyczny sposób modelowania zmniejszania się gęstości ...
  • Możesz założyć, że jest płynną funkcjąμi+i
  • .... możesz zaproponować inne pomysły!
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.