在GLM中指定协方差结构有什么好处(而不是将协方差矩阵中的所有非对角线条目都视为零)?除了反映人们对数据的了解之外,它还能
- 提高贴合度?
- 提高对保留数据的预测准确性?
- 让我们估计协方差的程度?
施加协方差结构的成本是多少?可以
- 为估算算法增加计算复杂性?
- 增加估计参数的数量,还增加AIC,BIC,DIC?
是否有可能凭经验确定正确的协方差结构,或者这是否取决于您对数据生成过程的了解?
我没有提到任何成本/收益吗?
在GLM中指定协方差结构有什么好处(而不是将协方差矩阵中的所有非对角线条目都视为零)?除了反映人们对数据的了解之外,它还能
施加协方差结构的成本是多少?可以
是否有可能凭经验确定正确的协方差结构,或者这是否取决于您对数据生成过程的了解?
我没有提到任何成本/收益吗?
Answers:
基本上,您必须在GLM中指定协方差结构。如果通过“假设无协方差”来表示“协方差矩阵中的所有非对角线条目均为零”,那么您所做的只是假设一个非常具体的协方差结构。(您可以更具体一些,例如,假设所有方差都相等。)
这实际上是“我不赞成任何哲学;我是实用主义者”的一种变体。-“您刚刚描述了您所遵循的哲学。”
因此,我想说,考虑协方差结构的好处是有机会使用更适合您的数据的模型。正如您应该为观测的期望值(或均值)包括已知的函数关系一样,您应该在协方差中说明您知道的任何结构。
当然,“缺点”是您需要考虑所有这一切。仅使用软件的默认设置就容易得多。但这就像总以第一档行驶,因为您的汽车在购买时就处于第一档,并且了解换档需要付出努力。不建议。
这是另一个与GLM甚至不直接相关的不完整答案...根据我对结构方程建模(SEM)的非常有限的经验,我学到了一些想法,希望可以对讨论有所帮助。请始终牢记,我是基于SEM的(有限)经验而不是GLM 本身讲的,并且我完全不知道这种区别是否以及在何处变得重要。我不是统计人员,而是统计人员,因此我也不确定这些想法是否适用于所有或什至大多数数据。我只发现它们已应用于我自己的大多数对象。
首先,我要回应@StephanKolassa强调建模已知知识的重要性。尽管您承认了这一点,但我认为您所要求的好处是对已知信息进行建模的好处。因此,它们有意义地反映出您的结果模型拥有有关已添加的协方差结构的信息。
在SEM中,我发现(通过有限的经验,而不是通过理论研究):
好处
如果协方差远大于其标准误差(即,如果对称路径很重要),则对协方差结构进行建模可提高拟合优度(GoF)。这意味着您通常不会通过建模接近零的相关性来改善GoF,并且多重共线性会因GoF夸大标准误差而导致问题。
尚未尝试保留数据以进行预测,但是我的直觉是将模型中的协方差固定为零类似于通过组合一组单独的单IV线性回归方程来预测DV。与这种方法不同,在生成预测DV的方程模型时,多元回归考虑了IV的协方差。通过将直接影响与完全在包括的IV组中发生的间接影响分开,这无疑提高了可解释性。老实说,我不确定这是否一定会改善DV的预测。作为统计用户而不是统计学家,在这种希望类似的情况下,我综合了以下模拟测试功能以给出不完整的答案(显然,“是的,当模型包含IV协方差时,预测精度会提高”)。
simtestit=function(Sample.Size=100,Iterations=1000,IV.r=.3,DV.x.r=.4,DV.z.r=.4) {
require(psych); output=matrix(NA,nrow=Iterations,ncol=6); for(i in 1:Iterations) {
x=rnorm(Sample.Size); z=rnorm(Sample.Size)+x*IV.r
y=rnorm(Sample.Size)+x*DV.x.r+z*DV.z.r
y.predicted=x*lm(y~x+z)$coefficients[2]+z*lm(y~x+z)$coefficients[3]
bizarro.y.predicted=x*lm(y~x)$coefficients[2]+z*lm(y~z)$coefficients[2]
output[i,]=c(cor(y.predicted,y)^2,cor(bizarro.y.predicted,y)^2,
cor(y.predicted,y)^2>cor(bizarro.y.predicted,y)^2,cor(x,z),cor(x,y),cor(y,z))}
list(output=output,percent.of.predictions.improved=100*sum(output[,3])/Iterations,
mean.improvement=fisherz2r(mean(fisherz(output[,1])-fisherz(output[,2]))))}
# Wrapping the function in str( ) gives you the gist without filling your whole screen
str(simtestit())
Iterations
Sample.Size
z
x
y
x
z
y
x
z
y.predicted
bizarro.y.predicted
output
Iterations
x
y
z
output
simtestit()
str( )
)多元回归以说明IV的协方差,以及迭代过程中这些改进的平均值(以 psych
IV.r
)更大。由于您可能比我更熟悉GLM功能(这一点都不熟悉),因此您可以更改此功能或使用基本思想在所需的所有IV上比较GLM预测,而不会带来太多麻烦。假设结果会(或确实)相同,那么第二个问题的基本答案似乎可能是肯定的,但多少取决于IV的变化程度。保留数据与用于拟合模型的数据之间的采样误差差异可能会压倒后者数据集中预测精度的提高,因为除非IV相关性很强(至少,在只有两个IV的最大基本情况)。
在模型中为IV之间的协方差指定一条自由路径意味着要求模型拟合函数估计该路径的系数,该系数代表IV之间的协方差程度。如果您的GLM函数允许您指定一个模型,在该模型中可以自由估计IV之间的协方差,而不是固定为零,那么您的问题就是希望弄清楚如何做到这一点以及如何使函数输出的问题这个估计。如果您的函数默认情况下估计IV协方差,那么您的问题将进一步简化为仅后者(与lm( )
)。
费用
是的,自由估计IV之间的协方差意味着模型拟合算法必须做一些工作来估计该路径的系数。不指定模型中的路径通常意味着将系数固定为零,这意味着模型拟合算法不需要估算系数。估计其他协方差参数意味着整个模型将需要更多时间来拟合。在已经花费很长时间估算的模型中,额外的时间可能会很多,尤其是在您拥有大量IV的情况下。
是的,自由估计的协方差结构意味着参数估计。总体具有协方差参数,因此,如果您要估算总体协方差,那么您就需要估算参数。但是,如果由于选择估计非平凡的相关性而不是将其固定为零而使模型拟合得更好,则可能希望Akaike和Bayesian信息标准得到改善,就像其他包含GoF的标准一样。我不熟悉偏差信息标准(您所指的DIC,对吗?),但是从从其Wikipedia页面,它似乎还包含GoF和对模型复杂性的惩罚。
因此,GoF应该只需要按比例进行改进,而无需增加模型的复杂度来改进DIC。如果这种情况没有整体发生,那么随着您估计更多的IV协方差,像这样的标准将对模型的复杂性造成不利影响。例如,如果您的IV不相关,则可能会出现问题,但是由于您认为IV可能相关,或者因为这是函数的默认设置,因此可以随意估计协方差结构。如果您先前有理论上的理由假设一个相关系数为零,并且您不希望模型测试此假设,则在这种情况下,您可能有理由将路径固定为零。如果您先前的理论大致正确,
Dunno您正在使用哪个函数,但是我肯定我不熟悉它,所以我敢肯定,这个答案可以改善,尤其是我对第二个收益问题的答案(一方面,我通过模拟得出的关于多元回归的答案的证明可能在某处可用)。一般而言,我什至都不熟悉GLM(假设您的意思是广义的,而不是如标签所暗示的一般线性建模),所以如果与SEM的区别使我对您的问题的回答无效,我希望有人可以评论或编辑此答案。完全没有
尽管如此,看来我们已经等了十个月了,要求专家发表意见,所以,我想,如果这不能使他们做到这一点,那就只能自己做。让我知道您是否想使用R中的GLM函数。如果您可以在R中指定感兴趣的GLM函数,那么我也许能够弄清楚如何为您的应用程序更直接地回答#3。我也不是模拟测试专家,但是我认为您的其他四个问题都可以进行模拟测试(更直接)。