Seite 1 von 2
Moderatoranalyse mit intervallskalierten Variablen
Verfasst: Mi Mär 20, 2019 9:41 am
von ini
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
Re: Moderatoranalyse mit intervallskalierten Variablen
Verfasst: Mi Mär 20, 2019 10:59 am
von jogo
Hallo INI,
willkommen im Forum!
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.
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:
Siehe
Du kannst die Schreibung noch verkürzen (ist im Hilfetext von
formula erklärt):
Code: Alles auswählen
lm(mpg ~ cyl + gear + cyl*gear, data=mtcars)
lm(mpg ~ cyl*gear, data=mtcars)
Gruß, Jörg
Re: Moderatoranalyse mit intervallskalierten Variablen
Verfasst: Mi Mär 20, 2019 11:33 am
von ini
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
Re: Moderatoranalyse mit intervallskalierten Variablen
Verfasst: Mi Mär 20, 2019 11:51 am
von jogo
Hallo Ini,
ini hat geschrieben: Mi Mär 20, 2019 11:33 am
Die Regression würde ich also nach folgendem R-Befehl durchführen: lm(mpg ~ cyl*gear, data=mtcars). Das habe ich richtig verstanden, oder?
nicht nur "würde", sondern Du kannst es direkt ausprobieren, weil der Datensatz
mtcars standardmäßig mit R migeliefert wird.
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 !!!
Bitte rufe den Hilfetext von
scale() auf! Dort steht im Abschnitt
Usage
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
Code: Alles auswählen
Datensatz$Variable_cen<-scale(Datensatz$Variable, scale = FALSE, center=TRUE)
(Reihefolge von benannten Parametern ist beliebig)
Zu einem Fehler führt:
denn
True ist nicht
TRUE
Gruß, Jörg
Re: Moderatoranalyse mit intervallskalierten Variablen
Verfasst: Mi Mär 20, 2019 1:19 pm
von ini
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
Re: Moderatoranalyse mit intervallskalierten Variablen
Verfasst: Mi Mär 20, 2019 1:37 pm
von jogo
Hallo Ini
ini hat geschrieben: Mi Mär 20, 2019 1:19 pm
ich verstehe leider noch nicht welche der beiden Funktionen ich nun nutzen muss.
ich sehe nur eine Funktion: scale()
Welche zweite Funktion meinst Du noch?
Was mir aber noch unklar ist, ist wo der Unterschied zwischen einer Zentrierung und einer z-Transformation liegt?!
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.)
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 Dir das sigma bekannt oder musst Du es schätzen (der passende Schätzer ist die empirische Standardabweichung)?
Ich habe vorher noch nie mit R gearbeitet, deswegen ist das für mich leider alles sehr abstrakt.
Ist schon in Ordnung.
Gruß, Jörg
Re: Moderatoranalyse mit intervallskalierten Variablen
Verfasst: Mi Mär 20, 2019 1:42 pm
von bigben
Was mir aber noch unklar ist, ist wo der Unterschied zwischen einer Standardisierung/Zentrierung und einer z-Transformation liegt?!
https://de.wikipedia.org/wiki/Zentrierung_(Statistik)
https://de.wikipedia.org/wiki/Standardi ... Statistik)
Re: Moderatoranalyse mit intervallskalierten Variablen
Verfasst: Mi Mär 20, 2019 2:17 pm
von ini
Hey Jörg,
ich sehe nur eine Funktion: scale()
Welche zweite Funktion meinst Du noch?
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:
1. scale(Datensatz$Variable, center=TRUE, scale = TRUE)
2. Datensatz$Variable_cen<-scale(Datensatz$Variable, scale = FALSE)
3. Datensatz&Variable<-scale(Datensatz$Variable)
Ist Dir das sigma bekannt oder musst Du es schätzen (der passende Schätzer ist die empirische Standardabweichung?
Ich kenne die Standardabweichung der Grundgesamtheit nicht, kann aber die Standardabweichung der Strichprobe für die unterschiedlichen Variablen errechnen.
LG
Ini
Re: Moderatoranalyse mit intervallskalierten Variablen
Verfasst: Mi Mär 20, 2019 2:36 pm
von jogo
Hallo Ini,
ini 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)
um zu z- bzw. t-transformierten Werte zu kommen, muss
scale=TRUE
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.)
Ist Dir das sigma bekannt oder musst Du es schätzen (der passende Schätzer ist die empirische Standardabweichung?
Ich kenne die Standardabweichung der Grundgesamtheit nicht, kann aber die Standardabweichung der Stichprobe für die unterschiedlichen Variablen errechnen.
also ist es eigentlich eine t-Transformation
- 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
Re: Moderatoranalyse mit intervallskalierten Variablen
Verfasst: Do Mär 21, 2019 10:52 am
von ini
Hey Jörg,
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.
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) ?
Kannst Du uns bitte die Struktur des Datensatzes zeigen
Soll ich das Ergebnis des Outputs dann einfach hier reinkopieren?
und die entsprechenden Variablen nennen?
Mein Datensatz besteht aus 284 Fällen. Die Variablen die z-Transformiert werden sollen lauten:
Kontrolle, Habitus, ENJOY, N2B, NfP, Druck und FoMO
LG
Ini