14.3 Standard Two-Stage Method

한 사람당 4 points의 측정값이 있으므로 두 개의 parameter(intercept 하나, slope 하나)가 필요한 단순선형회귀를 개인별로 할 수 있다. 이런 방식으로 개인별로 fitting (또는 estimation)한 후, 그 \(\beta\)들의 분포(평균과 분산)를 구하는 방식을 standard two-stage method라고 한다.

다음은 nlme::lmList함수를 사용하지 않고 구하는 방법을 먼저 보여 준다.

Res = data.frame(ID=IDs, Intercept=NA, age=NA)
for (i in 1:nID) {
  Res[i, 2:3] = lm(distance~age, Orthodont[Orthodont$Subject==IDs[i], ])$coefficients
}
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에 따라 원하는 결과를 못 얻을 수 있으므로, 사용시에 주의가 필요하다.