这可能是也可能不是一个简单的问题。任何帮助表示赞赏。
我访问过有关GARCH
和long memory
的论文。它有一个数字,特别是图1.1,我还没有学会如何在R中绘制它。作者说ACF函数具有各自的双曲函数。发现数据是否具有长记忆非常重要。所以我想将这种技术应用到我的平方回报中。样本数据在this link中提供。
我的代码是:
data=read.csv("sample.csv",header=T)
lret=100*diff(log(data$CLOSE))
acf(lret^2)
我们如何找到ACF的双曲线函数?我们如何在ACF图中绘制它?
答案 0 :(得分:2)
Mikosch和Starica强调ACF 不 遵循双曲线函数;该数字用于显示滥用统计工具如何导致错误的结论 - 数据在图1.1的其他窗口中显示为不相关!无论如何,这是对Cross Validated Stack Exchange的讨论。
您可以使用nls
进行非线性回归拟合。我使用了参数为0.8和0.1的AR(2)-process的ACF作为示例(当然,拟合将是不正确的,但它演示了使用自相关函数时可能遇到的一些问题)。
set.seed(1e2)
## AR(2) simulation
arsim <- arima.sim(list(ar = c(0.8,0.1)),n = 1000)
## Autocorrelation function of absolute values:
myacf <- acf(abs(arsim),ci = 0)
## Fit acf = b*x^(-c)
nls_fit <- nls(y ~ b*x^(-c),
data.frame(x = myacf$lag[-1], y = myacf$acf[-1]), #Remove lag 0
start = list(b=1,c=1))
curve(nls_fit$m$getPars()[1]*x^(-nls_fit$m$getPars()[2]),
add = TRUE,col="red")
请注意我在滞后0处删除数据,因为0^(-c)
没有意义。这与作者通常所做的一致(在滞后0处忽略 - 无论如何都没有意义。为什么它是我不知道的plot.acf
的默认值。
Mikosch通常建议删除默认情况下显示的iid置信区间,当数据显然不是iid时。您可以使用plot.acf
选项ci = 0
执行此操作。