我是 R 新手,所以请温柔一点。
我的印象是rstandard(model)返回残差的 z 分数model。但是,当我自己在 z 中对残差进行标准化时,结果就不同了。事实上,rstandard(model)平均值与 0 不同,标准差与 1 不同。差异似乎不可忽略。具体是rstandard(model)做什么的?还是我在这里做错了什么?
> x = rnorm(30, mean = 100, sd = 15)
> y = rnorm(30, mean = 100, sd = 15)
> model = lm(y ~ x)
> z.res = residuals(model)/sd(residuals(model)) #standardizing it myself
> rstandard(model) - z.res #difference between rstandard and what i did
1 2 3 4 5
-4.422354e-04 1.556269e-04 -4.576832e-03 -1.274350e-03 1.048068e-01
6 7 8 9 10
-2.333922e-02 1.820134e-02 -3.307542e-03 3.368978e-02 -1.804108e-04
11 12 13 14 15
-1.100621e-01 -1.343715e-03 -1.300427e-03 1.509862e-03 3.246602e-03
16 17 18 19 20
3.734255e-03 -1.821539e-06 -1.153190e-02 -1.713254e-06 -2.185101e-02
21 22 23 24 25
-2.681935e-02 2.562472e-03 -4.721114e-02 -1.084481e-04 -3.430827e-03
26 27 28 29 30
4.149684e-04 7.705807e-04 2.166815e-03 2.537837e-02 4.182761e-04
> mean(z.res)
[1] -9.428041e-18
#as expected of z-scores, mean is 0
> sd(z.res)
[1] 1
#as expected of z-scores standard deviation is 1
> mean(rstandard(model))
[1] -0.001990908
#not really 0
> sd(rstandard(model))
[1] 1.019699
#not really 1
此外,我理解R 的 lm 输出中的标准化残差的方式rstandard实际上是学生化残差。但是不是已经有了rstudent吗?
我在 Xubuntu 12.04 中使用 R 版本 2.14.1。
谢谢你。