2014-02-20 2 views
0

기본적으로 누락 된 값이있는 nlme::lme이 실행 중입니다. 모델은 na.action=na.omit으로 잘 맞습니다. 그러나 어떻게 fitted/residuals/coef의 이름이 한 줄씩 이동하는 것처럼 보입니까?nlme : NA가있는 요소 이름이 잘못 되었습니까?

## Generate data --------------------- 
X1=gl(2,4) 
X2=gl(2,2,8) 
Y=rnorm(8) 
dat=data.frame(Y=Y,X1=X1,X2=X2) 
dat 

## missing value ------------- 
mis.dat=dat 
mis.dat[3,"Y"]=NA 
mis.dat 
> mis.dat 
      Y X1 X2 
1 -0.06845332 1 1 
2 0.89169085 1 1 
3   NA 1 2 
4 1.88997449 1 2 
5 0.95912879 2 1 
6 -0.64049400 2 1 
7 -0.23354948 2 2 
8 -0.66869350 2 2 


## Fit model ----------------------- 
model=nlme::lme(Y~1,random=~1|X1/X2,data=mis.dat,na.action=na.omit) 
summary(model) 

## Notie the names ------------------- 
fitted(model) 
> fitted(model) 
     1/1  1/1  2/1  2/1  2/2  2/2  <NA> 
0.67179438 0.67179438 0.67179439 0.02855517 0.02855517 0.02855517 0.02855517 
attr(,"label") 
[1] "Fitted values" 

#model$coef$random 
#resid(model) 

맞는 값의 이름은? 세 번째 위치에 1/2이 없어야하며, 그 다음에 이름이 한 위치만큼 오른쪽으로 이동해야하므로 NA가 제거됩니다.

답변

1

사소한 버그를 발견했습니다. 어떻게되는지 nlme:::fitted.lme에서 봐 : 장착 값이 관찰 3 인해 y 누락에 적합 생략에도 불구하고 8 개 장착 값이 얼마나

object[["fitted"]] 
     fixed  X1  X2 
1 0.6014526 0.1686912 0.1686912 
2 0.6014526 0.1686912 0.1686912 
4 0.6014526 0.1686912 0.1686912 
5 0.6014526 1.0342140 1.0342140 
6 0.6014526 1.0342140 1.0342140 
7 0.6014526 1.0342140 1.0342140 
8 0.6014526 1.0342140 1.0342140 

주를 사용하여 모델에서 추출

- 가치가 있으며 거기 있으면 안됩니다. 이름은 다음과 같이 생성됩니다.

object[["groups"]] 
    X1 X2 
1 1 1/1 
2 1 1/1 
3 1 1/2 
4 2 2/1 
5 2 2/1 
6 2 2/2 
7 2 2/2 

이름은 7 개뿐입니다. match을 사용하면 NA가 도입됩니다.

궁극적으로이 문제는 lme에 있으며 적합 값 7 개만 반환해야합니다. 그러나이 문제를 어떻게 해결할 수 있는지 알 수있는 시간이 없습니다. 부담없이 report it.

관련 문제