Ich kam mal auf die Idee, nach dieser Diskussion
viewtopic.php?p=15553#p15553
ein wenig herumzuspielen.
Dazu habe ich einen Aktienindex (DAX) genommen, und ein paar Prädiktoren erstellt (Kurs von heute, von gestern, Differenz von Gestern auf Heute) und versuche damit die Richtung der Kurse (also Steigen oder Fallen) von Morgen zu prognostizieren; und dazu nehme ich eine logistische Regression.
Code: Alles auswählen
library(quantmod)
DAX_raw <- getSymbols(Symbols="^GDAXI", auto.assign=FALSE, from="2019-12-31", to="2021-01-01")
DAX <- data.frame(DAX_raw$GDAXI.Close)
# remove NAs
DAX <- na.omit(DAX)
colnames(DAX) <- c("Schlusspreis")
# Create Target / Move Target 1 day forward
DAX$Schlusspreis_Delta <- c(NA, diff(DAX$Schlusspreis))
DAX$Schlusspreis_Delta_Target <- c((as.integer(sign(DAX$Schlusspreis_Delta))+1)/2, NA)[-1]
# Add Previous
DAX$Schlusspreis_Previous <- c(NA, DAX$Schlusspreis[-nrow(DAX)])
DAX$Schlusspreis_PreviousPrevious <- c(NA, DAX$Schlusspreis_Previous[-nrow(DAX)])
# Add Previous Deltas
DAX$Schlusspreis_Delta_Previous <- c(NA, DAX$Schlusspreis_Delta[-nrow(DAX)])
DAX$Schlusspreis_Delta_PreviousPrevious <- c(NA, DAX$Schlusspreis_Delta_Previous[-nrow(DAX)])
# Logit
DAX_cleaned <- DAX[c(-1, -2, -3, -(nrow(DAX))),]
Model_Full <- glm(Schlusspreis_Delta_Target~., family=binomial(link='logit'), data=DAX_cleaned, trace=TRUE)
Code: Alles auswählen
> summary(Model_Full)
Call:
glm(formula = Schlusspreis_Delta_Target ~ ., family = binomial(link = "logit"),
data = DAX_cleaned, trace = TRUE)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.6892 -1.1031 -0.1882 1.1975 1.4640
Coefficients: (2 not defined because of singularities)
Estimate Std. Error z value Pr(>|z|)
(Intercept) 3.1934301 1.3707158 2.330 0.0198 *
Schlusspreis 0.0005239 0.0005628 0.931 0.3520
Schlusspreis_Delta -0.0010149 0.0008112 -1.251 0.2109
Schlusspreis_Previous NA NA NA NA
Schlusspreis_PreviousPrevious -0.0007826 0.0005688 -1.376 0.1688
Schlusspreis_Delta_Previous NA NA NA NA
Schlusspreis_Delta_PreviousPrevious -0.0004240 0.0005806 -0.730 0.4651
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 346.57 on 249 degrees of freedom
Residual deviance: 338.26 on 245 degrees of freedom
AIC: 348.26
Number of Fisher Scoring iterations: 4
Code: Alles auswählen
> glm(Schlusspreis_Delta_Target~Schlusspreis_Previous, family=binomial(link='logit'), data=DAX_cleaned)
Call: glm(formula = Schlusspreis_Delta_Target ~ Schlusspreis_Previous,
family = binomial(link = "logit"), data = DAX_cleaned)
Coefficients:
(Intercept) Schlusspreis_Previous
2.9203996 -0.0002368
Degrees of Freedom: 249 Total (i.e. Null); 248 Residual
Null Deviance: 346.6
Residual Deviance: 341.5 AIC: 345.5
Code: Alles auswählen
> glm(Schlusspreis_Delta_Target~Schlusspreis_Delta_Previous, family=binomial(link='logit'), data=DAX_cleaned)
Call: glm(formula = Schlusspreis_Delta_Target ~ Schlusspreis_Delta_Previous,
family = binomial(link = "logit"), data = DAX_cleaned)
Coefficients:
(Intercept) Schlusspreis_Delta_Previous
-0.0015043 0.0005884
Degrees of Freedom: 249 Total (i.e. Null); 248 Residual
Null Deviance: 346.6
Residual Deviance: 345.4 AIC: 349.4
Code: Alles auswählen
> cor(DAX_cleaned)
Schlusspreis Schlusspreis_Delta Schlusspreis_Delta_Target Schlusspreis_Previous Schlusspreis_PreviousPrevious
Schlusspreis 1.0000000 0.10429748 -0.14977112 0.98217727 0.96336710
Schlusspreis_Delta 0.1042975 1.00000000 -0.04355631 -0.08449326 -0.08950084
Schlusspreis_Delta_Target -0.1497711 -0.04355631 1.00000000 -0.14182231 -0.15485323
Schlusspreis_Previous 0.9821773 -0.08449326 -0.14182231 1.00000000 0.98210069
Schlusspreis_PreviousPrevious 0.9633671 -0.08950084 -0.15485323 0.98210069 1.00000000
Schlusspreis_Delta_Previous 0.1086674 0.02563753 0.06745749 0.10402740 -0.08516933
Schlusspreis_Delta_PreviousPrevious 0.1254341 0.12026087 -0.06385184 0.10294314 0.09795976
Schlusspreis_Delta_Previous Schlusspreis_Delta_PreviousPrevious
Schlusspreis 0.10866740 0.12543412
Schlusspreis_Delta 0.02563753 0.12026087
Schlusspreis_Delta_Target 0.06745749 -0.06385184
Schlusspreis_Previous 0.10402740 0.10294314
Schlusspreis_PreviousPrevious -0.08516933 0.09795976
Schlusspreis_Delta_Previous 1.00000000 0.02729302
Schlusspreis_Delta_PreviousPrevious 0.02729302 1.00000000
Oder kennt jemand Methoden, da weiter zu analysieren? Ich bin ein wenig ratlos...
Dank&Gruß
Schubbiaschwilli
Edit: Einen Fehler bei der Datenerstellung gefunden und verbessert.