Please reply to the list. You will have more chance to get an answer. Pascal
2013/7/18 G Girija <girija...@gmail.com> > Hi, > > Many thanks for your hint. Yes I made a mistake there. > > Also could you *please* help me in rectifying the following also? > > I am not able to extract variance and covariance > > As mentioned, there are 5 stocks and changed the code [ > http://www.forecastingfinancialrisk.com/3.html] as follows: > > > S<-cov(returns) > > > S > > V1 V2 V3 V4 V5 > > V1 0.0004951526 0.0001256519 0.0001651016 0.0003024310 0.0003516796 > > V2 0.0001256519 0.0008076471 0.0001251208 0.0002005305 0.0002347568 > > V3 0.0001651016 0.0001251208 0.0010000707 0.0003158028 0.0003682633 > > V4 0.0003024310 0.0002005305 0.0003158028 0.0011405561 0.0008442661 > > V5 0.0003516796 0.0002347568 0.0003682633 0.0008442661 0.0018536153 > > > > > EWMA[1,]<-c(S)[c(1,10,5)] > > > a=t(as.numeric(returns$i)) %*% as.numeric(returns$i) ---*Here we need > > > to change dataframe to numeric, that too only columns.* > > > str(a) > > num [1, 1] 0 > > > dim(a) > > [1] 1 1 > > > dim(lambda*S) > > [1] 5 5 ---------*As the dimensions are not same we can not do > %*%* > > > dim((1-lambda)*a) > > [1] 1 1 > > for(i in 2:T) > > { > > S<- lambda*S+ (1-lambda)*t(returns$i) %*% returns$i > > EWMA[i,]=c(S)[c(1,4,2)] > > } > > > > *Original code as per* http://www.forecastingfinancialrisk.com/3.html is > > EWMA = *matrix*(*nrow*=T,*ncol*=3) *# create a matrix to hold the > covariance matrix for each t* > > lambda = 0.94 > > S = *cov*(y) *# initial (t=1) covariance matrix* > > EWMA[1,] = *c*(S)[*c*(1,4,2)] *# extract the variances and covariance* > > *for* (i *in* 2:T){ *# loop though the sample* > > S = lambda * S + (1-lambda) * *t*(y[i]) %*% y[i] > > EWMA[i,] = *c*(S)[*c*(1,4,2)] *# convert matrix to vector * > > } > > > > On Thu, Jul 18, 2013 at 5:54 AM, Pascal Oettli <kri...@ymail.com> wrote: > >> Hello, >> >> 1) In the provided example, you have 2 stock returns and >> >> > EWMA = matrix(nrow=T, ncol=3) >> >> See the number of columns (2+1) >> Please modify the number of columns according to the number of stock >> returns. >> >> 2) As you have 5 stock returns, the following cannot work >> >> > EWMA[1,] = c(S)[c(1,4,2)] >> >> You have to modify this part too. >> >> >> 3) Do the same modification within the loop. >> >> Regards, >> Pascal >> >> >> >> 2013/7/18 G Girija <girija...@gmail.com> >> >>> hi, >>> >>> Could anyone help me in solving the following error: >>> I have 5 stocks returns data (returns) >>> >>> EWMA = matrix(nrow=T,ncol=5) # create a matrix to hold >>> the >>> covariance matrix for each t >>> >>> lambda = 0.94 >>> S<-cov(returns) # initial (t=1) >>> covariance matrix >>> EWMA[1,] = c(S)[c(1,4,2)] ---ERROR # extract the >>> variances and covariancefor (i in 2:T) >>> >>> >>> { # loop though the sample >>> S<- lambda*S+(1-lambda)*t(returns[i])%*%returns[i] >>> EWMA[i,] = c(S)[c(1,4,2)] # convert matrix to vector >>> } >>> >>> *ERROR as follows:* >>> >>> *> EWMA[1,]<-c(S)[c(1,4,2)]* >>> *Error in EWMA[1, ] <- c(S)[c(1, 4, 2)] : * >>> * number of items to replace is not a multiple of replacement length* >>> >>> [[alternative HTML version deleted]] >>> >>> ______________________________________________ >>> R-help@r-project.org mailing list >>> https://stat.ethz.ch/mailman/listinfo/r-help >>> PLEASE do read the posting guide >>> http://www.R-project.org/posting-guide.html >>> and provide commented, minimal, self-contained, reproducible code. >>> >> >> > [[alternative HTML version deleted]]
______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.