2

我正在使用包含 205 个观察值和 2 个解释变量的数据集:(site两个级别)和strain(21 个级别)。当应变是固定变量时,我试图将混合模型拟合到数据中。实验不平衡(即每个菌株*位点组合中的重复次数不同)。我使用 Rstudio 3.0.2;窗户 8。

我首先尝试运行以下命令-

 lme(dist_OFT_min1~strain , 
     random=~strain|site,data=data.frame(d1),
     method='REML')

但是我收到以下错误:

logLik.lmeStructInt(lmeSt, lmePars) 中的错误:'Calloc' 无法分配内存(8 个字节的 730512784)
此外:警告消息:
1:在 logLik.lmeStructInt(lmeSt,lmePars) 中:达到 3873Mb 的总分配:请参阅帮助(memory.size)
2:在 logLik.lmeStructInt(lmeSt, lmePars) 中:达到 3873Mb 的总分配:请参阅帮助(memory.size)

我试图将内存限制增加到 8000 。但是,当我重新运行上一行 Rstudio(以及整个 pc)变得非常缓慢且无响应时,我让它运行了 30 多分钟而没有结果。

我试图将模型拟合到一个缩减数据集 - 仅包含 5 个菌株:

 lme(dist_OFT_min1~strain , 
     random=~strain|site,
     data=data.frame(d.test),
     method='REML',
     control = lmeControl(msMaxIter =90,maxIter=90)) 

又出现了另一种麻烦:

lme.formula 中的错误(dist_OFT_min1 ~ 应变,随机 = ~strain | 站点,:
nlminb 问题,收敛错误代码 = 1 消息 = 没有收敛就达到迭代限制 (10)

谁能帮我了解我的数据可能会遇到什么样的麻烦?我怎样才能检查任何?(我还是个初学者)。在这里,我分享了我自己模拟的类似数据,但我遇到了与原始数据相同的问题(实验室等于站点):

    library(nlme)
    u.strain=letters[1:10]
    u.lab=paste('L',letters[1:5],sep='')
    test.dat=data.frame(strain=sort(rep(u.strain,5)),lab=rep(u.lab,10),test=rep(7,50))
    test.dat[order(test.dat$strain),'test']=test.dat[order(test.dat$strain),'test']+sort(rep(rnorm(n=10,mean=0,sd=3),5)) #strain effect
    test.dat[order(test.dat$lab),'test']=test.dat[order(test.dat$lab),'test']+sort(rep(rnorm(n=5,mean=0,sd=4),10)) #lab effect
    test.dat[,'test']=test.dat[,'test']+ rnorm(n=50,mean=0,sd=5) # interaction
    test.dat=rbind(test.dat,test.dat,test.dat,test.dat,test.dat)
    test.dat[,'test']=test.dat[,'test']+rnorm(n=250,0,sd=2.5)

我认为我实际需要的模型如下:

    lme(teat~strain , random=~strain+strain:lab|lab,
             data=data.frame(test.dat),method='REML')

还是同样的麻烦出现了。

ps 我主要寻求估计相互作用应变的方差:lab。有小费吗 ?

4

1 回答 1

2

明确定义交互:

test.dat$strainlab <- with(test.dat,interaction(strain,lab))

将站点(实验室)拟合为固定效果(如果您只有两个站点,则更有意义),随机应变的站点交互

m1 <- lme(test~strain+lab , random=~1|strainlab,
    data=data.frame(test.dat),method='REML')
VarCorr(m1)
## strainlab = pdLogChol(1) 
##             Variance  StdDev
## (Intercept) 29.286446 5.411695
## Residual     5.398621 2.323493

近似置信区间:

intervals(m1,which="var-cov")
## Approximate 95% confidence intervals
## 
##  Random Effects:
##   Level: strainlab 
##                    lower     est.    upper
## sd((Intercept)) 4.258995 5.411695 6.876374
## 
##  Within-group standard error:
##    lower     est.    upper 
## 2.106594 2.323493 2.562725 
##

或者,随机拟合实验室和应变实验室交互:

m2 <- lme(test~strain , random=~1|lab/strain,
data=data.frame(test.dat),method='REML')
VarCorr(m2)
##             Variance     StdDev  
## lab =       pdLogChol(1)         
## (Intercept) 18.608568    4.313765
## strain =    pdLogChol(1)         
## (Intercept) 29.286446    5.411695
## Residual     5.398621    2.323493
## 
intervals(m2,which="var-cov")
## Approximate 95% confidence intervals
## 
##  Random Effects:
##   Level: lab 
##                    lower     est.    upper
## sd((Intercept)) 1.925088 4.313765 9.666346
##   Level: strain 
##                    lower     est.    upper
## sd((Intercept)) 4.259026 5.411695 6.876324
## 
##  Within-group standard error:
##    lower     est.    upper 
## 2.106600 2.323493 2.562717 
于 2014-03-10T01:37:25.010 回答