小编jon*_*mon的帖子

用于鲁棒线性回归的哪个函数/包与glmulti一起工作(即,表现得像glm)?

背景:使用glmulti进行多模型推理

glmulti是一个R函数/包,用于一般线性模型的自动模型选择,它构造了给定因变量和一组预测变量的所有可能的一般线性模型,通过经典的 glm函数拟合它们,然后允许进行多模型推理(例如,使用从AICc,BIC得到的模型权重.glmulti在理论上也与任何其他函数一起工作,它返回系数,模型的对数似然和自由参数的数量(以及可能的其他信息?),与 glm的格式相同.

我的目标:具有强大错误的多模型推理

我想使用glmulti对定量因变量的误差进行稳健建模,以防止异常值的影响.

例如,我可以假设线性模型中的误差分布为t分布而不是正态分布.利用其峰度参数,t分布可以具有较重的尾部,因此对于异常值(与正态分布相比)更稳健.

但是,我不承诺使用t分配方法.我很满意任何回馈对数似然的方法,因此可以使用glmulti中的多模式方法.但是,这意味着,不幸的是我不能(例如,使用R中的知名强大的线性模型lmRob稳健lmrobrobustbase),因为他们没有对数似然框架下运作,因此无法一起工作glmulti.

问题:我找不到适用于glmulti的强大回归函数

RI的唯一强大的线性回归函数发现在对数似然框架下运行的是heavyLm(来自包); 它用分布模拟错误.不幸的是,heavyLm不适用于glmulti(至少没有开箱即用),因为它没有用于loglik的 S3方法(可能还有其他东西).

为了显示:

library(glmulti)
library(heavy)
Run Code Online (Sandbox Code Playgroud)

使用数据集stackloss

head(stackloss)
Run Code Online (Sandbox Code Playgroud)

常规高斯线性模型:

summary(glm(stack.loss ~ ., data = stackloss))
Run Code Online (Sandbox Code Playgroud)

使用glm的默认高斯链接函数的glmulti多模型推理

stackloss.glmulti <- glmulti(stack.loss ~ ., data = stackloss, level=1, crit=bic)
print(stackloss.glmulti)
plot(stackloss.glmulti)
Run Code Online (Sandbox Code Playgroud)

具有t分布误差的线性模型(默认为df = 4)

summary(heavyLm(stack.loss …
Run Code Online (Sandbox Code Playgroud)

r robust glm

5
推荐指数
1
解决办法
1420
查看次数

标签 统计

glm ×1

r ×1

robust ×1