2017-05-19 12 views
0

JMは、縦と横のジョイントデータがジョイントされたモデルにフィットするパッケージです。私はそれらのサンプルデータで実行することができますが、自分のデータでエラーが発生します。 JMfit1やJMfit2の問題点は何ですか?JMパッケージのエラーR

マイデータ: https://1drv.ms/u/s!AkG9wyz5G1c1gR4Vs_xohO--4Rb5

install.packages('JM') 
require(JM) 
?jointModel 

# Example from vignette 
# linear mixed model fit (random intercepts + random slopes) 
fitLME <- lme(log(serBilir) ~ drug * year, random = ~ year | id, data = pbc2) 
summary(fitLME) 
# survival regression fit 
fitSURV <- survreg(Surv(years, status2) ~ drug, data = pbc2.id, x = TRUE) 
summary(fitSURV) 
# joint model fit, under the (default) Weibull model 
fitJOINT <- jointModel(fitLME, fitSURV, timeVar = "year") 
fitJOINT 
summary(fitJOINT) 
# we can also include an interaction term of log(serBilir) with drug 
fitJOINT <- jointModel(fitLME, fitSURV, timeVar = "year", 
         # interFact = list(value = ~ drug, data = pbc2.id)) 
fitJOINT 
summary(fitJOINT) 


# With my data: 
data = readRDS('data.list.d1.dk.RDS') 
d1 = data$d1 
dk = data$dk 
dim(d1); names(d1) 
dim(dk); names(dk) 

slct.cov = c('ID','Yi','Ai','zi.1','zi.2','zi.3','xi_A','di') 

fmla.fix = as.formula('Yi ~ Ai*(zi.1+zi.2+zi.3)') 
fmla.rnd = as.formula(' ~ Ai|ID') 

fit.Yi = lme(fixed= fmla.fix, random=reStruct(fmla.rnd), 
       method="ML", data = dk[,slct.cov]) 

surv.model = survreg(Surv(xi_A, di) ~ zi.1+zi.2+zi.3, data = d1[,slct.cov], x = TRUE) 

JMfit1 = jointModel(lmeObject = fit.Yi, survObject = surv.model, timeVar = 'Ai') 
# Error in if (t1 || t2) { : missing value where TRUE/FALSE needed 


dForm <- list(fixed = ~ 1 + zi.1 + zi.2 + zi.3, indFixed = c(2,6,7,8), random = ~ 1, indRandom = 2) 

JMfit2 = jointModel(lmeObject = fit.Yi, survObject = surv.model, timeVar = 'Ai', 
        derivForm = dForm, parameterization = c("both")) #"both", "value", "slope" 
        # method = "weibull-PH-aGH", 
        # "weibull-PH-aGH", "weibull-PH-GH", "weibull-AFT-aGH","weibull-AFT-GH", 
        # "piecewise-PH-aGH", "piecewise-PH-GH", "Cox-PH-aGH", "Cox-PH-GH", 
        # "spline-PH-aGH", "spline-PH-GH", # "ch-Laplace" 
        # interFact = NULL, lag = 0, scaleWB = NULL, 
        # CompRisk = FALSE, init = NULL, control = list()) 

答えて

0

それはあなたのfmla.fixモデルが右多分、独自でより多くの調査が必要であるように私には見えます。

Yi ~ Ai+zi.1+zi.3 + Ai*(zi.2)またはYi ~ Ai+zi.1+zi.2+zi.3への対話を単純化すると、有効なJMfit1が得られます。

JMfit2(あなたは何ですか?)のために別のエラーが発生すると思われますので、後の問題となる可能性があります。

関連する問題