[R-SIG-Finance] Risk management research simulation questions

Krishna Kumar kriskumar at earthlink.net
Wed Aug 30 02:50:02 CEST 2006


Hello Joe, Here is a simple piece of code that simulates correlated 
assets and computes both historical and MC VaR.

 Now for the seasonal mean and covariance a very inelegant way is to 
simply timestep the simulation and then generate random returns using 
the seasonal covariance(mean) I am not sure about using Garch and if 
indeed using pearson correlation one can generate Garch processes that 
have the required correlation structure. Essentially the marginal and 
joint distributions are unlikely to be gaussian and so ordinary 
correlation mayn't be a good measure of the dependence.
However I suggest a more practical alternative assuming marginal 
distribution one can easily use copula functions to generate very 
realistic scenarios.
This works very well and I like this approach better.

Indeed there appears to be a copula Garch model, there is a very nice 
copula library in R and univariate and multivariate Garch can be done
so one can attempt to do what these authors indicate 
(http://www.faculty.ucr.edu/~taelee/paper/LeeLong.pdf  and 
http://www.fame.ch/library/EN/RP69.pdf)
I haven't tried this yet.

Hope this helps,

Best,
Krishna



# the below code assumes 1 year VaR at the 95% level you'd have to scale 
volatility/returns if you want some other horizon!.

require(VaR)
data(DJIA)
require(MASS)
nsim<-1000
ticker<-c("INTC","IBM","GE")
mydata<-as.matrix(subset(DJIA,select=ticker))
retdata<-diff(log(mydata))
cov.mat<-cov(retdata)
wts<-c(0.2,0.4,0.4) # define your portfolio weights.
hist.vol<- sqrt(wts %*% cov.mat %*% wts)
ret.mean<-apply(retdata,2,mean)
hist.mean<-sum(ret.mean,wts)
#Historical VaR estimate
hist.var <- qnorm(0.05,mean=hist.vol,sd=hist.vol)
cat("historical VaR at the 95% level \n ", format(hist.var,digits=2))
sim.ret<-mvrnorm(nsim,mu=ret.mean,Sigma=cov.mat)
sim.wtret<-t(wts * t(sim.ret))
x11()
hist(sim.wtret)
#read the VaR as the quantile of the loss distribution
mc.var<-quantile(sim.wtret,0.05)
cat("mc VaR at the 95% level \n ", format(mc.var,digits=2))




Joe Byers wrote:

>I should have been a little more specific.  I need help simulating the 
>correlated assets.
>thanx
>
>
>Joe Byers wrote:
>  
>
>>Rmetrics group,
>>
>>I am working on a project to determine the errors associated with 
>>structural assumptions underlying a companies Value at Risk calculation. 
>>  Normal VAR calculations using a covariance matrix for the portfolio 
>>assume constant mean or zero mean if the returns are mean adjusted. 
>>This project calls for creating 4-5 hypothetical assets, 1 constant mean 
>>and variance, 1 seasonal mean and constant variance, 1 constant mean and 
>>seasonal variance, 1 time varying mean (AR or Garch in mean), 1 time 
>>varying variance (GARCH type).  I want to provide the hypothetical 
>>parameters for these assets and simulate returns.  I can simulate each 
>>of these assets as independent but really need correlated errors.
>>
>>These returns will be used to calculate a benchmark risk metrics type 
>>VAR and then progess through correcting the VAR calculations for each 
>>case of asses type.
>>
>>Anyone that is interested, I would appreciate suggestions.  I am also 
>>favoring co-authorship for this help.
>>
>>Thank you
>>Joe
>>
>>    
>>
>
>_______________________________________________
>R-SIG-Finance at stat.math.ethz.ch mailing list
>https://stat.ethz.ch/mailman/listinfo/r-sig-finance
>
>  
>



More information about the R-SIG-Finance mailing list