Pages

Wednesday, 13 February 2013

BUSINESS APPLICATION LAB SESSION-6



Assignments 1: Create a log of the return data for NIFTY INDEX data from 01 jan 2012 to 31 jan 2013.

Solution:The log return can be obtained using following formula
(Log St-Log St-1)/ Log St-1  or Log((St-St-1)/ St-1))


COMMANDS:

> niftydata<-read.csv(file.choose(),header=T)
> closing<-niftydata$Close
> local({pkg <- select.list(sort(.packages(all.available = TRUE)),graphics=TRUE)
+ if(nchar(pkg)) library(pkg, character.only=TRUE)})

‘tseries’ version: 0.10-30

‘tseries’ is a package for time series analysis and computational
finance.

See ‘library(help="tseries")’ for details.

> closing.ts<-ts(closing,frequency=252)
> lagtable <- cbind(closing.ts,z<-lag(closing.ts, k=-1),z1<-(closing.ts-lag(closing.ts, k=-1)))
> logreturn<-((log(closing.ts)-log z)/log z)
Error: unexpected symbol in "logreturn<-((log(closing.ts)-log z"
> logreturn<-((log(closing.ts)-log(z))/log(z))
> logreturn

Time Series:
Start = c(1, 2)
End = c(2, 22)
Frequency = 252
[1] 3.239464e-03 -3.884187e-04 7.460649e-06 1.031566e-04 -1.790094e-04 -1.020756e-04 2.629635e-03 2.766672e-04 -7.219539e-04 8.448814e-04 1.910705e-04
[12] 2.235372e-03 -2.723447e-04 1.475328e-03 7.041325e-04 -5.460200e-05 1.869905e-03 7.045035e-04 1.047569e-03 -2.666119e-03 2.550488e-03 8.164967e-04
[23] 7.603225e-04 1.232348e-03 7.807907e-04 -5.770056e-04 7.185143e-04 9.547984e-04 -6.627921e-04 1.858701e-04 5.568074e-04 2.462872e-03 -2.099390e-04
[34] 8.866876e-04 8.895253e-04 -2.122643e-03 -4.659254e-04 -1.149537e-03 -3.216077e-03 2.064680e-03 2.098882e-04 -9.865220e-04 4.268778e-04 1.086513e-06
[45] -1.730561e-03 -1.287406e-03 -4.362502e-05 2.503809e-03 5.666613e-04 1.510141e-03 7.344260e-04 -1.787318e-03 -1.362292e-03 -1.341494e-03 3.945467e-04
[56] 1.976128e-03 -3.001079e-03 1.106098e-03 -2.095349e-03 1.320797e-03 -1.082815e-03 -3.583088e-04 2.605582e-03 4.911754e-04 8.865537e-04 -7.763192e-04
[67] -1.954136e-03 2.050752e-04 -3.735635e-04 1.112008e-03 -1.544616e-03 4.199823e-04 1.410639e-03 2.268949e-04 7.107020e-04 -9.115485e-04 -2.006700e-03
[78] 4.944683e-04 -4.627824e-04 -2.924186e-04 3.604002e-05 4.136487e-04 8.749252e-04 -2.003778e-04 -1.136619e-03 -2.310752e-03 6.271584e-04 -2.644486e-03
[89] -5.920671e-04 -2.150921e-04 -8.740499e-04 -5.045429e-04 8.361626e-04 -2.028488e-03 2.894189e-04 5.127588e-04 3.508262e-04 -1.097620e-03 -6.038190e-04
[100] 2.071895e-03 -2.390384e-05 1.549669e-03 1.047839e-04 -9.297326e-04 -6.308823e-04 -1.990929e-03 1.593334e-04 3.676528e-04 3.196962e-03 1.228327e-03
[111] 4.334883e-04 -3.300435e-04 1.425141e-03 1.269615e-04 -1.534822e-03 1.939456e-03 -1.715955e-03 9.131466e-04 3.826181e-04 1.011969e-03 -4.299203e-04
[122] -7.161795e-04 1.407172e-04 4.814369e-04 1.648873e-04 2.911816e-03 -6.630323e-06 2.064695e-04 3.216062e-04 5.429964e-04 -2.266406e-04 -9.200411e-04
[133] 1.542443e-03 -8.541758e-04 -1.571732e-03 -1.785871e-04 -6.722646e-04 -9.899153e-05 5.266673e-04 5.897855e-04 -8.404042e-04 -1.973141e-03 2.342661e-04
[144] -4.253547e-04 -1.536500e-03 1.314838e-03 2.273528e-03 6.544701e-04 2.565831e-04 -2.844336e-04 -2.695327e-04 1.487906e-03 1.189729e-03 2.837990e-05
[155] -3.289665e-04 -5.584902e-05 6.009196e-04 7.046999e-04 -3.770709e-04 7.271941e-05 1.180923e-03 -1.749869e-04 5.371437e-05 -6.170252e-04 -7.902596e-04
[166] -3.412252e-04 -1.026760e-03 5.995619e-04 -1.246938e-03 -1.054797e-04 4.490623e-04 -1.073482e-03 2.835242e-04 2.289030e-03 3.614632e-04 1.031874e-04
[177] 5.750264e-04 8.819401e-04 9.309863e-05 3.004835e-03 6.703951e-04 -2.056453e-04 -9.515204e-04 2.823943e-03 -4.387549e-04 8.771891e-05 -2.132743e-04
[188] -2.853809e-04 1.097066e-03 3.138052e-04 2.513622e-04 1.130621e-03 -8.135789e-04 -1.435064e-03 5.814561e-04 -1.067965e-03 1.139085e-03 -6.499572e-04
[199] 2.280491e-04 -8.009879e-04 2.507867e-04 1.188888e-03 -6.984126e-04 6.675458e-04 -5.217950e-04 2.821077e-04 -8.338676e-04 2.655438e-05 -1.391002e-03
[210] 4.503694e-04 5.212828e-04 1.074665e-03 1.318438e-04 4.087192e-04 7.185322e-04 -4.288652e-04 -1.061865e-03 -5.188074e-05 -3.413826e-04 -7.363699e-04
[221] -1.177061e-03 -5.512835e-05 3.121345e-06 8.964977e-04 2.668488e-04 -2.366583e-05 1.912506e-04 1.865662e-03 1.951756e-03 1.081009e-03 -1.745294e-04
[232] 3.586398e-04 2.198437e-04 5.918464e-04 -4.569753e-04 2.923626e-05 -1.969952e-04 -2.110634e-04 -7.163435e-04 5.522762e-04 -4.260227e-04 7.629091e-04
[243] 6.388874e-04 -2.565234e-04 -1.344742e-03 1.585997e-04 9.771520e-04 -6.943370e-04 7.484690e-04 -6.335935e-05 8.887682e-04 8.168833e-04 3.112892e-04
[254] 1.271069e-04 -5.312741e-04 2.550707e-04 -5.798537e-04 -5.490448e-05 -3.348281e-04 1.397952e-03 6.191517e-04 -1.042707e-03 7.130947e-04 4.782958e-04
[265] 3.383743e-04 -6.395637e-04 1.100716e-04 -6.648065e-04 1.050830e-03 2.834345e-06 -4.714611e-04 1.109914e-04 -3.988862e-04
> T<-252^0.5
> historicalvolatility<-sd(returns)*T
Error in sd(returns) : object 'returns' not found
> historicalvolatility<-sd(logreturn)*T
> historical
Error: object 'historical' not found
> historicalvolatility
[1] 0.01719952



Assignments 2: Do ACF plot and ADF.

Command:
> acf(logreturn)
> adf.test(logreturn)

Thursday, 7 February 2013

BUSINESS APPLICATION LAB SESSION-5

Assignment -1:  Find returns of NSE data of greater than 6 months having selected the 10th data point as start and 95th data point as end. Also plot return.

Solution:
Command Sequence
> data<-read.csv(file.choose(),header=T)
> close<-data$Close[10:95]
> close.ts<-ts(close,deltat=1/252)
> close.ts
Time Series:
Start = c(1, 1)
End = c(1, 86)
Frequency = 252
 [1] 5380.35 5362.95 5366.30 5421.00 5412.85 5415.35 5386.70 5350.25 5334.60
[10] 5287.80 5315.05 5258.50 5253.75 5274.00 5225.70 5238.40 5342.10 5358.70
[19] 5363.45 5390.00 5431.00 5435.35 5577.65 5610.00 5600.05 5554.25 5691.15
[28] 5669.60 5673.90 5663.45 5649.50 5703.30 5718.80 5731.25 5787.60 5746.95
[37] 5676.00 5704.60 5652.15 5708.05 5676.05 5687.25 5648.00 5660.25 5718.70
[46] 5684.25 5717.15 5691.40 5705.30 5664.30 5665.60 5597.90 5619.70 5645.05
[55] 5697.70 5704.20 5724.40 5760.10 5738.75 5686.25 5683.70 5666.95 5631.00
[64] 5574.05 5571.40 5571.55 5614.80 5627.75 5626.60 5635.90 5727.45 5825.00
[73] 5879.85 5870.95 5889.25 5900.50 5930.90 5907.40 5908.90 5898.80 5888.00
[82] 5851.50 5879.60 5857.90 5896.80 5929.60
> summary(close.ts)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.
   5226    5465    5665    5624    5723    5931
> close.diff<-diff(close.ts)
> close.diff
Time Series:
Start = c(1, 2)
End = c(1, 86)
Frequency = 252
 [1] -17.40   3.35  54.70  -8.15   2.50 -28.65 -36.45 -15.65 -46.80  27.25
[11] -56.55  -4.75  20.25 -48.30  12.70 103.70  16.60   4.75  26.55  41.00
[21]   4.35 142.30  32.35  -9.95 -45.80 136.90 -21.55   4.30 -10.45 -13.95
[31]  53.80  15.50  12.45  56.35 -40.65 -70.95  28.60 -52.45  55.90 -32.00
[41]  11.20 -39.25  12.25  58.45 -34.45  32.90 -25.75  13.90 -41.00   1.30
[51] -67.70  21.80  25.35  52.65   6.50  20.20  35.70 -21.35 -52.50  -2.55
[61] -16.75 -35.95 -56.95  -2.65   0.15  43.25  12.95  -1.15   9.30  91.55
[71]  97.55  54.85  -8.90  18.30  11.25  30.40 -23.50   1.50 -10.10 -10.80
[81] -36.50  28.10 -21.70  38.90  32.80
> return<-data.diff/lag(close.ts,k=-1)
Error: object 'data.diff' not found
> return<-close.diff/lag(close.ts,k=-1)
> plot(return,main="Final Returns from 10 th to 95th day")
> plot(return,main="Final Returns from 10th to 95th day")

Assignment -2:  1-700 data is available, Predict the data from 701-850, use the GLM estimation using LOGIT Analysis for the same.
Solution:
Command Sequence
> z<-read.csv(file.choose(),header=T)
> head(z)
  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
> z.data<-z[1:700,1:9]
> sapply(z.data,mean)
       age         ed     employ    address     income    debtinc   creddebt
34.8600000  1.7228571  8.3885714  8.2785714 45.6014286 10.2605714  1.5534571
   othdebt    default
 3.0582286  0.2614286
> z.data$ed<-factor(z.data$ed)
> logit.est<-glm(default~age+employ+address+income+debtinc+creddebt+othdebt,data=z.data,family="binomial")
> logitdata.est<-glm(default~age+employ+address+income+debtinc+creddebt+othdebt,data=z.data,family="binomial")
> summary(logitdata.est)

Call:
glm(formula = default ~ age + employ + address + income + debtinc +
    creddebt + othdebt, family = "binomial", data = z.data)

Deviance Residuals:
    Min       1Q   Median       3Q      Max 
-2.3659  -0.6516  -0.2882   0.2625   2.9757 

Coefficients:
             Estimate Std. Error z value Pr(>|z|)   
(Intercept) -1.376573   0.571560  -2.408   0.0160 * 
age          0.033712   0.017342   1.944   0.0519 . 
employ      -0.265086   0.031999  -8.284  < 2e-16 ***
address     -0.103960   0.023192  -4.483 7.38e-06 ***
income      -0.007566   0.008095  -0.935   0.3500   
debtinc      0.065099   0.030621   2.126   0.0335 * 
creddebt     0.628475   0.113759   5.525 3.30e-08 ***
othdebt      0.070761   0.077682   0.911   0.3623   
---
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: 552.20  on 692  degrees of freedom
AIC: 568.2

Number of Fisher Scoring iterations: 6

> confint.default(logitdata.est)
                    2.5 %      97.5 %
(Intercept) -2.4968094058 -0.25633710
age         -0.0002768342  0.06770153
employ      -0.3278025120 -0.20236959
address     -0.1494167558 -0.05850405
income      -0.0234310297  0.00829931
debtinc      0.0050836856  0.12511410
creddebt     0.4055112145  0.85143903
othdebt     -0.0814939858  0.22301505
> logitdata.eg<-with(z[701:850,1:8],data.frame(age=age,employ=employ,address=address,income=income,debtinc=debtinc,creddebt=creddebt,othdebt=othdebt,ed=factor(1:3)))
> logitdata.eg$prob<-predict(logitdata.est,newdata=logitdata.eg,type="response")
> head(logitdata.eg)
  age employ address income debtinc creddebt othdebt ed       prob
1  36     16      13     32    10.9     0.54    2.94  1 0.00865515
2  50      6      27     21    12.9     1.32    1.39  2 0.07730314
3  40      9       9     33    17.0     4.88    0.73  3 0.65161010
4  31      5       7     23     2.0     0.05    0.41  1 0.08564367
5  29      4       0     24     7.8     0.87    1.01  2 0.37406261
6  25      1       3     14     9.9     0.23    1.15  3 0.41429185