Lineare Regression mit Dummy-Variable

Modelle zur Korrelations- und Regressionsanalyse

Moderator: EDi

maxi1234
Beiträge: 19
Registriert: Do Jan 10, 2019 5:59 pm

Lineare Regression mit Dummy-Variable

Beitrag von maxi1234 »

Hallo liebes Forum,

ich muss in meiner Hausarbeit forschen, ob die monatliche Rendite des Öls in den Monaten November bis April höher ausfällt, als in den Monaten Mai bis September. Hatte dazu im Internet (find die Seite aber nicht mehr) eine Regression gefunden, die wie folgt aufgebaut war:
r_Öl= µ+ β1* D_test + ui
r_Öl = Rendite des Öls
µ & β1= Konstanten
D_test = Dummy-Variable mit 0 und 1
u_i = Fehlerterm

Wie stelle ich diese Regression jetzt in R dar? habe zuvor die Renditen berechnet und ihnen eine 0 bzw. 1 zugeordnet, je nachdem in welchen Monaten die Renditen angefallen sind. Meine Idee sähe nun wie folgt aus:

Code: Alles auswählen

lm(Rendite_Öl~D_test). 
Wäre das richtig?

Vielen Dank schon einmal.
bigben
Beiträge: 2781
Registriert: Mi Okt 12, 2016 9:09 am

Re: Lineare Regression mit Dummy-Variable

Beitrag von bigben »

maxi1234 hat geschrieben: So Mär 01, 2020 4:59 pm r_Öl= µ+ β1* D_test + ui
[...]

Code: Alles auswählen

lm(Rendite_Öl~D_test). 
Wäre das richtig?
Naja, das liest sich nach einem verklausulierten t-Test an, aber ja, das kannst Du so machen.
µ wird R Dir als Estimate für (Intercept) und β1 als Estimate für D_test ausgeben, wenn Du

Code: Alles auswählen

summary(lm(Rendite_Öl~D_test))
anforderst.

Zum Vergleich lm und t.test:

Code: Alles auswählen

werte <- data.frame(werte = c(runif(20, 0, 70), runif(20, 30, 100)),
                    gruppe = c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                               1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1))
summary(lm(werte ~ gruppe, data = werte))
t.test(werte ~ gruppe, data = werte)
plot(werte ~ gruppe, data = werte)
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Lineare Regression mit Dummy-Variable

Beitrag von jogo »

Hallo Maxi,

so wie ich Dich verstehe möchtest Du:

Code: Alles auswählen

lm(Rendite_Öl~ as.factor(D_test))  ### bzw.
summary(lm(Rendite_Öl~ as.factor(D_test)))
Das entspricht (Bernhard hat es schon geschrieben) einem t-Test.
Man kann es auch als Varianzanalyse formulieren:

Code: Alles auswählen

aov(Rendite_Öl~ as.factor(D_test))  ### bzw.
summary(aov(Rendite_Öl~ as.factor(D_test)))
Gruß, Jörg
maxi1234
Beiträge: 19
Registriert: Do Jan 10, 2019 5:59 pm

Re: Lineare Regression mit Dummy-Variable

Beitrag von maxi1234 »

Ah super. Vielen Dank.

Kann gerade nur mit dem Handy on, aber das hat mir schon sehr geholfen. Hab dazu morgen noch eine Frage, aber ich meld mich dann noch mal :D
maxi1234
Beiträge: 19
Registriert: Do Jan 10, 2019 5:59 pm

Re: Lineare Regression mit Dummy-Variable

Beitrag von maxi1234 »

So. Habs nicht früher geschafft. Also hier sind die fragen die ich noch habe:

Wenn ich einen T-Test statt der Regression durchführen würde, wie würde das denn dann gehen?

Haben das im ersten Semester gemacht, aber das ist schon nen bisschen her. Würde dann wenn ich das richtig in Erinnerung habe einen gepaarten zweiseitigen Zweistichproben-T-Test durchführen (der ja eig. dann ein Einstichproben-T-Test oder so ist). Würde dann schauen, ob der Mittelwert von Null abweicht, oder eben nicht.

Formel würde dann so aussehen:

Code: Alles auswählen

t.test(Öl_T_Test$Rendite_Öl, mu=0, alternative= "two.sided", data=Öl)
Außerdem habe ich noch die Frage, ob ich irgendwie überprüfen kann, ob der Effekt mit der Zeit schwächer wird? Hatte mal was mit cohens'd gehört. Kann man da für bestimmte Zeiträume das Cohen's D Berechnen und mit diesem dann eine Aussage treffen?

Vielen Dank :D
bigben
Beiträge: 2781
Registriert: Mi Okt 12, 2016 9:09 am

Re: Lineare Regression mit Dummy-Variable

Beitrag von bigben »

Hallo Maxi,

Dein einleitender Post enthält nichts von verbundenen Stichproben. Jetzt willst Du mit verbundenen Stichproben rechnen. Nur eines von beiden kann Deinen Daten und Deiner Situation angemessen sein. Dir jetzt weitere Code zu geben, solange unklar ist, was Du machen willst, ist nicht sinnvoll bis hinzu gefährlich. Bitte poste eine richtige Beschreibung Deines Problems und Deine Erläuterungen, was an diesen Stichproben die Verbundenheit ausmacht.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
maxi1234
Beiträge: 19
Registriert: Do Jan 10, 2019 5:59 pm

Re: Lineare Regression mit Dummy-Variable

Beitrag von maxi1234 »

Hallo Bigben,

das Ding ist, ich habe doch die zwei Zeitperioden (November bis April und Mai bis Oktober). Das stellt ja ein Zeitraum dar. Das wären dann die zwei Stichproben aus denen ich ziehe. und ich würde dann jetzt zwischen den beiden Perioden eine Differenz bilden und schauen, ob die Mittelwerte jeweils nicht von Null abweichen. Die Alternativhypothese würde dann lauten, dass der Mittelwert von Null abweicht.

Kann man das nicht so machen?

Die Ergebnisse müssten dann der der Regression ähneln.
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Lineare Regression mit Dummy-Variable

Beitrag von jogo »

Hallo Maxi,

kannst Du uns ein reproduzierbares Beispiel geben?
viewtopic.php?f=20&t=11

... oder wenigstens die Struktur Deiner Daten zeigen.

Bei gepaarten Stichproben musst Du beim t-Test paired=TRUE setzen.

Code: Alles auswählen

set.seed(42)
x1 <- rnorm(5); x2 <- rnorm(5, mean=2)
D <- data.frame(ID=1:5, x=c(x1, x2), Zeit=gl(2, 5))

t.test(x1, x2, paired=TRUE) ## so ist es zweifellos richtig
t.test(x ~ Zeit, data=D, paired=TRUE) ## liefert das gleiche Ergebnis

t.test(x ~ Zeit, data=D) ## dies liefert etwas Anderes
t.test(x1, x2) ## nämlich nochmal dies
Gruß, Jörg
maxi1234
Beiträge: 19
Registriert: Do Jan 10, 2019 5:59 pm

Re: Lineare Regression mit Dummy-Variable

Beitrag von maxi1234 »

Ist etw. komplizierter, aber ich hab mal ein Beispiel gemacht:

Ich weiß nicht genau, wie ich hier Daten anhängen kann, deswegen muss ich es leider so machen:

Code: Alles auswählen

Datum	Rendite_oel	Effekt 
01.01.2000	0,02		1
01.02.2000	0,022	1
01.03.2000	0,017	1
01.04.2000	0,015	1
01.05.2000	-0,001	0
01.06.2000	-0,004	0
01.07.2000	0,004	0
01.08.2000	0,001	0
01.09.2000	-0,002	0
01.10.2000	-0,01	0
01.11.2000	0,02		1
01.12.2000	0,015	1
01.01.2001	0,01		1
01.02.2001	0,012	1
01.03.2001	0,007	1
01.04.2001	0,005	1
01.05.2001	-0,011	0
01.06.2001	-0,014	0
01.07.2001	-0,006	0
01.08.2001	-0,009	0
01.09.2001	-0,012	0
01.10.2001	-0,02	0
01.11.2001	0,01		1
01.12.2001	0,005	1
01.01.2002	0,03		1
01.02.2002	0,02		1
01.03.2002	0,01		1
01.04.2002	0,005	1
01.05.2002	-0,02	0
01.06.2002	-0,01	0
01.07.2002	-0,03	0
01.08.2002	-0,01	0
01.09.2002	0,02		0
01.10.2002	0,01		0
01.11.2002	0,04		1
01.12.2002	0,03		1
01.01.2003	0,01		1
01.02.2003	0,01		1
01.03.2003	0,02		1
01.04.2003	0,03		1
01.05.2003	-0,01	0
01.06.2003	-0,02	0
01.07.2003	0,001	0
01.08.2003	0,002	0
01.09.2003	0,003	0
01.10.2003	0,001	0
01.11.2003	0,05		1
01.12.2003	0,02		1
Dann hab ich die Summe der jeweiligen Jahre für die Monate November-April genommen und durch 6 geteilt und für die Monate Mai-Oktober hab ich das gleiche gemacht. Daraus ergibt sich:

Code: Alles auswählen

	Periode1		Periode2
2000	0,018166667	-0,002
2001	0,008166667	-0,012
2002	0,0225		-0,006666667
2003	0,023333333	-0,003833333
Wenn ich das beides voneinander abziehe erhalte ich eine Differenz von:

Code: Alles auswählen

	Differenz
2000 0,020166667
2001 0,020166667
2002 0,029166667
2003 0,027166667
Dann der P-Wert mit Regression:

Code: Alles auswählen

summary(lm(Rendite_oel~Effekt, data=Test))
Die Variable Effekt hat einen P-Wert von 1,55e^-9 => signifikant => Effekt

Dann mein Versuch des T-Tests:

Code: Alles auswählen

t.test(Test$Diff,mu=0,alternative="two.sided",data=Test)
P-Wert liefert 0,001949 => signifikant => Effekt

Kann man das nicht so machen?
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Lineare Regression mit Dummy-Variable

Beitrag von jogo »

Hallo Maxi,

ist soweit richtig. Nur zwei Anmerkungen:
1.
Das arithmetische Mittel von Änderungsraten ist eine Näherungsformel.
Sachgerecht müsste man von den Änderungsfaktoren das geometrische Mittel bilden.
2.
Dein Ergebnis ist abhängig von der Unterteilung des Jahres in die beiden Perioden. Wenn anders unterteilt wird (z.B. P1='Jan. - Juni', P2='Juli - Dez.'), bekommst Du eventuell ein anderes Ergebnis.

Gruß, Jörg
Antworten