14.3 Standard Two-Stage Method
한 사람당 4 points의 측정값이 있으므로 두 개의 parameter(intercept 하나, slope 하나)가 필요한 단순선형회귀를 개인별로 할 수 있다. 이런 방식으로 개인별로 fitting (또는 estimation)한 후, 그 \(\beta\)들의 분포(평균과 분산)를 구하는 방식을 standard two-stage method라고 한다.
다음은 nlme::lmList함수를 사용하지 않고 구하는 방법을 먼저 보여 준다.
= data.frame(ID=IDs, Intercept=NA, age=NA)
Res for (i in 1:nID) {
2:3] = lm(distance~age, Orthodont[Orthodont$Subject==IDs[i], ])$coefficients
Res[i,
} Res
ID Intercept age
1 M01 17.30 0.950
2 M02 14.85 0.775
3 M03 16.00 0.750
4 M04 24.70 0.175
5 M05 13.65 0.850
6 M06 18.95 0.675
7 M07 14.95 0.800
8 M08 19.75 0.375
9 M09 14.40 0.975
10 M10 21.25 0.750
11 M11 20.05 0.325
12 M12 13.25 1.000
13 M13 2.80 1.950
14 M14 19.10 0.525
15 M15 13.50 1.125
16 M16 16.95 0.550
17 F01 17.25 0.375
18 F02 14.20 0.800
19 F03 14.40 0.850
20 F04 19.65 0.475
21 F05 19.60 0.275
22 F06 17.00 0.375
23 F07 16.95 0.550
24 F08 21.45 0.175
25 F09 18.10 0.275
26 F10 13.55 0.450
27 F11 18.95 0.675
colMeans(Res[,2:3])
Intercept age
16.7611111 0.6601852
cov(Res[,2:3])
Intercept age
Intercept 16.227179 -1.2649733
age -1.264973 0.1370798
cor(Res[,2:3])[2,1]
[1] -0.8481509
여기서 \(\beta\)들의 population mean vector, variance-covariance matrix, correlation matrix에 대한 confidence interval은 어떻게 구할 지 고민해 보자.
nlme에는 lmList() 함수가 있어서 nfnGroupedData를 간편하게 분석할 수 있게 해준다..
lmList(distance ~ age, Orthodont)
위 lmList 함수는 data object의 type에 따라 원하는 결과를 못 얻을 수 있으므로, 사용시에 주의가 필요하다.