Moderatoranalyse mit intervallskalierten Variablen

Modelle zur Korrelations- und Regressionsanalyse

Moderator: EDi

jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Moderatoranalyse mit intervallskalierten Variablen

Beitrag von jogo »

Hallo Ini,
ini hat geschrieben: Do Mär 21, 2019 10:52 am
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) ?
was meinst Du mit Kombination? Wenn Du eine neue Spalte erstellst, geht die ursprüngliche Spalte nicht verloren.
Kannst Du uns bitte die Struktur des Datensatzes zeigen
Soll ich das Ergebnis des Outputs dann einfach hier reinkopieren?
ja
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
Also kann man schon mal:

Code: Alles auswählen

Spalten <- c("Kontrolle", "Habitus", "ENJOY", "N2B", "NfP", "Druck", "FoMO")
definieren, um die Namen später zu verwenden.

Am Ende kann es dann so aussehen:

Code: Alles auswählen

str(mtcars)
Spalten <- c("cyl", "drat", "wt")
Cen <- lapply(mtcars[, Spalten], FUN=scale)
names(Cen) <- paste0(Spalten, "_cen")
Daten <- cbind(mtcars, Cen)
str(Daten)
Du kannst dieses Beispiel bei Dir laufen lassen (der Dataframe mtcars ist vorhanden).

Gruß, Jörg
ini
Beiträge: 9
Registriert: Mi Mär 20, 2019 8:43 am

Re: Moderatoranalyse mit intervallskalierten Variablen

Beitrag von ini »

Hey Jörg,
was meinst Du mit Kombination? Wenn Du eine neue Spalte erstellst, geht die ursprüngliche Spalte nicht verloren.
Ich möchte die Variablen, die z-Transformiert werden gerne als neue Variablen anlegen. Kann ich dann diesen Befehl verwenden: Datensatz$Variable_cen<-scale(Datensatz$Variable, center = TRUE, scale = TRUE) ? Er ist quasi eine Kombination aus Teilen des 1. und 3. Befehls, die ich in dem vorletzten Posting beschrieben habe.
Du kannst dieses Beispiel bei Dir laufen lassen (der Dataframe mtcars ist vorhanden).


Ich habe das Beispiel getestet, bin aber verwundert, dass sich die Werte für die transformierten Variablen cyl, drat und wt nicht verändert haben. Ich bin davon ausgegangen, dass sich die Werte durch die z-Transformation ändern, da man von den einzelnen Werte doch zunächst den jeweiligen Mittelwert subtrahiert und danach durch die Standardabweichung teilt..

LG
Ini
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Moderatoranalyse mit intervallskalierten Variablen

Beitrag von jogo »

Hallo Ini,
ini hat geschrieben: Fr Mär 22, 2019 7:48 am
was meinst Du mit Kombination? Wenn Du eine neue Spalte erstellst, geht die ursprüngliche Spalte nicht verloren.
Ich möchte die Variablen, die z-Transformiert werden gerne als neue Variablen anlegen. Kann ich dann diesen Befehl verwenden: Datensatz$Variable_cen<-scale(Datensatz$Variable, center = TRUE, scale = TRUE) ? Er ist quasi eine Kombination aus Teilen des 1. und 3. Befehls, die ich in dem vorletzten Posting beschrieben habe.
ja, Du kannst Datensatz$Variable_cen<-scale(Datensatz$Variable, center = TRUE, scale = TRUE) oder Du kann mit völlig gleicher Wirkung Datensatz$Variable_cen<-scale(Datensatz$Variable) verwenden, weil der Standardwert für die beiden Parameter jeweils TRUE ist.
Du kannst dieses Beispiel bei Dir laufen lassen (der Dataframe mtcars ist vorhanden).

Ich habe das Beispiel getestet, bin aber verwundert, dass sich die Werte für die transformierten Variablen cyl, drat und wt nicht verändert haben. Ich bin davon ausgegangen, dass sich die Werte durch die z-Transformation ändern, da man von den einzelnen Werte doch zunächst den jeweiligen Mittelwert subtrahiert und danach durch die Standardabweichung teilt..
Die Funktion scale() nimmt keine Veränderungen an der ursprünglichen Variablen vor, denn in R herrscht call-by-value https://de.wikipedia.org/wiki/Wertparameter
(Ich hatte schon am Mittwoch auf call-by-value hingewiesen. Hast Du Dich nicht mit dem Begriff auseinandergesetzt?)
Die Funktion scale() nimmt den Vektor der ursprünglichen Variablen und liefert als Ergebnis des Funktionsaufrufes den transformierten Vektor zurück.
Bitte sieh Dir in dem Beispiel den generierten Dataframe Cen an bzw. im Dataframe Daten die im Vergleich zu mtcars neuen Spalten.

Bitte experimentiere auch selber, denn ich weiß langsam nicht mehr, was ich noch schreiben soll :!: :?
Vielleicht noch ein letztes kleines Beispiel zum Thema call-by-value:

Code: Alles auswählen

meinQuadrat <- function(x) { x <- x*x; return(77) }
# oder: meinQuadrat <- function(y) { x <- y*y; return(77) } # macht keinen Unterschied in der Wirkung
x <- 5
meinQuadrat(x)
x
Gruß, Jörg
ini
Beiträge: 9
Registriert: Mi Mär 20, 2019 8:43 am

Re: Moderatoranalyse mit intervallskalierten Variablen

Beitrag von ini »

Hey Jörg,

vielen Dank!
Keine Sorge, ich habe nebenbei natürlich unterschiedliche Dinge in R ausprobiert und bin jetzt sicher alles soweit verstanden zu haben und durchführen zu können.

Danke für die Geduld ;).

LG
Ini
Antworten