Seite 1 von 1

z Transformation für Interaktionsterme?

BeitragVerfasst: Mi 12. Jun 2019, 21:15
von kleinersven
Hallo,
ich habe gerade in einem Paper gelesen, dass dort eine z Transformation der Daten stattfand bevor ein Interaktionsterm in einem linearen Modell gemacht wurde.
Ist das zwingend notwendig? Ich habe nämlich auch schon einige Interaktionsterme y~a*b+c in meinen linearen Modellen gemacht und diese dann immer durch
Model 1: y~a*b+c
Model 2: y~a+b+c
Anova (model1, model2)
die Signifikanz bestimmt.
Ist das denn so nicht korrekt?
Danke!
Gruß,
kleinersven

Re: z Transformation für Interaktionsterme?

BeitragVerfasst: Do 13. Jun 2019, 02:55
von strukturmarionette
Hi,

schon einige Interaktionsterme y~a*b+c in meinen linearen Modellen gemacht

- was ist dort dein Interaktionsterm?

Gruß
S.

Re: z Transformation für Interaktionsterme?

BeitragVerfasst: Sa 15. Jun 2019, 15:29
von kleinersven
Hi,
danke für die Nachricht.
also y~a*b --> das * indiziert doch den Interaktionsterm oder? Ich habe es in R gerechnet.

Re: z Transformation für Interaktionsterme?

BeitragVerfasst: Sa 15. Jun 2019, 15:41
von PonderStibbons
Nur a*b im Modell geht nicht, a und b müssen auch rein.

Mit freundlichen Grüßen

PonderStibbons

Re: z Transformation für Interaktionsterme?

BeitragVerfasst: Sa 15. Jun 2019, 21:01
von bele
Oh je, jetzt wird es softwarespezifisch: R verwendet für die Codierung eine eigene Sprache, das sogenannte formula-Interface. Wenn man in R in einem Regressionsaufruf y ~ a * b schreibt und a und b sind Variablen(Spalten), dann wird in der Tat ein Modell mit a, b, a*b und einem Intercept gerechnet. Das folgende Beispiel gibt alle vier Koeffizienten aus:

Code: Alles auswählen
a <- c(1, 2, 3, 4, 5, 6, 7, 8, 9)
b <- c(3, 2, 3, 2, 1, 4, 3, 2, 1)
y <- c(4, 6, 12,9, 6,30,15,20, 10)

summary(lm(y ~ a * b))


@kleinersven Das formula interface ist ein sehr spezifisches Feature von R. Du darfst nicht erwarten, dass das jemand außerhalb der R-Welt versteht. Lingua franca ist mathematische Notation, nicht R.
Und nein: Generell braucht man bei linearen Regressionen nicht immer alle Terme zu standardisieren. Es kann aber die Vergleichbarkeit verschiedener Terme verbessern. Wenn sich Deine Fragestellung ohne Standardisierung beantworten lässt, dann lass die Standardisierung weg.

LG,
Bernhard

Re: z Transformation für Interaktionsterme?

BeitragVerfasst: So 16. Jun 2019, 14:23
von kleinersven
Vielen Dank für die Antwort Bernhard!
Noch eine Frage:
Macht es einen Unterschied ob ich
y~1+a*b oder
y~a*b rechne?
Weil ich habe das nun schon unterschiedlich gesehen (manche schreiben am Anfang noch eine 1+ und manche nicht) aber wenn ich beides in R eingebe habe ich die gleichen Ergebnisse.
Und woher weiß ich denn, ob ich meine Fragestellung auch ohne Standardisierung beantworten kann?
Müssen meine Daten normalverteilt sein für die linearen Modelle?
Sorry für die vielen Fragen aber ich bin noch neu damit und daher sehr unsicher.

Re: z Transformation für Interaktionsterme?

BeitragVerfasst: So 16. Jun 2019, 17:55
von bele
kleinersven hat geschrieben:Macht es einen Unterschied ob ich
y~1+a*b oder
y~a*b rechne?


Nö. Im einen Fall schreibst Du dazu, dass Du einen Intercept haben willst, im anderen bekommst Du einen Intercept, weil das die Voreinstellung ist.
Den entscheidenden Text zu den Möglichkeiten und Varianten kannst Du lesen, wenn Du in R folgendes eingibst:
Code: Alles auswählen
help("formula")


Und woher weiß ich denn, ob ich meine Fragestellung auch ohne Standardisierung beantworten kann?


Über die Fragestellung nachdenken, über die Methode nachdenken, gucken, ob beides zusammen passt. Wenn Nachdenken gar nicht weiter hilft, Fragestellung und Methode hier im Forum vorstellen, gerne unter Berücksichtigung von nutzung-des-forums-f44/das-musste-mal-gepostet-werden-t6682.html

Müssen meine Daten normalverteilt sein für die linearen Modelle?


Nein. Natürlich wäre es schön, wenn die Daten tatsächlich zu den Annahmen eines linearen Modells passen würden, wenn beispielsweise die Residuen normalverteilt wären und nicht irgendwelche besonders einflussreichen Einzelpunkte das Modell verzerren. Wenn die den Rückgabewert von lm() an die Funktion plot übergibst, also etwa so:
Code: Alles auswählen
plot(lm(rnorm(10) ~ runif(10)))

dann zeichnet R Dir nacheinander 4 sog. diagnostische Plots. Wenn Du die zurate ziehst, dann bist Du in Sachen Modellprüfung schon ziemlich weit vorne mit dabei : https://data.library.virginia.edu/diagnostic-plots/

LG,
Bernhard