Das Bradley-Terry-Luce (BTL) -Modell besagt, dass , wobei die Wahrscheinlichkeit ist, dass das Objekt als "besser" beurteilt wird. schwerer usw. als Objekt und und sind Parameter.
Dies scheint ein Kandidat für die glm-Funktion mit family = binomial zu sein. Die Formel wäre jedoch so etwas wie "Erfolg ~ S1 + S2 + S3 + S4 + ...", wobei Sn eine Dummy-Variable ist, dh 1, wenn Objekt n das erste Objekt im Vergleich ist, -1, wenn dies der Fall ist die zweite und 0 sonst. Dann wäre der Koeffizient von Sn das entsprechende .
Dies wäre mit nur wenigen Objekten recht einfach zu handhaben, könnte jedoch zu einer sehr langen Formel und der Notwendigkeit führen, für jedes Objekt eine Dummy-Variable zu erstellen. Ich frage mich nur, ob es eine einfachere Methode gibt. Angenommen, der Name oder die Nummer der beiden verglichenen Objekte sind Variablen (Faktoren?) Objekt1 und Objekt2, und Erfolg ist 1, wenn Objekt 1 besser beurteilt wird, und 0, wenn Objekt 2 ist.
quelle
Antworten:
Ich denke, das beste Paket für PC-Daten (Paired Comparison) in R ist das Prefmod-Paket , mit dem Daten bequem für (logarithmisch lineare) BTL-Modelle in R vorbereitet werden können. Es verwendet ein Poisson GLM (genauer gesagt ein multinomiales Logit in Poisson) Formulierung siehe zB diese Diskussion ).
Das Schöne ist, dass es eine Funktion hat
prefmod::llbt.design
, die Ihre Daten automatisch in das erforderliche Format und die erforderliche Designmatrix konvertiert.Angenommen, Sie haben 6 Objekte, die alle paarweise verglichen werden. Dann
erstellt die Entwurfsmatrix aus einer Datenmatrix, die folgendermaßen aussieht:
mit Zeilen, die Personen bezeichnen, Spalten, die Vergleiche bezeichnen, und 0 bedeutet unentschlossen 1 bedeutet Objekt 1 bevorzugt und 2 bedeutet Objekt 2 bevorzugt. Fehlende Werte sind zulässig. Bearbeiten : Da dies wahrscheinlich nicht einfach aus den obigen Daten abzuleiten ist, schreibe ich es hier. Die Vergleiche müssen folgendermaßen angeordnet werden ((12) bedeutet Vergleichsobjekt 1 mit Objekt 2):
Die Anpassung erfolgt am bequemsten mit der
gnm::gnm
Funktion, da Sie damit statistische Modelle erstellen können. (Bearbeiten: Sie können auch dieprefmod::llbt.fit
Funktion verwenden, die etwas einfacher ist, da nur die Anzahl und die Entwurfsmatrix berücksichtigt werden.)Bitte beachten Sie, dass der Eliminierungsbegriff die Störparameter in der Zusammenfassung weglässt. Sie können dann die Wertparameter (Ihre Deltas) als erhalten
Und Sie können sie mit zeichnen
Wenn Sie viele Objekte haben und
o1+o2+...+on
schnell ein Formelobjekt schreiben möchten , können Sie verwendenum die Formel zu generieren
gnm
( für die Sie nicht benötigen würdenllbt.fit
).Es gibt einen JSS-Artikel , siehe auch https://r-forge.r-project.org/projects/prefmod/ und die Dokumentation über
?llbt.design
.quelle