1. Convert
Data into a time series format and then calculate the returns from it.
Data set- CNX Mid-cap Index downloaded from NSE from August 2012-January
2013-10th reading to 95th reading.
>nse6m<-
read.csv(file.choose(),header=T)
>
Close<- nse6m$Close
>
Close.ts<- ts(Close)
>
Close.ts<- ts(Close, deltat=1/252)
>
Close.interval<-ts(data=Close.ts[10:95],frequency=1,deltat=1/252)
>
Close.diff<- diff(Close.interval)
>
Close.lag<- lag(Close.interval, K=1)
>
Returns<- Close.interval/Close.lag
>
Returns.table<- cbind(Close.interval,Close.lag,Close.diff,Returns)
>
plot(Returns.table,main="Data from Index, Difference, Return")
2. First 700 data is available, Predict the data
from 701-850, use the GLM estimation using LOGIT Analysis for the same.
>
logit<-read.csv(file.choose(),header=T)
>
logit.data<- logit[1:700,1:9]
>
head(logit.data)
age ed employ address income debtinc creddebt
othdebt default
1 41
3 17 12
176 9.3 11.36
5.01 1
2 27
1 10 6
31 17.3 1.36
4.00 0
3 40
1 15 14
55 5.5 0.86
2.17 0
4 41
1 15 14
120 2.9 2.66
0.82 0
5 24
2 2 0
28 17.3 1.79
3.06 1
6 41
2 5 5
25 10.2 0.39
2.16 0
>
logit.data$ed<-factor(logit.data$ed)
>
logit.est<-glm(default ~ age + ed + employ + address + income,
data=logit.data, family ="binomial")
>
summary(logit.est)
Call:
glm(formula
= default ~ age + ed + employ + address + income,
family = "binomial", data =
logit.data)
Deviance
Residuals:
Min
1Q Median 3Q
Max
-1.5229 -0.8196
-0.5408 1.0673 2.8521
Coefficients:
Estimate Std. Error z value
Pr(>|z|)
(Intercept)
-0.894875 0.450781 -1.985 0.047126 *
age 0.024982 0.015655
1.596 0.110541
ed2 0.226624 0.216796
1.045 0.295868
ed3 0.357120 0.291745
1.224 0.220921
ed4 -0.007832 0.403119
-0.019 0.984499
ed5 -1.032156 1.201660
-0.859 0.390372
employ -0.168476 0.024544
-6.864 6.69e-12 ***
address -0.062393
0.018521 -3.369 0.000755 ***
income 0.013021 0.004144
3.142 0.001679 **
---
Signif.
codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05
‘.’ 0.1 ‘ ’ 1
(Dispersion
parameter for binomial family taken to be 1)
Null deviance: 804.36 on 699
degrees of freedom
Residual
deviance: 711.89 on 691 degrees of freedom
AIC: 729.89
Number of
Fisher Scoring iterations: 5
>
forecast<-logit[701:850,1:8]
>
forecast$ed<-factor(forecast$ed)
>
forecast$probability<-predict(logit.est,newdata=forecast,type="response")
>
head(forecast)
age ed employ address income debtinc
creddebt othdebt probability
701 36
1 16 13
32 10.9 0.54
2.94 0.04370623
702 50
1 6 27
21 12.9 1.32
1.39 0.11226674
703 40
1 9 9
33 17.0 4.88
0.73 0.17599440
704 31
1 5 7
23 2.0 0.05
0.41 0.24972447
705 29
1 4 0
24 7.8 0.87
1.01 0.37009683
706 25
2 1 3
14 9.9 0.23
1.15 0.44594623


No comments:
Post a Comment