[R-SIG-Finance] (no subject)

alexios ghalanos alexios at 4dscape.com
Tue May 13 09:23:00 CEST 2014


The problem is in the scaling of the dataset and the optimizer used.

Try either:

>temp = UK.R[p:(period+p)]*100

and/or

>tmp = hyperbFit(temp, method="nlminb")

Also, don't have the hyperbFit inside the qhyperb function (you are
estimating the same parameters 4 times!). Instead use something like:

>tmp = hyperbFit(temp, method="nlminb")[1]$param
>VaR05.UK.qghyp2[p] = qhyperb(probabilities6,param = tmp)

Regards,

Alexios

On 13/05/2014 04:07, Wei-han Liu wrote:
> Dear R users:
> 
> I have encountered a problem on R package GeneralizedHyperbolic. It
> fails to integrate for the lower tail area but I do not know how to
> solve it. Listed below are my coding and the error message:
> 
> require(GeneralizedHyperbolic)
> return =
> read.csv("d://UK.R.csv",blank.lines.skip=TRUE,stringsAsFactors=FALSE)
> # return <- apply(series, function(x) diff(log(x)))
> UK= as.numeric(return[,2])
> UK.R=diff(log(na.omit(UK)))
> period=50 # moving-window length
> n=length(UK.R)
> VaR05.UK.qghyp <- numeric(n-period)
> for (p in 1:(n-period))
> {
>   temp = UK.R[p:(period+p)]
>    probabilities6 <- 0.05
>   VaR0001.UK.qghyp[p]<- qhyperb(probabilities6,param
> =c(hyperbFit(temp)[1]$param[1],hyperbFit(temp)[1]$param[2],hyperbFit(temp)[1]$param[3],hyperbFit(temp)[1]$param[4]),lower.tail
> = TRUE, method = c("spline"),subdivisions = 50)
>  } 
> 
> ERROR message: Error in integrate(dghypInt, q[i], Inf, subdivisions =
> subdivisions, rel.tol = intTol,  : 
>   the integral is probably divergent
> 
> If I change the method to integrate, it shows the error message below:
> Error in uniroot(zeroFun, interval = c(mode, xHigh), ...) : 
>   f() values at end points not of opposite sign
> In addition: Warning messages:
> 1: In optimize(f = modeFun, interval = range, maximum = TRUE) :
>   NA/Inf replaced by maximum positive value
> 2: In optimize(f = modeFun, interval = range, maximum = TRUE) :
>   NA/Inf replaced by maximum positive value
> 3: In optimize(f = modeFun, interval = range, maximum = TRUE) :
>   NA/Inf replaced by maximum positive value
> 4: In optimize(f = modeFun, interval = range, maximum = TRUE) :
>   NA/Inf replaced by maximum positive value
> 5: In optimize(f = modeFun, interval = range, maximum = TRUE) :
>   NA/Inf replaced by maximum positive value
> 6: In optimize(f = modeFun, interval = range, maximum = TRUE) :
>   NA/Inf replaced by maximum positive value
> 
> Does any people can help solve this problem?
> 
> Best regards,
> 
> Weihan
> 
> 
> 
> _______________________________________________
> R-SIG-Finance at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-finance
> -- Subscriber-posting only. If you want to post, subscribe first.
> -- Also note that this is not the r-help list where general R questions should go.
>



More information about the R-SIG-Finance mailing list