POKEMONKENG 2023-04-24 15:32 采纳率: 20%
浏览 54
已结题

求运用egarch-M求cvar的r软件代码

请问各位朋友运用egarch-M求cvar的r软件代码怎么写,目前没有看到相关内容,谢谢。
并且需要有样本内检测失败率和样本外预测的代码,谢谢

  • 写回答

4条回答 默认 最新

  • 语言-逆行者 2023-04-24 15:49
    关注

    基于new bing的编写:
    EGARCH-M模型的CVaR是相对复杂的,需要进行数值积分计算。以下是在R语言中使用rugarch包来估计EGARCH-M模型并计算CVaR的代码示例:

    library(rugarch)
    
    # 加载数据
    data <- read.csv("data.csv")
    
    # 按时间升序排序
    data <- data[order(data$Date),]
    
    # 提取收盘价
    prices <- data$Close
    
    # 计算日收益率
    returns <- diff(log(prices))
    
    # EGARCH-M模型拟合
    spec <- ugarchspec(variance.model = list(model = "eGARCH", garchOrder = c(1,1)), 
                       mean.model = list(armaOrder = c(0,0), include.mean = TRUE),
                       distribution.model = "norm")
    fit <- ugarchfit(spec, data = returns)
    
    # 样本内CVaR计算
    VaR <- quantile(fit@forecast$seriesFor, 0.01, na.rm = TRUE)
    CVaR <- mean(fit@forecast$seriesFor[fit@forecast$seriesFor < VaR])
    CVaR
    
    # 样本内检测失败率
    inSampleFailures <- sum(is.na(fit@fit$z))
    inSampleFailureRate <- inSampleFailures / length(fit@fit$z)
    inSampleFailureRate
    
    # 样本外预测
    forecasts <- ugarchforecast(fit, n.ahead = 5)
    forecasts@forecast$VaR
    forecasts@forecast$ES
    
    
    

    要计算CVaR,我们首先用quantile()函数计算出样本内1%的VaR。然后,我们从模型拟合后的产生的序列中选取所有低于VaR值的数据,并计算它们的平均值作为CVaR。样本内检测失败率是在拟合过程中发生错误的次数与总数据点数之比。最后,我们使用ugarchforecast()函数来进行样本外预测,并检查返回的结果中的VaR和ES。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月26日
  • 创建了问题 4月24日