2016-08-09 8 views
0

lmer4 및 lsmeans 패키지에 lmer-function을 사용하여 선형 혼합 모델을 계산했습니다. 여기에는 하나의 종속 변수 rv와 상호 작용 요인 처리, 시간, 나이 및 인종이 있습니다. 시간이 지남에 따라 응답 변수 변경에 관심이 있습니다. 그래서 lstrends-function을 사용합니다. 여태까지는 그런대로 잘됐다. 문제는 모델을 적절하게 맞추기 위해 응답 변수를 제곱해야한다는 것입니다. 그러나 쌍 함수는 rv의 제곱근에 대한 응답만을 제공합니다. 해석하기는 어렵습니다!대비 변환 lstrends의 백 변환 결과는

# Transformed response 
sqwarp.rg <- ref.grid(update(warp.lm, sqrt(breaks) ~ .)) 
summary(sqwarp.rg) 

# Back-transformed results - compare with summary of 'warp.rg' 
summary(sqwarp.rg, type = "response") 

# But differences of sqrts can't be back-transformed 
summary(pairs(sqwarp.rg, by = "wool"), type = "response") 

# We can do it via regrid 
sqwarp.rg2 <- regrid(sqwarp.rg) 
summary(sqwarp.rg2) # same as for sqwarp.rg with type = "response" 
pairs(sqwarp.rg2, by = "wool") 

Anybode 어떻게 아이디어를 가지고 : 패키지 자체가 언급 한 바와 같이,

model.lmer <- lmer(sqrt(rv) ~ treat*time*age*race + (1|individual), data=mydata) 
model.lst <- lstrends(model.lmer, ~treat | age*race , var = "time", type="response") 
pairs(mouse.lst, type="response") 

이 분명히 작동하지 않습니다

그래서 나는 쌍 후 응답 변수를 백 변환을 시도 이 특별한 문제를 해결하려면? 미리 감사드립니다!

EDIT1 :

다음 코드와 같이 수 :

summary(pairs(lsmeans(rg.regrid, ~ treat | race*age, trend="time")), type="response") 
문제가

가, 난 그냥 lsmeans를 들어, lstrends에 대한 참조 그리드를 변경할 수 없습니다 때문에 lstrends의 첫 번째 인수 또는 trend = "time"을 사용하는 lsmeans는 트렌드 인수없이 lsmeans와 같은 선형 혼합 효과 모델 (model.lmer)이 단지 참조 격자의 꼭대기에 있어야합니다. 아마도 그 이유는 다음과 같은 이유로 데이터를 역 변환 할 수 없기 때문입니다

편집 2 : 여기 내 문제를 요약합니다. tty 잘 :

model.sqrt <- lmer(sqrt(rv) ~ time*treat*race*age, data=mydata) 
rg <- ref.grid(model.sqrt) 
rg.regrid <- regrid(rg) 
summary(pairs(lsmeans(rg.regrid, ~treat | race*age*time), type = "response")) 

완벽하게 작동합니다.

Error in summary(pairs(lsmeans(rg.regrid, ~vns | gen * age, trend = "time"), : 
error in evaluating the argument 'object' in selecting a method for function 'summary': Error in data[[var]] : subscript out of bounds 

어떻게 내 데이터를 백업-변환 할 수 여전히 오류를 방지하기 위해 :

summary(pairs(lsmeans(rg.regrid, ~treat | race*age, trend="time"), type = "response")) 

다음과 같은 오류를 제공?

답변

0

전혀 불가능한 것 같지 않습니다. 역 변형은 명백한 패턴이없는 복잡한 절차입니다. 그것이 패키지 제작자가 말한 것입니다.

+0

은 개인 통신 (예 : 전자 메일) 이었습니까, 아니면 어딘가에 문서화되어 있습니까? –

+0

개인적인 의사 소통 이었지만 lsmeans- 문서 자체에는 작은 힌트가 있습니다. "참고 : lstrends는 두 개의 약간 다른 참조 격자를 기반으로 차이 몫을 계산합니다. 따라서 모델 객체로 호출해야합니다. ref.grid 객체. " 그런 이유로 edit2에서 마지막으로 접근하지 못했습니다. 수학적으로 말하면 쉽게 변형되지 않는다는 것이 분명하기 때문에 이미 효과가 없을 것이라고 예견했습니다. –

+0

참고 - 교차 유효성 확인 - http://stats.stackexchange.com/questions/228958/back-transforming-contrast-lstrends-results-in-r/229847#229847에 대한 답변을 게시했습니다. – rvl