模拟{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答案 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,,]
)可以获得您的第一个值。