- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 MICE 包估算了数据。现在,我想展示基于汇总数据的 GLM 结果。
这就是我得出数据的方式:
data.imputed <- mice(data, m=5, maxit = 50, method = 'pmm', seed = 500)
这就是我用来创建模型的内容:
model.imputed1 <- with(data = data.imputed, expr = glm(dv ~ iv1 + iv2 + iv3, family=binomial))
model.imputed <- pool(model.imputed1)
但是,当我运行
AIC(model.imputed)
或
logLik(model.imputed)
就此而言,我收到消息
Error in UseMethod("logLik") : no applicable method for 'logLik' applied to an object of class "c('mipo', 'data.frame')"
这看起来与老鼠存储其估算文件的方式有关。有没有办法从这个模型中提取这两个指标(AIC 和 logLik)?我如何才能将其转换为可从中提取这两个指标的模型?
谢谢!
TT
最佳答案
查看 pool
结果的结构,似乎 mice::pool
不存储此信息。
str(pool(model.imputed1))
#Classes ‘mipo’ and 'data.frame': 0 obs. of 3 variables:
# $ call : language pool(object = model.imputed1)
#$ m : int 40
#$ pooled:'data.frame': 3 obs. of 9 variables:
# ..$ estimate: num 0.0722 -0.2533 -0.8663
#..$ ubar : num 0.000422 0.000318 0.029756
#..$ b : num 2.53e-06 3.41e-05 3.95e-04
#..$ t : num 0.000425 0.000353 0.030162
#..$ dfcom : int 10060 10060 10060
#..$ df : num 9902 2765 9487
#..$ riv : num 0.00615 0.10989 0.01362
#..$ lambda : num 0.00611 0.09901 0.01343
#..$ fmi : num 0.00631 0.09966 0.01364
我不确定 Rubin 的规则在组合 AIC 和 LL 等统计数据时是否以相同的方式起作用,但您可以做的一件事是获取每个数据集的 AIC 和 LL。由于您只有 5 个数据集,因此这不会花费很长时间。
首先以长格式检索所有已完成的数据集。
L_df <- mice::complete(data.imputed,"long",include = F)
然后创建一些空向量并检索插补数(在您的情况下为 m = 5)。
AIC1<-c()
logLik1 <- c()
m <- max(L_df$.imp)
然后估计每个数据集的模型,并将 AIC 和 LL 存储在刚刚创建的空向量中。
for(i in 1:m){
model.imputed1 <- glm(dv ~ iv1 + iv2 + iv3, family=binomial, data = L_df[which(L_df$.imp == m),])
AIC1[i] <- AIC(model.imputed1)
logLik1[i] <- logLik(model.imputed1)
}
此循环的结果应该是存储在 AIC1
中的 AIC 的 5 个值和存储在 logLik1
中的 LL 的 5 个值。您可以使用这些值来报告平均 AIC 及其数据集之间的方差,或者报告更稳健的度量,例如中位数和范围(因为您只有 5 个值)。
关于r - 如何从合并的 GLM 中提取 AIC 和对数似然?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51815570/
如何将 glm::vec4 转换为 glm::vec3? 仅需要 x、y、z - 可以删除 w 组件。 在 GLSL 中,这可以通过 .xyz[1] 完成,但在 glm 中,这会导致编译错误: err
我正在使用 R 中的 h2o 包通过 h2o.glm() 函数来适应 GLM。在具有 l1 正则化惩罚的 GLM 中评估特征重要性的一种合理方法是监视参数进入线性预测器(即模型)的顺序,因为 l1 惩
我在从最新版本的 R 中的 glm 计算 OR 置信区间时遇到问题,但我以前没有遇到过这个问题。与任何 glm 在哪里 family="binomial" ,无论模型多么简单,我都可以轻松提取摘要和
我需要在我的 glm 图上添加 95% 的置信区间。 当我执行 multiline=T 时(因为我需要在同一个地 block 上进行 2 次处理,所以我这样做了),间隔消失了。我怎样才能让他们回来?
对于上下文,我一直在学习 OpenGL,并且学习了透视投影。花了整整一个小时试图弄清楚为什么我的三角金字塔没有正确显示,直到我注意到我的一个矩阵乘法(使用 operator* for glm::mat
你能告诉我 返回了什么吗? glm$残差和 残留物(glm)其中 glm 是一个准泊松对象。例如我将如何使用 glm$y 和 glm$linear.predictors 创建它们。 glm$残差
这是关于理解 glm 源码的。我想知道 glm 是否对它的类进行了零初始化并进行了尝试。是的,glm::vec3 和 glm::mat4 被初始化,即使没有提供构造函数值。然后我想了解它是如何完成的并
我正在尝试使用 probit 模型重现其他人的工作。不幸的是,我没有太多关于他们方法的信息,只有他们的起始数据和他们的模型图。 当我在 ggplot 中绘制数据并使用 geom_smooth(meth
我有一个 ModelMatrix 类,其中我有一个 glm::vec3 定义为 glm::vec3 *position = nullptr; 然后我得到了一个setter方法 void ModelMa
我想标准化生物数据集的变量。我需要使用不同的响应变量运行 glm、glm.nb 和 lm。 该数据集包含按地块划分的给定树种的数量(所有地块大小相同)和一系列定性变量:植被类型、土壤类型和牛的存在/不
我正在使用著名的 OpenGL 框架创建一个漂亮的图形引擎,但突然遇到了一个意想不到的问题(就像所有问题一样)。 我必须创建一个函数来修改 glm::mat3 中的特定值。为此,我创建了一个简单的函数
其他答案似乎有一些相关信息,但没有解决我遇到的问题。 从我在 Xcode 中的项目中,我选择了“将文件添加到项目”并选择了整个 glm 子文件夹(我被告知这是使用 glm 所需的全部)。然后,在我的
像下面这样计算四元数时, 你能解释一下 1.0f means.. 是什么意思吗? 我认为它可能是 x 轴的 90 度。 glm::angleAxis(3.141592... / 2, glm::dv
这可能真的很简单,但我已经下载了 glm 的正确软件包 glm-0.9.9-a2,但我不知道如何安装。说明要么太复杂,要么太简单。 我无法通过使用包管理器或将存储库添加到 aptitude 或 Ana
我无法理解使用 glm 的效果编码。举个例子: data('mpg') mpg$trans = as.factor(mpg$trans) levels(mpg$trans) [1] "auto(av)
我正在尝试在 R 中重现二项式 glm 的结果。 考虑来自此处的数据 http://www.ats.ucla.edu/stat/r/dae/logit.htm mydata <- read.csv("
ChatGPT已经火了一段时间了,国内也出现了一些平替,其中比较容易使用的是ChatGLM-6B: https://github.com/THUDM/ChatGLM-6B ,主要是能够让我们基于
我一直在阅读code R 使用它来拟合广义线性模型 (GLM),因为 R 的源代码是免费提供的。使用的算法称为迭代重新加权最小二乘法 (IRLS),这是一种有据可查的算法。对于每次迭代,都会调用 Fo
我读过 glmnet 可以在没有正则化的情况下使用,即它可以用作常规 glm。我正在写一篇论文并试图避免使用许多不同的包,因此使用 glmnet 进行常规的 glm 逻辑回归拟合会很方便。谁能帮我?
我正在尝试使用 glm( family='binomial') 来拟合逻辑回归. 这是模型: model<-glm(f_ocur~altitud+UTM_X+UTM_Y+j_sin+j_cos+tem
我是一名优秀的程序员,十分优秀!