2017-06-21 3 views
0

Hintergrund:Item-Level-Regressionskoeffizienten in R?

1000 Teilnehmer bewerteten ihre Zufriedenheit mit 200 Objekten (S), sowie die Bereitstellung von 4 verschiedenen psychometrischen Variablen (A, B, C, D) über den Teilnehmer selbst. Es gab 5000 eindeutige Objekte zu bewerten, so dass aufgrund von Ressourceneinschränkungen nicht jeder Teilnehmer jedes Objekt bewertet hat. Dies führt zu einem dünn besetzten Datensatz, bei dem jedes Objekt von etwa 30 Teilnehmern bewertet wurde.

Von diesem Entwurf ist es trivial, grundlegende deskriptive Statistiken (z. B. mittlere Zufriedenheit für jedes Objekt) abzurufen. Meine Aufgabe besteht nun darin, eine Beziehung zwischen psychometrischen Variablen (A, B, C, D) und Objekten herzustellen - d. H. "Welche Objekte werden Sie wahrscheinlich als zufriedenstellend empfinden, wenn Sie auf A, B, C, D einen bestimmten Weg einschlagen?"

Die Idee besteht darin, eine Regression durchzuführen und anschließend die vermittelnden Koeffizienten zu extrahieren. Die Formel (und möglicherweise das Design) ist ziemlich komplex, und ich habe keine Ahnung, wie auch diese

in R. versuchen

Datensatz:

Der Datensatz wird wie folgt -

[Teilnehmer-ID] , [Objekt-ID], [S-Rating], [A], [B], [C], [D]

Die A-, B-, C-, D-Werte sind für eine Person immer gleich, dh sie nicht von den Objekten abhängen. Die Objekt-ID im Bereich von 1 bis 5000, mit einem Teilnehmer-ID mit einer zufälligen Auswahl von 200 Objekten aus dem Pool von 5000.

Beispiel gepaart ist:

+----------------+-----------+----------+-----+------+------+------+ 
| Participant ID | Object ID | S Rating | A | B | C | D | 
+----------------+-----------+----------+-----+------+------+------+ 
| 1    | 23  | 2  | 0.2 | 0.7 | 0.42 | 0.9 | 
+----------------+-----------+----------+-----+------+------+------+ 
| 1    | 69  | 1  | 0.2 | 0.7 | 0.42 | 0.9 | 
+----------------+-----------+----------+-----+------+------+------+ 
| 1    | 769  | 1  | 0.2 | 0.7 | 0.42 | 0.9 | 
+----------------+-----------+----------+-----+------+------+------+ 
| 1    | 1357  | 5  | 0.2 | 0.7 | 0.42 | 0.9 | 
+----------------+-----------+----------+-----+------+------+------+ 
| ... 196 more |   |   |  |  |  |  | 
+----------------+-----------+----------+-----+------+------+------+ 
| 2    | 84  | 1  | 0.3 | 0.12 | 0.6 | 0.86 | 
+----------------+-----------+----------+-----+------+------+------+ 
| 2    | 345  | 5  | 0.3 | 0.12 | 0.6 | 0.86 | 
+----------------+-----------+----------+-----+------+------+------+ 
| 2    | 1357  | 4  | 0.3 | 0.12 | 0.6 | 0.86 | 
+----------------+-----------+----------+-----+------+------+------+ 

Formel:

Um die Beziehung zwischen Objekt-Bewertungen auf Objekt-Ebene und psychometrischen Variablen auf Teilnehmer-Ebene herzustellen, hoffe ich, eine Regression mit der folgenden Formel auszuführen:

SR atting ~ (A + B + C + D) * I + (1/P)

Wenn S Rating die S-Bewertung im Datensatz ist, sind ABCD psychometrische Variablen aus dem Datensatz, I ist ein Artikel-Level-Koeffizient I wollen extrahieren, und P ist ein Teilnehmer-Level-Koeffizient.

Die Formel würde Elementkoeffizienten - IA, IB, IC, ID für jedes Element (Objekt) im Dataset bieten. Dies würde dann Dinge wie antworten "Für Objekt 931 ist es besonders wichtig, auf A zu punktieren, um die Zufriedenheit vorherzusagen".

Fragen:

Ist es möglich, diese in R zu erreichen?

Bin ich der Meinung, dass die obige Formel mir Zugang zu Koeffizienten auf Artikelebene geben würde, was mir erlaubt zu sehen, wie die psychometrischen Variablen A, B, C, D zur Vorhersage von S unabhängig für jeden Gegenstand I beitragen?

Ist es möglich, diese Koeffizienten aus der Regression in R zu erhalten? Ich hoffe auf eine Tabelle wie: [Objekt-ID], [Beitrag von A], [Beitrag von B], [Beitrag von C], [Beitrag von D].Dies würde den Beitrag jeder psychometrischen Variablen zur Vorhersage von S für jedes Objekt separat angeben.

Wie soll man das in R machen?

Antwort

1

Sicherlich sollten Sie in der Lage sein, das in R zu tun. Der Punkt ist, die Klasse von Ihnen Variable richtig zu definieren. Ich denke, ich und P sollten Faktoren sein.

Und dann verwenden Sie einfach die lm() Funktion:

obj = lm (Rating ~ (A + B + C + D): I + P)

+0

Vielen Dank für die schnelle Antwort. Diese Lösung hat super funktioniert. Die richtige Einstellung der Faktoren war der Schlüssel. Ich kämpfe jetzt nur noch mit der Größe des Datasets (erfordert 36 GB RAM), was ich mit dem biglm-Paket umgehen konnte, anstatt lm selbst zu benutzen. – Tomas2015