반응형
이전에 추정 된 값으로 혼합 효과 모델 추정을 다시 시작합니다.
혼합 효과 모델을 추정하기 위해 lmer()
패키지 lme4
에서 사용 하고 있습니다. 이것은 잘 작동하지만 이제는 고정 된 수의 반복에 대한 추정 프로세스를 실행 한 다음 마지막 추정 프로세스에서 계산 한대로 시작 값을 지정하여 프로세스를 재개하려고합니다.
이에 대한 도움말에 따르면 ?lmer
인수를 설정하여 가능합니다.
start
-이것은 새로운 시작 값이며 도움말에 따라ST
피팅 된 모델 에서 슬롯의 값을 추출하여 사용할 수 있습니다.x@ST
maxiter
-명명 된 인수로 제공control
예를 들어 데이터를 lme
사용하여 a를 맞추고 싶다고 가정 iris
하면 다음을 시도해 볼 수 있습니다.
library(lme4)
# Fit model with limited number of iterations
frm <- "Sepal.Length ~ Sepal.Width | Species"
x <- lmer(frm, data=iris,
verbose=TRUE, control=list(maxIter=1), model=FALSE)
# Capture starting values for next set of iterations
start <- list(ST=x@ST)
# Update model
twoStep <- lmer(frm, data=iris,
verbose=TRUE, control=list(maxIter=100), model=TRUE,
start=start)
작동합니다. 첫 번째 열 이 REML, 즉 랜덤 효과 최대 가능성 인 출력을 살펴보십시오 . 특히 모델 2의 REML은 모델 1이 종료되는 지점에서 시작됩니다.
> x <- lmer(frm, data=iris,
+ verbose=TRUE, control=list(maxIter=1), model=FALSE)
0: 264.60572: 0.230940 0.0747853 0.00000
1: 204.22878: 0.518239 1.01025 0.205835
1: 204.22878: 0.518239 1.01025 0.205835
> # Capture starting values for next set of iterations
> start <- list(ST=x@ST)
> # Update model
> twoStep <- lmer(frm, data=iris,
+ verbose=TRUE, control=list(maxIter=100), model=TRUE,
+ start=start)
0: 204.22878: 0.518239 1.01025 0.205835
1: 201.51667: 0.610272 2.00277 0.286049
2: 201.46706: 0.849203 1.94906 0.358809
3: 201.44614: 0.932371 1.88581 0.482423
4: 201.39421: 1.00909 1.71078 0.871824
5: 201.36543: 1.00643 1.60453 1.01663
6: 201.31066: 1.00208 1.35520 1.27524
7: 201.28458: 1.08227 1.22335 1.35147
8: 201.24330: 1.50333 0.679759 1.31698
9: 201.11881: 1.95760 0.329767 0.936047
그러나 다른 값이 maxIters
있으면 더 이상 작동하지 않습니다.
x <- lmer(frm, data=iris,
verbose=TRUE, control=list(maxIter=3), model=FALSE)
start <- list(ST=x@ST)
twoStep <- lmer(frm, data=iris,
verbose=TRUE, control=list(maxIter=100), model=TRUE,
start=start)
통지 (264)에서 REML 값 다시 시작 , 시작을 즉 :
> x <- lmer(frm, data=iris,
+ verbose=TRUE, control=list(maxIter=3), model=FALSE)
0: 264.60572: 0.230940 0.0747853 0.00000
1: 204.22878: 0.518238 1.01025 0.205835
2: 201.94075: 0.00000 1.51757 -1.18259
3: 201.71473: 0.00000 1.69036 -1.89803
3: 201.71473: 0.00000 1.69036 -1.89803
> # Capture starting values for next set of iterations
> start <- list(ST=x@ST)
> # Update model
> twoStep <- lmer(frm, data=iris,
+ verbose=TRUE, control=list(maxIter=100), model=TRUE,
+ start=start)
0: 264.60572: 0.230940 0.0747853 0.00000
1: 204.22878: 0.518238 1.01025 0.205835
2: 201.94075: 0.00000 1.51757 -1.18259
3: 201.71473: 0.00000 1.69036 -1.89803
4: 201.64641: 0.00000 1.82159 -2.44144
5: 201.63698: 0.00000 1.88282 -2.69497
6: 201.63649: 0.00000 1.89924 -2.76298
7: 201.63649: 4.22291e-08 1.90086 -2.76969
8: 201.63649: 4.22291e-08 1.90086 -2.76969
질문 : lmer()
이전에 피팅 된 모델에서 얻은 시작 값으로 안정적으로 다시 시작하려면 어떻게 해야합니까?
세션 정보 :
packageVersion("lme4")
[1] ‘0.999999.2’
이것은 lme4에서 확인 된 버그였으며 댓글에 따라
github.com/lme4/lme4/issues/55에 문제를 기록했습니다 – Andrie '13 Jul 2 '13 : 15:42
lmer에 대해서는 이제 고쳐 져야합니다 (비록 약간 까다로운 glmer는 아니지만). – Ben Bolker 7 월 14 일
That was back when the version was < 0.99999911-6; lme4 on CRAN has had versions > 1.0-4 since 21-Sep-2013.
반응형
'program tip' 카테고리의 다른 글
NSMutableArray addObject :-[__ NSArrayI addObject :] : 인식 할 수없는 선택기가 인스턴스로 전송되었습니다. (0) | 2020.11.10 |
---|---|
정말 '최종'블록이 필요합니까? (0) | 2020.11.10 |
람다 식의 열거 형은 다르게 컴파일됩니다. (0) | 2020.11.09 |
Castle DynamicProxy-GTR로 사용되는 GTP와 관련된 프록시를 만들 때 실패 (0) | 2020.11.09 |
Parcelable 인터페이스의 describeContents () 목적 (0) | 2020.11.09 |