加权线性混合模型中方差的倒数

时间:2014-10-10 15:44:40

标签: r

我有一个线性混合模型,它在循环中运行50次。

每次运行模型时,我都希望响应变量b与方差成反比加权。因此,如果b的方差很小,我希望权重更大,反之亦然。这是该模型的简化版本:

model <- lme(b ~ type, random = ~1|replicate,weights = ~ I(1/b))

这是R数据文件:

b:https://www.dropbox.com/s/ziipdtsih5f0252/b.Rdata?dl=0

输入:https://www.dropbox.com/s/90682ewib1lw06e/type.Rdata?dl=0

复制:https://www.dropbox.com/s/kvrtao5i2g4v3ik/replicate.Rdata?dl=0

我正在尝试使用lme中的权重选项执行此操作。现在我把它作为:

 weights = ~ I(1/b). 

但我不认为这是正确的......也许权重= ~I(1 / var(b))??

我还想稍微调整一下,因为b由因子变量(2级)类型中指定的两种类型的数据组成。

我想分别对这两个级别中的每个级别的方差进行反向加权。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

我不确定以这种方式谈论加权响应变量是否有意义。我在R-SIG混合模型邮件列表中找到的描述是指使用从预测变量导出的反加权,固定效应或随机效应。加权用于最小化模型拟合近似与响应的偏差。有一个函数返回固定效果方差(varFunc函数族的子类),它有一个帮助页面(从?gls页面的权重部分链接):

?varFixed
?varFunc

它需要一个公式对象作为其参数。所以我最初的猜测是:

model <- lme(b ~ type, random = ~1|replicate, weights = varFixed( ~type) )

你被证明是错误的。怎么看这是否有效:

model <- lme(b ~ type, random = ~1|replicate, weights = varFixed( ~1| type) )

(我的猜测是这种加权是默认情况,并且可能不需要指定这些特定权重。加权的反向性质是暗示的,不需要用&#34; 1 / type&#明确说明34;在混合模型的情况下,正确的#34;结构取决于设计和先前的科学,并且没有提出任何一个,所以这实际上只是一个句法评论而不是对这个模型的认可我没有下载文件。看起来很奇怪,有三个单独的文件,没有代码可以将它们链接到一个数据框。通常人们希望有一个数据对象,其中列名将用于回归的公式中函数。(我也怀疑这是这个函数的默认行为,因此我未经测试的预测是,通过省略&#39;权重&#39;参数,你将不会得到任何改变。)