Seite 1 von 1
Fehler in Rasch-Modell - Spline interpolation in some subgroups not performed
Verfasst: Do Jan 14, 2021 8:53 pm
von mohnstrudel
Hallo,
ich möchte u.a. gerne ein Rasch-Modell aufstellen und analysieren. Dazu habe ich bislang alle Fälle, deren Werte in dieser Variable ausschließlich NA sind, entfernt:
Code: Alles auswählen
data.GEB = data.frame(df.netjes$GEB_everydaytrip_dic, df.netjes$GEB_seasonal_dic, df.netjes$GEB_1000km.R_dic,
df.netjes$GEB_fulldrum_dic, df.netjes$GEB_heating_R.R_dic, df.netjes$GEB_campaign_dic,
df.netjes$GEB_bag.R_dic, df.netjes$GEB_30km.R_dic, df.netjes$GEB_Pfand_dic,
df.netjes$GEB_togo.R_dic, df.netjes$GEB_repair_dic, df.netjes$GEB_finansupp_dic,
df.netjes$GEB_regional_dic, df.netjes$GEB_dryer.R_dic, df.netjes$GEB_taketime_dic,
df.netjes$GEB_talk_dic, df.netjes$GEB_boycot_dic, df.netjes$GEB_compensate_dic,
df.netjes$GEB_heating_dic, df.netjes$GEB_light_dic, df.netjes$GEB_standby.R_dic,
df.netjes$GEB_share_dic, df.netjes$GEB_meat_dic, df.netjes$GEB_politics_dic)
delete.na = function(data.GEB, n=23) {data.GEB[rowSums(is.na(data.GEB))<=n,]}
data.GEB = delete.na(data.GEB)
Auf Basis des Rasch-Modells möchte ich im Anschluss die Personenparameter ermitteln
Code: Alles auswählen
GEB.rasch = RM(data.GEB)
GEB.rasch.pp = person.parameter(GEB.rasch)
Für den Befehl der Personenparameter zeigt R allerdings folgende Fehlermeldung an:
Code: Alles auswählen
Spline interpolation in some subgroups not performed!
Less than 4 different person parameters estimable!
Perhaps NAs in subgroup(s).
Trotz intensiver Recherche konnte ich bislang noch keine aufschlussgebende Erläuterung zu diesem Fehler finden - und dementsprechend auch keine Behebungsmöglichkeiten. Weiß hier vielleicht jemand mehr dazu?
Ich freue mich ziemlich über hilfreiche Hinweise!
Viele Grüße
mohnstrudel
Re: Fehler in Rasch-Modell - Spline interpolation in some subgroups not performed
Verfasst: Fr Jan 15, 2021 10:10 am
von jogo
nichts Substantielles zu Deinem Problem, nur Kosmetik:
Code: Alles auswählen
data.GEB <- df.netjes[c("GEB_everydaytrip_dic", "GEB_seasonal_dic", "GEB_1000km.R_dic",
"GEB_fulldrum_dic", "GEB_heating_R.R_dic", "GEB_campaign_dic",
"GEB_bag.R_dic", "GEB_30km.R_dic", "GEB_Pfand_dic",
"GEB_togo.R_dic", "GEB_repair_dic", "GEB_finansupp_dic",
"GEB_regional_dic", "GEB_dryer.R_dic", "GEB_taketime_dic",
"GEB_talk_dic", "GEB_boycot_dic", "GEB_compensate_dic",
"GEB_heating_dic", "GEB_light_dic", "GEB_standby.R_dic",
"GEB_share_dic", "GEB_meat_dic", "GEB_politics_dic")]
Gibt es im Dataframe df.netjes noch weitere Spalten, die mit "GEB_" anfangen?
Gruß, Jörg
Re: Fehler in Rasch-Modell - Spline interpolation in some subgroups not performed
Verfasst: Fr Jan 15, 2021 10:40 am
von mohnstrudel
O ja, sieht gleich deutlich sympathischer aus, danke!
Ja, in df.netjes gibt es noch weitere Variablen, die mit "GEB_" beginnen.
Viele Grüße
mohnstrudel
Re: Fehler in Rasch-Modell - Spline interpolation in some subgroups not performed
Verfasst: Fr Jan 15, 2021 10:50 am
von jogo
schade, sonst hättest Du einfach:
Code: Alles auswählen
data.GEB <- df.netjes[grepl("^GEB_", names(df.netjes))]
machen können. (Wenn die anderen Spalten nicht stören, kannst Du es trotzdem machen.)
Gruß, Jörg
Re: Fehler in Rasch-Modell - Spline interpolation in some subgroups not performed
Verfasst: Fr Jan 15, 2021 11:58 am
von mohnstrudel
Mh, wenn ich es richtig sehe, ist die Funktion
dazu gedacht, bestimmte Zeichen (oder Kombinationen von Zeichen) und deren Position in einem Datensatz wiederzufinden.
Mir leuchtet noch nicht wirklich ein, warum das an dieser Stelle hilfreich werden kann. Kannst du mir diesbezüglich vielleicht noch einen Hinweis geben?
Re: Fehler in Rasch-Modell - Spline interpolation in some subgroups not performed
Verfasst: Fr Jan 15, 2021 12:46 pm
von jogo
Ja, klar; Indizierung kann auch mit eine
logical vector erfolgen, z.B.
Die Funktion grepl() erzeugt genau so einen
logical vector
- in meiner vorherigen Anwendung durch Test der Spaltennamen auf ein bestimmtes pattern.
Ein Dataframe ist eine Liste (eine Liste von gleichlangen Vektoren). Deshalb lässt sich ein Dataframe wie eine Liste indizieren.
Gruß, Jörg
Re: Fehler in Rasch-Modell - Spline interpolation in some subgroups not performed
Verfasst: Fr Jan 15, 2021 12:57 pm
von bigben
mohnstrudel hat geschrieben: Do Jan 14, 2021 8:53 pmTrotz intensiver Recherche konnte ich bislang noch keine aufschlussgebende Erläuterung zu diesem Fehler finden - und dementsprechend auch keine Behebungsmöglichkeiten. Weiß hier vielleicht jemand mehr dazu?
Es ist ein paar Jahre her, dass ich mich mit Rasch-Modellen beschäftigt habe. Damals gab es schon mehr Pakete zum fitten von Rasch-Modellen als ich bereit war mir anzuschauen. Du solltest wenigstens angeben, aus welchem Paket Deine Funktion RM kommt.
Damit man so ein Modell anpassen kann müssen die eingegebenen Daten natürlich auch ausreichend Aussagekraft haben, um für jedes Item Lage und Streuung zu bestimmen. Wenn man nach Shiny und IRT sucht findet man auch Shiny-Apps, mit denen sich Rasch-Modelle mit einer GUI untersuchen lassen. Vielleicht schaust Du Dir die Daten damit nochmal an. Ansonsten sehe ich uns doch irgendwie an der Stelle, an der man konkrete Daten bzw. ein reproduzierbares Beispiel (gerne aus eine Abwandlung der Originaldaten bestehend, wenn Angst vor Datenklau besteht) der nächste vernünftige Schritt sind.
LG,
Bernhard
Re: Fehler in Rasch-Modell - Spline interpolation in some subgroups not performed
Verfasst: Sa Jan 16, 2021 4:19 pm
von mohnstrudel
Vielen Dank für eure Reaktionen!
Bei der Umsetzung der Hinweise ist mir aufgefallen, dass ich einen inhaltlichen Fehler in der Dichotomisierung der Variablen gemacht habe. Deshalb ist es zu sehr vielen Werten gekommen, die nach der Dichotomisierung als "NA" kodiert waren, allerdings ursprünglich als "7" kodiert waren. Das ist mir jetzt sehr unangenehm, dass es an so einer unnötigen Unaufmerksamkeit gelegen zu haben scheint. Der Output ist jetzt wie folgt:
Code: Alles auswählen
> GEB.rasch = RM(data.GEB)
> GEB.rasch.pp = person.parameter(GEB.rasch)
> GEB.rasch.pp
Person Parameters:
Person NA Group: 1
NA pattern: x x x x x x x x x x x x x x x x x x x x x x x x
Raw Score Estimate Std.Error
0 -3.44243087 NA
4 -2.07676200 0.5994175
5 -1.74461052 0.5557695
6 -1.45314652 0.5255768
7 -1.18862777 0.5041690
8 -0.94243429 0.4890363
9 -0.70863622 0.4787195
10 -0.48279098 0.4723258
11 -0.26135947 0.4693160
12 -0.04130579 0.4693921
13 0.18022421 0.4724463
14 0.40608140 0.4785605
15 0.63936199 0.4880157
16 0.88373649 0.5013625
17 1.14384974 0.5195276
18 1.42602329 0.5440250
19 1.73949357 0.5773787
20 2.09885818 0.6241066
21 2.52993896 0.6935389
22 3.08756798 0.8104653
23 3.94152692 1.0792271
24 4.86698094 NA
Person NA Group: 2
NA pattern: x x x x x x x x x x x x x x x x x x x x x x x NA
Raw Score Estimate Std.Error
18 1.704469 0.5824468
...
Habt vielen Dank für eure Hilfe!
Viele Grüße
mohnstrudel