Moderatoranalyse mit intervallskalierten Variablen
Moderator: EDi
Moderatoranalyse mit intervallskalierten Variablen
Hallo Zusammen,
ich möchte gerne eine Moderation mit intervallskalierten Variablen testen.
Bisher habe ich bereits herausgefunden, dass ich die AV, UV und den Moderator im ersten Schritt z-transformieren muss. Dies habe ich über den Befehl: scale(Datensatz$Variable, center=TRUE, scale = TRUE) bei allen Variablen vorgenommen.
Nun finde ich leider nicht mehr Informationen zu dem Vorgehen, und vor allem keine R-Befehle. Laut einem Buch soll ich nun die UV mit dem Moderator multiplizieren, um den "dritten Prädiktor" zu ermitteln. Ich weiß allerdings nicht, wie das in R funktioniert. Für SPSS ist hier der COMPUTE-Befehl angegeben.
Die Regressionsanalyse soll daraufhin wie folgt verlaufen:
zy = b1*zx + b2*zm + b3*zm*zx + b0
Leider verstehe ich nicht was genau wofür b steht und was b0 sein soll.
Auch hierführ finde ich keine R-Befehle und weiß leider nicht wie das durchzuführen ist.
Vielleicht kann mir ja jemand weiter helfen!
Vielen vielen Dank
INI
ich möchte gerne eine Moderation mit intervallskalierten Variablen testen.
Bisher habe ich bereits herausgefunden, dass ich die AV, UV und den Moderator im ersten Schritt z-transformieren muss. Dies habe ich über den Befehl: scale(Datensatz$Variable, center=TRUE, scale = TRUE) bei allen Variablen vorgenommen.
Nun finde ich leider nicht mehr Informationen zu dem Vorgehen, und vor allem keine R-Befehle. Laut einem Buch soll ich nun die UV mit dem Moderator multiplizieren, um den "dritten Prädiktor" zu ermitteln. Ich weiß allerdings nicht, wie das in R funktioniert. Für SPSS ist hier der COMPUTE-Befehl angegeben.
Die Regressionsanalyse soll daraufhin wie folgt verlaufen:
zy = b1*zx + b2*zm + b3*zm*zx + b0
Leider verstehe ich nicht was genau wofür b steht und was b0 sein soll.
Auch hierführ finde ich keine R-Befehle und weiß leider nicht wie das durchzuführen ist.
Vielleicht kann mir ja jemand weiter helfen!
Vielen vielen Dank
INI
Re: Moderatoranalyse mit intervallskalierten Variablen
Hallo INI,
willkommen im Forum!
Siehe
Du kannst die Schreibung noch verkürzen (ist im Hilfetext von formula erklärt):
Gruß, Jörg
willkommen im Forum!
In Ökonometrielehrbüchern stehen b0, b1, b2, ... für die zu schätzenden Koeffizienten. Deren Werte werden also mit Hilfe eines Schätzverfahrens ermittelt. Bei werden diese Symbole in der Modellformel nicht angegeben:ini hat geschrieben: ↑Mi Mär 20, 2019 9:41 am Bisher habe ich bereits herausgefunden, dass ich die AV, UV und den Moderator im ersten Schritt z-transformieren muss. Dies habe ich über den Befehl: scale(Datensatz$Variable, center=TRUE, scale = TRUE) bei allen Variablen vorgenommen.
Nun finde ich leider nicht mehr Informationen zu dem Vorgehen, und vor allem keine R-Befehle. Laut einem Buch soll ich nun die UV mit dem Moderator multiplizieren, um den "dritten Prädiktor" zu ermitteln. Ich weiß allerdings nicht, wie das in R funktioniert. Für SPSS ist hier der COMPUTE-Befehl angegeben.
Die Regressionsanalyse soll daraufhin wie folgt verlaufen:
zy = b1*zx + b2*zm + b3*zm*zx + b0
Leider verstehe ich nicht was genau wofür b steht und was b0 sein soll.
Auch hierführ finde ich keine R-Befehle und weiß leider nicht wie das durchzuführen ist.
Code: Alles auswählen
zy ~ zx + zm + zm*zx
Code: Alles auswählen
help("formula")
Code: Alles auswählen
lm(mpg ~ cyl + gear + cyl*gear, data=mtcars)
lm(mpg ~ cyl*gear, data=mtcars)
Re: Moderatoranalyse mit intervallskalierten Variablen
Hallo Jörg,
vielen Dank.
Die Regression würde ich also nach folgendem R-Befehl durchführen: lm(mpg ~ cyl*gear, data=mtcars). Das habe ich richtig verstanden, oder?
Zu der z-Transformation habe ich mitterweile unterschiedliche Befehle gefunden und bin daher verunsichert:
1. scale(Datensatz$Variable, center=TRUE, scale = TRUE)
2. Datensatz$Variable_cen<-scale(Datensatz$Variable, scale = FALSE)
Bei der zweiten Version wird offensichtlich eine neue zentrierte Variable erstellt, was generell bestimmt sinnvoll ist. Mich irritiert jedoch, das der eine Befehl center = True und scale = TRUE angibt, während Befehl 2 scale = FALSE nutzt. Über eine Erklärung und Empfehlung wäre ich sehr sehr dankbar !!!
LG
Ini
vielen Dank.
Die Regression würde ich also nach folgendem R-Befehl durchführen: lm(mpg ~ cyl*gear, data=mtcars). Das habe ich richtig verstanden, oder?
Zu der z-Transformation habe ich mitterweile unterschiedliche Befehle gefunden und bin daher verunsichert:
1. scale(Datensatz$Variable, center=TRUE, scale = TRUE)
2. Datensatz$Variable_cen<-scale(Datensatz$Variable, scale = FALSE)
Bei der zweiten Version wird offensichtlich eine neue zentrierte Variable erstellt, was generell bestimmt sinnvoll ist. Mich irritiert jedoch, das der eine Befehl center = True und scale = TRUE angibt, während Befehl 2 scale = FALSE nutzt. Über eine Erklärung und Empfehlung wäre ich sehr sehr dankbar !!!
LG
Ini
Re: Moderatoranalyse mit intervallskalierten Variablen
Hallo Ini,
Das bedeutet, dass die Parameter center= und scale= Standardwerte haben. Solche Parameter müssen nicht gesetzt werden, aber man darf sie setzen. Bei 1. hätte also
ausgereicht, allerdings erfolgt so noch keine Zuweisung des Ergebnisses. Bezüglich der Parameter von Funktionen herrscht in R ausnahmslos call-by-value.
Die Variante 2. ist identisch mit
(Reihefolge von benannten Parametern ist beliebig)
Zu einem Fehler führt:
denn True ist nicht TRUE
Gruß, Jörg
nicht nur "würde", sondern Du kannst es direkt ausprobieren, weil der Datensatz mtcars standardmäßig mit R migeliefert wird.
Bitte rufe den Hilfetext von scale() auf! Dort steht im Abschnitt UsageZu der z-Transformation habe ich mitterweile unterschiedliche Befehle gefunden und bin daher verunsichert:
1. scale(Datensatz$Variable, center=TRUE, scale = TRUE)
2. Datensatz$Variable_cen<-scale(Datensatz$Variable, scale = FALSE)
Bei der zweiten Version wird offensichtlich eine neue zentrierte Variable erstellt, was generell bestimmt sinnvoll ist. Mich irritiert jedoch, das der eine Befehl center = True und scale = TRUE angibt, während Befehl 2 scale = FALSE nutzt. Über eine Erklärung und Empfehlung wäre ich sehr sehr dankbar !!!
Code: Alles auswählen
scale(x, center = TRUE, scale = TRUE)
Code: Alles auswählen
scale(Datensatz$Variable)
Die Variante 2. ist identisch mit
Code: Alles auswählen
Datensatz$Variable_cen<-scale(Datensatz$Variable, scale = FALSE, center=TRUE)
Zu einem Fehler führt:
Code: Alles auswählen
scale(Datensatz$Variable, center = True, scale=TRUE)
Gruß, Jörg
Re: Moderatoranalyse mit intervallskalierten Variablen
Hey Jörg,
ich verstehe leider noch nicht welche der beiden Funktionen ich nun nutzen muss.
Ich habe mir den Hilfetext von scale() angeguckt, und würde daher den 1. Befehl nutzen, da dieser dort ja auch angezeigt wird.
Was mir aber noch unklar ist, ist wo der Unterschied zwischen einer Standardisierung/Zentrierung und einer z-Transformation liegt?!
Der Befehl scheint nämlich für eine Zentrierung sinnvoll zu sein. Aber führt er auch die z-Transformation durch, die ich laut meinem Buch benötige?
Ich habe vorher noch nie mit R gearbeitet, deswegen ist das für mich leider alles sehr abstrakt.
Dank & Gruß
Ini
ich verstehe leider noch nicht welche der beiden Funktionen ich nun nutzen muss.
Ich habe mir den Hilfetext von scale() angeguckt, und würde daher den 1. Befehl nutzen, da dieser dort ja auch angezeigt wird.
Was mir aber noch unklar ist, ist wo der Unterschied zwischen einer Standardisierung/Zentrierung und einer z-Transformation liegt?!
Der Befehl scheint nämlich für eine Zentrierung sinnvoll zu sein. Aber führt er auch die z-Transformation durch, die ich laut meinem Buch benötige?
Ich habe vorher noch nie mit R gearbeitet, deswegen ist das für mich leider alles sehr abstrakt.
Dank & Gruß
Ini
Re: Moderatoranalyse mit intervallskalierten Variablen
Hallo Ini
Welche zweite Funktion meinst Du noch?
Gruß, Jörg
ich sehe nur eine Funktion: scale()
Welche zweite Funktion meinst Du noch?
Laut Hilfetext von scale() (Abschnitt Details) ist das die z-Transformation (Genaugenommen ist es die t-Transformation, da durch die empirische Standardabweichung dividiert wird. Falls Du a-priori das sigma der Grudgesamtheit kennst, kannst Du es beim Aufruf von scale() verwenden, um eine z-Transformation durchzuführen.)Was mir aber noch unklar ist, ist wo der Unterschied zwischen einer Zentrierung und einer z-Transformation liegt?!
Code: Alles auswählen
summary(scale(mtcars$mpg))
Ist Dir das sigma bekannt oder musst Du es schätzen (der passende Schätzer ist die empirische Standardabweichung)?Der Befehl scheint nämlich für eine Zentrierung sinnvoll zu sein. Aber führt er auch die z-Transformation durch, die ich laut meinem Buch benötige?
Ist schon in Ordnung.Ich habe vorher noch nie mit R gearbeitet, deswegen ist das für mich leider alles sehr abstrakt.
Gruß, Jörg
Re: Moderatoranalyse mit intervallskalierten Variablen
https://de.wikipedia.org/wiki/Zentrierung_(Statistik)Was mir aber noch unklar ist, ist wo der Unterschied zwischen einer Standardisierung/Zentrierung und einer z-Transformation liegt?!
https://de.wikipedia.org/wiki/Standardi ... Statistik)
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Moderatoranalyse mit intervallskalierten Variablen
Hey Jörg,
1. scale(Datensatz$Variable, center=TRUE, scale = TRUE)
2. Datensatz$Variable_cen<-scale(Datensatz$Variable, scale = FALSE)
3. Datensatz&Variable<-scale(Datensatz$Variable)
LG
Ini
Funktion ist wohl der falsche Ausdruck. Aber ich habe online mittlerweile drei verschiedene Möglichkeiten gefunden den scale-Befehl anzuwenden. Leider weiß ich aber nicht, wie ich rausfinden kann, welche Version ich in meinem Fall brauche:ich sehe nur eine Funktion: scale()
Welche zweite Funktion meinst Du noch?
1. scale(Datensatz$Variable, center=TRUE, scale = TRUE)
2. Datensatz$Variable_cen<-scale(Datensatz$Variable, scale = FALSE)
3. Datensatz&Variable<-scale(Datensatz$Variable)
Ich kenne die Standardabweichung der Grundgesamtheit nicht, kann aber die Standardabweichung der Strichprobe für die unterschiedlichen Variablen errechnen.Ist Dir das sigma bekannt oder musst Du es schätzen (der passende Schätzer ist die empirische Standardabweichung?
LG
Ini
Re: Moderatoranalyse mit intervallskalierten Variablen
Hallo Ini,
Das ist dann wie in dem 1. oder 3. Aufruf - in beiden gilt auch center=TRUE (in 1. explizit, in 3. wegen des Standardwertes von center=).
Der letzte Unterschied (nämlich Datensatz&Variable<- ...) hat nichts mit der Funktion scale() zu tun, sondern damit, was Du mit dem Ergebnis machen möchtest:
a) einfach nur auf dem Bildschirm ausgeben lassen - das ist so bei 1.
b) später weiter verarbeiten und deshalb irgendwo speichen - dann eine Zuweisung wie in 3.
(Achtung: bei 3. wird die ursprüngliche Variable überschrieben, bei 2. wird eine neue angelegt.
- auch hier musst Du Dich entscheiden, wie Du es möchtest.)
- ich habe aber auch schon oft gelesen, dass nicht unterschieden wird zur z-Transformation.
Du willst diese Transformation für verschiedene Variablen Deines Datensatzes durchführen?
Kannst Du uns bitte die Struktur des Datensatzes zeigen, das ist der Output von:
und die entsprechenden Variablen nennen?
Es gibt da etwas in R, mit dem Du die Transformation für mehrere Variablen in einem Rutsch durchführen kannst ...
Gruß, Jörg
um zu z- bzw. t-transformierten Werte zu kommen, muss scale=TRUEini hat geschrieben: ↑Mi Mär 20, 2019 2:17 pm ... Aber ich habe online mittlerweile drei verschiedene Möglichkeiten gefunden den scale-Befehl anzuwenden. Leider weiß ich aber nicht, wie ich rausfinden kann, welche Version ich in meinem Fall brauche:
1. scale(Datensatz$Variable, center=TRUE, scale = TRUE)
2. Datensatz$Variable_cen<-scale(Datensatz$Variable, scale = FALSE)
3. Datensatz&Variable<-scale(Datensatz$Variable)
Das ist dann wie in dem 1. oder 3. Aufruf - in beiden gilt auch center=TRUE (in 1. explizit, in 3. wegen des Standardwertes von center=).
Der letzte Unterschied (nämlich Datensatz&Variable<- ...) hat nichts mit der Funktion scale() zu tun, sondern damit, was Du mit dem Ergebnis machen möchtest:
a) einfach nur auf dem Bildschirm ausgeben lassen - das ist so bei 1.
b) später weiter verarbeiten und deshalb irgendwo speichen - dann eine Zuweisung wie in 3.
(Achtung: bei 3. wird die ursprüngliche Variable überschrieben, bei 2. wird eine neue angelegt.
- auch hier musst Du Dich entscheiden, wie Du es möchtest.)
also ist es eigentlich eine t-TransformationIch kenne die Standardabweichung der Grundgesamtheit nicht, kann aber die Standardabweichung der Stichprobe für die unterschiedlichen Variablen errechnen.Ist Dir das sigma bekannt oder musst Du es schätzen (der passende Schätzer ist die empirische Standardabweichung?
- ich habe aber auch schon oft gelesen, dass nicht unterschieden wird zur z-Transformation.
Du willst diese Transformation für verschiedene Variablen Deines Datensatzes durchführen?
Kannst Du uns bitte die Struktur des Datensatzes zeigen, das ist der Output von:
Code: Alles auswählen
str(Datensatz)
Es gibt da etwas in R, mit dem Du die Transformation für mehrere Variablen in einem Rutsch durchführen kannst ...
Gruß, Jörg
Re: Moderatoranalyse mit intervallskalierten Variablen
Hey Jörg,
Kontrolle, Habitus, ENJOY, N2B, NfP, Druck und FoMO
LG
Ini
Gibt es auch die Möglichkeit eine Kombination zu erstellen? Also beipsielsweise Datensatz$Variable_cen<-scale(Datensatz$Variable) oder auch in Anlehnung an die 1. Möglichkeit: Datensatz$Variable_cen<-scale(Datensatz$Variable, center = TRUE, scale = TRUE) ?Achtung: bei 3. wird die ursprüngliche Variable überschrieben, bei 2. wird eine neue angelegt.
- auch hier musst Du Dich entscheiden, wie Du es möchtest.
Soll ich das Ergebnis des Outputs dann einfach hier reinkopieren?Kannst Du uns bitte die Struktur des Datensatzes zeigen
Mein Datensatz besteht aus 284 Fällen. Die Variablen die z-Transformiert werden sollen lauten:und die entsprechenden Variablen nennen?
Kontrolle, Habitus, ENJOY, N2B, NfP, Druck und FoMO
LG
Ini