模拟观察并计算样本自相关

时间:2015-03-11 02:39:53

标签: r simulation

模拟{et}的rk(r代表自相关),其中每个et是N(0,1)。 R代码:模拟{et}的100次观测并计算r1。 到目前为止,这是我的代码:

x=rnorm(100,0,1)
x
y=ts(x)
trial_r1=acf(y)[1]
trial_r1

我的代码是否正确?如何在运行acf()

后获取r1

1 个答案:

答案 0 :(得分:0)

(我将作为答案发布,既可以结束问题,也可以帮助搜索类似结构问题的答案。)

在寻找您认为的只是结构化回报的一部分时,详细查看返回值很有用。一种常见的方法是使用str

set.seed(42)
x <- rnorm(100, mean = 0, sd = 1)
ret <- acf(ts(x))
str(ret)
## List of 6
##  $ acf   : num [1:21, 1, 1] 1 0.05592 -0.00452 0.03542 0.00278 ...
##  $ type  : chr "correlation"
##  $ n.used: int 100
##  $ lag   : num [1:21, 1, 1] 0 1 2 3 4 5 6 7 8 9 ...
##  $ series: chr "ts(x)"
##  $ snames: NULL
##  - attr(*, "class")= chr "acf"

在这种情况下,您会在$acf$lag中看到两个数字簇。后者“明确地”只是一个递增整数的数组,因此在这项努力中并不那么有趣,但前者看起来更有趣。通过查看结果最终只是list,您可以使用美元符号子集(或[[对您来说)来提取您需要的内容:

ret$acf
## , , 1
##                [,1]
##  [1,]  1.000000e+00
##  [2,]  5.592310e-02
##  [3,] -4.524017e-03
##  [4,]  3.541639e-02
##  [5,]  2.784590e-03
##  ...snip...

对于你的问题,你应该注意到这个三维数组的第一个元素是完全自相关的1,但你关注的第一个真正的自相关是第二个元素,或{{1 }}。因此,0.0559(或更正式ret$acf[2,,])可以获得您的第一个值。