如何在R中提取arima模型的R平方及调整R平方值
R基础包的arima()函数输出结果默认不包含R平方、调整R平方统计量,可通过手动计算获得与EViews逻辑一致的结果,步骤如下:
- 提取模型相关数据
# 提取原始被解释变量序列 y <- nonafed2$GrowthRate # 提取模型残差 res <- residuals(fed2arma) # 计算模型拟合值 y_hat <- y - res
- 计算R平方
计算逻辑与EViews对平稳序列ARMA模型的R平方计算规则完全一致:
# 残差平方和 ss_res <- sum(res^2) # 总平方和 ss_tot <- sum((y - mean(y))^2) r_squared <- 1 - ss_res / ss_tot
- 计算调整R平方
自动适配你使用的ARMA模型参数数量,无需手动计数:
# 样本量 n <- length(y) # 模型估计的参数总个数 k <- length(fed2arma$coef) adj_r_squared <- 1 - (ss_res/(n - k)) / (ss_tot/(n - 1))
计算得到的r_squared和adj_r_squared会和EViews输出结果高度匹配,二者的微小差异来自两个软件ARMA估计时的初始值设置、迭代精度差异,与你观测到的系数、标准误的微小差异来源一致。
内容的提问来源于stack exchange,提问作者nferret
相关产品推荐
相关产品推荐

