Fehler bei moderierter Reg

Modelle zur Korrelations- und Regressionsanalyse

Moderator: EDi

Antworten
farngarten
Beiträge: 52
Registriert: Fr Dez 08, 2017 6:42 am

Fehler bei moderierter Reg

Beitrag von farngarten » Fr Okt 04, 2019 11:33 am

Hallo ich habe ein Problem.
MIniDatensatz im Anhang.

Geladenen Pakete

Code: Alles auswählen

library(psych)
library(car)
library(glmnet)
library(rockchalk)
v_1 ist Geschlecht (dreistufig)und faktorisiert.
Subdatensatz gebildet k_mw , der nur zwei Ausprägungen enthält.

Code: Alles auswählen

k_mw <- subset(k, v_1 == "weiblich" | v_1 == "männlich") #anderes GEschlecht ausschlißen#
Variable MOT_ztr wird vorhergesagt durch A_ztr .
Die Regression ergibt ein signifikantes b von -.14 für A_ztr.

Code: Alles auswählen

regress <- 'k_mw$MOT_ztr ~ k_mw$A_ztr'
fitregress <- lm(regress, data = k_mw)
summary(fitregress)
Wenn ich einen kategorialen Prädiktor hinzunehme (v_1) dürfte sich doch eigentlich das Regressionsgewicht für A_ztr nicht verändern, sondern erst, wenn ich eine Interaktion zwischen zwei Prädiktoren rechne. Ich habe jetzt aber ein b = - .16 für A_ztr.

Code: Alles auswählen

multi <- 'k_mw$MOT_ztr ~ k_mw$A_ztr + k_mw$v_1'
fit <- lm(multi, data = k_mw)
summary(fit)
Oder irre ich in der Annahme?

Wenn ich eine Moderation rechnen will ,macht er eine Fehlermeldung.

Code: Alles auswählen

mod_A8_mod1 <- 'k_mw$MOT_ztr ~ k_mw$A_ztr * k_mw$v_1'
fit_A8_mod1 <- lm(mod_A8_mod1, data = k_mw)
summary(fit_A8_mod1)

graphik <- plotSlopes(fit_A8_mod1, plotx = "A_ztr", modx = "v_1")

testSlopes(graphik)

Hab ihr ne Ahnung woran es liegt? Vielen Dank für Ihre Hilfe. Grüße Martin
Dateianhänge
demo.csv
(12.65 KiB) 1-mal heruntergeladen

bigben
Beiträge: 1061
Registriert: Mi Okt 12, 2016 9:09 am

Re: Fehler bei moderierter Reg

Beitrag von bigben » Fr Okt 04, 2019 2:45 pm

Hallo farngarten,

zunächst einmal ist es schön, dass Du jetzt code-Tags verwendest und damit einen Font, an den sich unsere Augen gewöhnt haben.

Darüber, was ein minimales, reproduzierbares, lauffähiges Beispiel ist müssen wir bei Gelegenheit nochmal reden. Zum Beispiel:
Geladenen Pakete

Code: Alles auswählen

library(psych)
library(car)
library(glmnet)
library(rockchalk)
Nö, nix davon muss ich mir auf meinen Rechner ziehen, wenn ich Dein Beispiel nachrechnen wollte.
Wenn ich einen kategorialen Prädiktor hinzunehme (v_1) dürfte sich doch eigentlich das Regressionsgewicht für A_ztr nicht verändern
Das verstehe ich nicht. Warum sollte die Hinzunahme eines weitern Prädiktors in ein Modell die anderen Regressionsgewichte nicht verändern?
Wenn ich eine Moderation rechnen will ,macht er eine Fehlermeldung.
Verrätst Du uns, wie die Fehlermeldung lautet, oder sollen wir raten?

Deinen Datensatz kann man einlesen mit

Code: Alles auswählen

demo <- read.csv2("http://forum.r-statistik.de/download/file.php?id=708")
Dann erhält man sowas

Code: Alles auswählen

> str(demo)
'data.frame':	430 obs. of  14 variables:
 $ v_1: int  2 2 2 2 2 1 2 1 2 2 ...
 $ v_6: int  76 49 60 61 54 53 71 42 69 31 ...
 $ m_a: int  4 6 7 7 6 5 6 6 7 3 ...
 $ m_b: int  2 5 7 7 4 5 4 5 7 2 ...
 $ m_c: int  6 4 7 6 5 5 4 5 7 2 ...
 $ m_d: int  4 5 7 7 5 4 3 6 7 2 ...
 $ m_e: int  6 5 7 6 7 5 3 6 7 2 ...
 $ a_a: int  1 1 2 2 2 3 2 1 1 4 ...
 $ a_b: int  1 1 2 3 2 3 2 1 1 4 ...
 $ a_c: int  2 1 2 2 2 3 2 2 1 4 ...
 $ a_d: int  1 2 1 2 3 2 2 1 1 4 ...
 $ a_e: int  1 1 2 1 2 2 1 1 1 2 ...
 $ a_f: int  1 1 2 1 1 2 1 2 1 4 ...
 $ a_g: int  1 1 2 1 2 2 1 1 1 2 ...
Es gibt darin keine Spalten MOT_ztr oder A_ztr und deshalb ist das kein reproduzierbares Beispiel.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte

farngarten
Beiträge: 52
Registriert: Fr Dez 08, 2017 6:42 am

Re: Fehler bei moderierter Reg

Beitrag von farngarten » Sa Okt 05, 2019 11:23 am

Hallo Bernhard,
ich hatte die Skalenbildung vergessen.

Code: Alles auswählen

k$A <- rowMeans(k[,c("a_a", "a_b", "a_c", "a_d", "a_e", "a_f", "a_g")]) 
k$A_ztr <- as.numeric(scale(k$A, center = TRUE, scale = TRUE))

k$MOT <- rowMeans(k[,c("m_a", "m_b", "m_c", "m_d", "m_e")]) 
k$MOT_ztr <- as.numeric(scale(k$MOT, center = TRUE, scale = TRUE))
Meine Frage zu Veränderung der Regress Gewichte bei Hinzunahme von weiteren Prädiktoren , hat sich erledigt. Ich dachte die verändern sich nur, wenn ich eine INteraktion zwischen den Prädiktoren rechne. Denkfehler.

Bzgl: Fehlermeldung

Code: Alles auswählen

# Abhängige Variable MOT wird vorhergesagt durch Prädiktor A MODERIERT  durch Geschlecht#

mod_A8_mod1 <- 'k_mw$MOT_ztr ~ k_mw$A_ztr * k_mw$v_1'
fit_A8_mod1 <- lm(mod_A8_mod1, data = k_mw)
summary(fit_A8_mod1)

graphik <- plotSlopes(fit_A8_mod1, plotx = "A_ztr", modx = "v_1")

testSlopes(graphik)
>
> graphik <- plotSlopes(fit_A8_mod1, plotx = "A_ztr", modx = "v_1")
Error in model.frame.default(myfmla, dataOrig, na.action = na.action) :
ungültiger Typ (list) für die Variable 'k_mw'
>
> testSlopes(graphik)
Error in testSlopes(graphik) : object 'graphik' not found
viele Grüße Martin

Antworten