我的工作就是统计相关,但是很大部分的工作都是用线性混合模型,我用线性混合模型做的比较多的工作是分析试验数据的遗传结构,各种遗传参数评估(遗传力、配合力、育种值等)。 在1992-1995年之间,我刚开始用SAS(首先是proc glm,最后是proc mixed),后来发现当我想用SAS计算动物模型的BLUP(最佳线性无偏预测值)时,过程是很痛苦,而且时间很漫长,于是1995-1996我使用DFREML(Karen Meyer,现在是WOMBAT)和AIREML(现在已经没有了),这些软件是为分析动物育种后代的性状,对于试验设计的数据分析比较麻烦。最后在1996或者1997早期,我开始接触使用ASREML(程序是由Arthur和Robin、Brian编写,商业化运作由VSNi公司)我甚至写了本ASReml的cookbook,那时我还用SAS来清洗数据,直到2003年我还没真正开始使用R(或S)语言,后来我认识到在笔记本电脑里面装个虚拟机来运行SAS,是得不偿失的,于是在2009年我完全放弃了SAS开始使用R语言。 选择是一个很头疼的问题,R中有很多软件包可以做混合线性模型,这里我只介绍nlme、lme4和ASreml(对!ASreml是商业版,但是还有对应的R包),这些都是基于Reml的算法,当然还有一些包是基于贝叶斯的算法,这部分在其他章节介绍。 这是一个比较成熟的R包,是R语言安装时默认的包,它除了可以分析分层的线性混合模型,也可以处理非线性模型。在优势方面,个人认为它可以处理相对复杂的线性和非线性模型,可以定义方差协方差结构,可以在广义线性模型中定义几种分布函数和连接函数。 lme4包是由Douglas Bates开发,他也是nlme包的作者之一,相对于nlme包而言,它的运行速度快一点,对于随机效应的结构也可以更复杂一点,但是它的缺点也和nlme一样: 2、它可以与构建系数的包连接,比如mmpedigree包,但是结合比较脆弱。 1、它是收费的,当然它对于不发达国家的科研机构是免费的,不过需要申请和被审核。 它的用户主要是育种公司、科研机构等,它可以在各种平台上运行,包括Windows、Linux、OS X等。 我将用一个传统的裂区数据来说明不同软件包的用法,这个数据oats是在MASS包中,是研究大麦品种和N肥处理的裂区试验,其中品种为主区,肥料为裂区。代码如下 调用这个包很简单,y变量写在左边,然后是固定因子,然后是随机因子,注意1block/mainplot是裂区试验残差的写法,因为里面有两个残差。代码如下: lme4包的语法也相似,随机效应有着和nlme相同的语法,不同的是lme4包它的结果给出了随机效应的标准差,而不是方差。 翻译的过程也是学习的过程,看着运行的结果,和页面结果上一样,感觉棒棒的。 如果您对于数据分析,对于软件操作,对于数据整理,对于结果理解,有任何问题,欢迎联系我。 |