Lineare Regression mit Dummy und Multiplikation

Modelle zur Korrelations- und Regressionsanalyse

Moderator: EDi

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

Lineare Regression mit Dummy und Multiplikation

Beitrag von maxi1234 »

Hallo liebes Forum, mein Problem ist, dass ich unten dargestelltes Modell habe und mir nicht sicher bin, wie ich dieses in R darstellen kann. Ich habe jetzt folgende zwei Terme:

I) Ölrendite = a + b*Aktienrendite + Fehlerterm
II) b = c0 + c1*Dummy1 + c2*Dummy2 + c3*Dummy3

(b besteht aus den Parametern c0,c1,c2 und c3 und die Dummies stellen Dummy-Variablen dar, die 0 annehmen, wenn der Wert der Aktienrendite unter dem 1%/5%/10%Quantil liegt, bzw. 1, wenn sie darüber liegen).

Code: Alles auswählen

Dummy1 <- test$Dax_1Quantil # (1%Quantil der Aktien)
Dummy2 <- test$Dax_5Quantil # (5%Quantil der Aktien)
Dummy3 <- test$Dax_10Quantil # (10%Quantil der Aktien)
Ich hab jetzt mit Excel eine Tabelle angelegt, die wie folgt aufgebaut ist (nur ein Beispiel, versuche es später ordentlicher darzustellen als Bild oder Tabelle). Beobachtungen habe ich ausreichend, soll heißen so an die ca. 8000:

Code: Alles auswählen

Datum	        Öl_Rendite	Dax_Rendite	Dax_1Quantil	Dax_5Quantil	Dax_10Quantil
24.08.2015       -0,03456           	-0,0535454	1	1	1
05.02.2018	0,023433	       -0,037658585	1	1	1
28.09.2015	-0,04328	       -0,030854895	1	1	1
13.01.2016	0,0483483	       -0,029545        0       1	1
23.03.2018	0,0433283	       -0,0246758       0       1       1
06.04.2018	0,0342323	       -0,022108438	0	1	1
17.05.2017	0,014423423             -0,022643543	0	1	1
Jetzt möchte ich in R das Regressionsmodell darstellen und hatte gedacht, dass das wie folgt aussehen könnte:

Code: Alles auswählen

lm1 <-lm(Öl_Rendite ~ Dax_Rendite + Dummy1 + Dummy2 + Dummy3, data = test) 

Und dann halt den Befehl

Code: Alles auswählen

summary(lm1)
.

Aber ich glaube nicht, bzw. bin mir fast sicher, dass diese R-Formel das oben beschriebene Modell nicht abbildet, da ich ja in der lm-Formel nichts miteinander multipliziere. Mit multiplizieren meine ich, dass man den 2. Term ja in den 1. einsetzen kann.

Sähe dann ja so aus:
Ölrendite = a + [c0 + c1*Dummy1 + c2*Dummy2 + c3*Dummy3]*Aktienrendite + Fehlerterm

Aber wie bekomme ich das in R dargestellt?

Wichtig wäre dann halt die Parameter für c0 bis c3 zu erhalten (also die Parameter aus Term 2), weil ich mit denen weiterarbeiten muss.

Wäre echt nett, wenn mir hier wer weiterhelfen könnte, weil ich gerade echt auf dem Schlauch stehe.

Grüße
Maxi
schubbiaschwilli
Beiträge: 253
Registriert: Di Jun 27, 2017 12:09 pm

Re: Lineare Regression mit Dummy und Multiplikation

Beitrag von schubbiaschwilli »

Gude!
I) Ölrendite = a + b*Aktienrendite + Fehlerterm
II) b = c0 + c1*Dummy1 + c2*Dummy2 + c3*Dummy3
Du kannst einfach Formel II in I einsetzen, und dann darauf deine Regression rechnen lassen:

Code: Alles auswählen

set.seed(42);

n <- 10000

Aktienrendite <- rnorm(n, mean = 0, sd = 1)
Dummy1 <- rbinom(n, 1, 0.5)
Dummy2 <- rbinom(n, 1, 0.5)
Dummy3 <- rbinom(n, 1, 0.5)

c0 <- 5
c1 <- 3
c2 <- 4
c3 <- 7

b <- c0 + c1*Dummy1 + c2*Dummy2 + c3*Dummy3
a <- 2
Fehlerterm <- rnorm(n, mean = 0, sd = 0.1)
Ölrendite <- a + b*Aktienrendite + Fehlerterm

lm1 <-lm(Ölrendite ~ Aktienrendite + Dummy1*Aktienrendite + Dummy2*Aktienrendite + Dummy3*Aktienrendite) 

summary(lm1)

Code: Alles auswählen

Coefficients:
                      Estimate Std. Error  t value Pr(>|t|)    
(Intercept)           2.000910   0.002033  984.020   <2e-16 ***
Aktienrendite         5.000214   0.002028 2465.642   <2e-16 ***
Dummy1                0.001419   0.002022    0.702    0.483    
Dummy2               -0.001141   0.002021   -0.564    0.573    
Dummy3               -0.002164   0.002022   -1.070    0.285    
Aktienrendite:Dummy1  3.003174   0.002009 1494.550   <2e-16 ***
Aktienrendite:Dummy2  4.002349   0.002009 1992.018   <2e-16 ***
Aktienrendite:Dummy3  6.995283   0.002009 3481.534   <2e-16 ***
Dank&Gruß
schubbiaschwilli
maxi1234
Beiträge: 19
Registriert: Do Jan 10, 2019 5:59 pm

Re: Lineare Regression mit Dummy und Multiplikation

Beitrag von maxi1234 »

Das sieht doch schon mal gut aus. Vielen Dank.

Hätte dazu nur noch ein par Fragen:
1) In dem Beispiel unten ist ja a mit 2 schon vorgegeben. Was ist, wenn a nicht bekannt ist? Oder ist das insofern bekannt, als das es sich bei a um den Intercept handelt?
2)Dieser Parameter c0 macht mir noch zu schaffen. Mir ist nicht ganz klar, worum es sich dabei handelt, bzw. wie der in der lm-Formel mit einfließt (es werden ja nur die Dummies angegeben und die Aktienrendite).
3)Sind für mein weiteres Vorgehen ja die Parameter c0, c1,c2 und c3 aus dem 2. Term entscheidend. In dem Output unten, was wären denn dann diese c0- c3 Parameter (also ich brauch wirklich die aus dem 2Term)?

Vielen vielen Dank schon einmal.
Grüße Maxi
schubbiaschwilli
Beiträge: 253
Registriert: Di Jun 27, 2017 12:09 pm

Re: Lineare Regression mit Dummy und Multiplikation

Beitrag von schubbiaschwilli »

Gude!
1) In dem Beispiel unten ist ja a mit 2 schon vorgegeben. Was ist, wenn a nicht bekannt ist? Oder ist das insofern bekannt, als das es sich bei a um den Intercept handelt?
Irgendwie dreht sich die Frage im Kreis - Also das a wird ja aus den Daten geschätzt. Und ja, und es handelt sich an dieser Stelle um das a, falls die Funktion die Gestalt y = a + b x + ... hat, wie man es in der Literatur manchmal findet. Rechnet mal mit y = alpha + beta x (also mit den Bezeichnungen des Single-Index-Modell von Sharpe) dann ist es das alpha. Rechnet man wie in der Mittelstufe mit y = m x + b dann ist es das b.
2)Dieser Parameter c0 macht mir noch zu schaffen. Mir ist nicht ganz klar, worum es sich dabei handelt, bzw. wie der in der lm-Formel mit einfließt (es werden ja nur die Dummies angegeben und die Aktienrendite).
Du kannst einfach Formel II in I einsetzen - Schreib es einfach mal hin - Und das dürfte auch zur Klärung von Frage 3 hilfreich sein.

Nachtrag:
Ölrendite = a + [c0 + c1*Dummy1 + c2*Dummy2 + c3*Dummy3]*Aktienrendite + Fehlerterm
Ist ja schon gemacht.

Dank&Gruß
schubbiashwilli
maxi1234
Beiträge: 19
Registriert: Do Jan 10, 2019 5:59 pm

Re: Lineare Regression mit Dummy und Multiplikation

Beitrag von maxi1234 »

Ok. Dann hab ich jetzt die Antwort von 1) und 2) verstanden. Und bei Frage 3 würde ich sagen, dass mein c0 in deinem Beispiel 5,0024 ist, c1 0,001419, c2 -0,00115 und c3 -0,00216 ist. Stimmt das? :D
schubbiaschwilli
Beiträge: 253
Registriert: Di Jun 27, 2017 12:09 pm

Re: Lineare Regression mit Dummy und Multiplikation

Beitrag von schubbiaschwilli »

Gude!

Für die c1 - c3 sind es Aktienrendite:Dummy1 -3 - Wusste ich aber auch nicht, weswegen ich das Model erst mal selbst gebaut habe - Sowas hilft ja meist.

Aber was anderes:
Dummy1 <- test$Dax_1Quantil (1%Quantil der Aktien)
Dummy2 <- test$Dax_5Quantil (5%Quantil der Aktien)
Dummy3 <-test$Dax_10Quantil (10%Quantil der Aktien)
Wenn die Bedingungen für Dummy1 erfüllt ist, dann sind sie für Dummy2 und Dummy3 ja erst recht erfüllt, oder verstehe ich das falsch?

Dank&Gruß
schubbiaschwilli
maxi1234
Beiträge: 19
Registriert: Do Jan 10, 2019 5:59 pm

Re: Lineare Regression mit Dummy und Multiplikation

Beitrag von maxi1234 »

Ja. Das ist richtig. Wenn es für Dummy 1 zutrifft, dann auch für Dummy 2 und 3. Die Dummies sollen nur extreme Marktsituationen darstellen.

Vielen vielen Dank für die Antworten. 😉
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Lineare Regression mit Dummy und Multiplikation

Beitrag von bigben »

maxi1234 hat geschrieben: Do Jan 10, 2019 6:21 pm Sähe dann ja so aus:
Ölrendite = a + [c0 + c1*Dummy1 + c2*Dummy2 + c3*Dummy3]*Aktienrendite + Fehlerterm
Wenn ich das ausmultipliziere, dann erhalte ich

Ölrendite <- a+ c0*Aktienrendite + c1*Dummy2*Aktienrendite+c2*Dummy2*Aktienrendite +c3*Dummy3*Aktienrendite+epsilon

Demnach wollen wir 5 Koeffizienten berechnen, denn die Dummys allein kommen gar nicht in der Formel vor. Die richtige Übersetzung in eine R Formel wäre daher m. E. nicht wie oben angegeben

Code: Alles auswählen

lm1 <-lm(Ölrendite ~ Aktienrendite + Dummy1*Aktienrendite + Dummy2*Aktienrendite + Dummy3*Aktienrendite) 
sondern

Code: Alles auswählen

lm2 <-lm(Ölrendite ~ Aktienrendite + Dummy1:Aktienrendite + Dummy2:Aktienrendite + Dummy3:Aktienrendite) 
Mit schubbiaschwillis Beispieldaten kommt dann heraus:

Code: Alles auswählen

Call:
lm(formula = Ölrendite ~ Aktienrendite + Dummy1:Aktienrendite + 
    Dummy2:Aktienrendite + Dummy3:Aktienrendite)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.36449 -0.06832  0.00080  0.06737  0.36902 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)          1.999942   0.001010    1979   <2e-16 ***
Aktienrendite        5.000230   0.002028    2466   <2e-16 ***
Aktienrendite:Dummy1 3.003134   0.002009    1495   <2e-16 ***
Aktienrendite:Dummy2 4.002343   0.002009    1992   <2e-16 ***
Aktienrendite:Dummy3 6.995313   0.002009    3482   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.101 on 9995 degrees of freedom
Multiple R-squared:  0.9999,	Adjusted R-squared:  0.9999 
F-statistic: 4.042e+07 on 4 and 9995 DF,  p-value: < 2.2e-16
Es wurden also genau die 5 Koeffizienten geschätzt, die wir im Modell auch brauchen können.

LG,
Bernhard


PS: Siehst Du maxi, hier gibt es viel schneller Hilfe und wenn man das nicht per PN sondern öffentlich macht, ergänzen sich die verschiedenen Helfenden.
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
schubbiaschwilli
Beiträge: 253
Registriert: Di Jun 27, 2017 12:09 pm

Re: Lineare Regression mit Dummy und Multiplikation

Beitrag von schubbiaschwilli »

Gude!
maxi1234 hat geschrieben: Fr Jan 11, 2019 2:12 pm Ja. Das ist richtig. Wenn es für Dummy 1 zutrifft, dann auch für Dummy 2 und 3. Die Dummies sollen nur extreme Marktsituationen darstellen.
OK, ich habe wenig Erfahrungen mit Dummy-Variablen, aber das bedeutet, dass diese untereinander korreliert sind - Da würde ich mal nachlesen, was das für Auswirkungen haben kann. Alternativ würde ich mal 'Stufen' ausprobieren, also 0-3 oder so (die Dummy-Variablen kann man einfach addieren) und damit vergleichen. (Man könnte auch mal das Beispiel entsprechend ändern, und schauen was passiert - Bei Regressionen kann man sowas ja erst mal ausprobieren.)

Dank&Gruß
schubbiaschwilli
schubbiaschwilli
Beiträge: 253
Registriert: Di Jun 27, 2017 12:09 pm

Re: Lineare Regression mit Dummy und Multiplikation

Beitrag von schubbiaschwilli »

Gude!
bigben hat geschrieben: Fr Jan 11, 2019 2:20 pm Demnach wollen wir 5 Koeffizienten berechnen, denn die Dummys allein kommen gar nicht in der Formel vor. Die richtige Übersetzung in eine R Formel wäre daher m. E. nicht wie oben angegeben

Code: Alles auswählen

lm1 <-lm(Ölrendite ~ Aktienrendite + Dummy1*Aktienrendite + Dummy2*Aktienrendite + Dummy3*Aktienrendite) 
sondern

Code: Alles auswählen

lm2 <-lm(Ölrendite ~ Aktienrendite + Dummy1:Aktienrendite + Dummy2:Aktienrendite + Dummy3:Aktienrendite) 
Ah, OK, in der Hilfe (https://stat.ethz.ch/R-manual/R-devel/l ... ml/lm.html) klärt sich das auch:
A specification of the form first:second indicates the set of terms obtained by taking the interactions of all terms in first with all terms in second. The specification first*second indicates the cross of first and second. This is the same as first + second + first:second.
Wenn man nur Dummy 1 * Aktienrendite will, ist Dummy1:Aktienrendite richtig. Ich würde trotzdem die anderen mal mitnehmen, nur um mal zu schauen, ob es Einflüsse gibt - All models are wrong but some are useful.

Dank&Gruß
schubbiaschwilli
Antworten