用R中的线绘制ACF

用R中的线绘制ACF,r,plot,R,Plot,这可能不是一个简单的问题。感谢您的帮助 我读过一篇关于GARCH和long memory的论文。它有一个图,特别是图1.1,我还没有学会如何在R中绘制它。作者说ACF函数有一个相应的双曲函数。发现数据是否具有长内存是非常重要的。所以我想把这个技巧应用到我的平方收益上。示例数据在中提供 我的代码是: data=read.csv("sample.csv",header=T) lret=100*diff(log(data$CLOSE)) acf(lret^2) 我们如何找到ACF的双曲函数,如何在A

这可能不是一个简单的问题。感谢您的帮助

我读过一篇关于
GARCH
long memory
的论文。它有一个图,特别是图1.1,我还没有学会如何在R中绘制它。作者说ACF函数有一个相应的双曲函数。发现数据是否具有长内存是非常重要的。所以我想把这个技巧应用到我的平方收益上。示例数据在中提供

我的代码是:

data=read.csv("sample.csv",header=T)
lret=100*diff(log(data$CLOSE))
acf(lret^2)
我们如何找到ACF的双曲函数,如何在ACF图中绘制它


Mikosch和Starica强调ACF不遵循双曲线函数;该图用于显示滥用统计工具如何导致错误结论-图1.1的其他窗口中显示的数据是不相关的!不管怎么说,这是一个讨论


您可以使用
nls
进行非线性回归拟合。我使用了参数为0.8和0.1的AR(2)过程的ACF作为示例(这里的拟合当然不正确,但它演示了使用自相关函数时可能遇到的一些问题)

set.seed(1e2)
##AR(2)模拟

阿西姆纸链接:非常感谢你,瑟克尔。
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")