问题标签 [r-mice]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - as.mids 用 NA 替换附加值
我需要将变量添加到使用构建的估算数据集中mice()
,然后使用as.mids()
将它们重新组合成一个mids
对象以供以后分析。但是,当我complete()
在重建的mids
对象上使用时,我发现添加到数据集中的新变量中的许多值都变成了 NA。
在上面的示例中,我创建了一个新的 long data.frame 并将其应用于as.mdids()
它,但是如果我使用cbind
将新变量添加到d.long
,或者将新变量分配给 ,我会得到相同的结果d.long$added
。
重新组装对象后,如何确保新变量中的值保留在那里mids
?
r - pool.compare 生成不一致的参数错误
替代标题:模型矩阵和系数集显示不同数量的变量
我正在使用R的mouse包进行一些分析。我想使用 比较两个模型(保存在mira对象中),但我不断收到以下错误:pool.compare()
Error in model.matrix(formula, data) %*% coefs : non-conformable arguments
二元运算符表示R%*%
中的矩阵乘法。
该表达式model.matrix(formula, data)
生成“具有指定公式和数据的类回归模型的设计矩阵”(来自model.matrix {stats}的R文档)。
在错误消息中,coefs
取自est1$qbar
,其中est1
是mipo对象,qbar
元素是“完整数据估计的平均值。多重插补估计”。(来自mipo-class {mice}的文档)。
就我而言
est1$qbar
是长度为 36 的数值向量data
是一个数据框,包含 82 个变量的 918 个观测值formula
是包含我的模型公式的类“公式”model.matrix(formula, data)
是一个尺寸为 918 x 48 的矩阵。
如何解决/防止此错误?
r - R中多重插补(MICE)的简单限制/约束
我想使用 R 中的MICE包对一组变量执行多重插补。
最小值为gcs
3 ,最大值为15,它可能不是小数,如何在MICE中设置这些约束?也一样,但是这个只有0hf
的下限。
r - 仅在 R 中使用 plot.mids 绘制指定变量
我有一个在 R 中运行鼠标算法得到的 mids 对象。我正在尝试使用 plot.mids 来评估收敛性。我希望能够绘制两个指定变量的收敛诊断。这是一个例子:
在这里,只显示变量 chl 的图,虽然您可以点击后退箭头来查看其他的,但我想在同一个图中一起显示 chl 和 bmi 以用于报告。我尝试通过 y=formula 指定变量,但不认为我理解如何使用它。
这似乎试图将 chl 的手段与 bmi 的手段进行对比(我认为),这不是我所追求的。
r - 在 R 中使用 .mids 对象创建训练数据集
我有缺少组件的数据,所以我运行了鼠标算法(来自 package mice
)。该函数返回一个 .mids 对象,我想将其拆分为训练和测试数据集以评估模型拟合度。我希望训练和测试数据也是 .mids 形式,以便它们可以与各种其他功能相结合,例如pool
根据鲁宾规则调整标准误差。
这是我的尝试,我只是从数据中删除行以获得训练集:
但是,如果我尝试使用这些数据运行模型:
我遇到一个错误,指出它正在尝试用 7 替换 9 行(大概是因为我减少了 train$data 中的行数而没有调整其他内容)。
任何帮助将非常感激。
r - 如何使用分类值估算连续值
我在连续向量中有缺失值
我有邮政编码
我想使用邮政编码来估算 y。我努力了
但是我收到错误消息,表明它不能做交叉产品(由于我的 rstudio 会话挂起,所以无法发布特定消息)。
关于如何用鼠标或其他包做到这一点的任何想法?
编辑:dput
部分数据
r - 将插补数据与 R 中的 MICE 相乘后的列联表
在使用MICE包在 R 中进行插补后,我想生成列联表。拟合显示列表中的表格,但如果我 pool()
是它们,则会引发以下错误:Error in pool(fit) : Object has no coef() method.
我在做什么错?
这个基本示例重现了错误:
r - 我可以使用 mi 包合并估算的随机效应模型估计吗?
mi
在过去的几年中,该软件包似乎在某个时候进行了相当大的重写。
下面的教程很好地概述了“旧”的做事方式:http: //thomasleeper.com/Rcourse/Tutorials/mi.html
“新”的做事方式(坚持 Leeper 的模拟演示)看起来像这样:
尽管函数名称发生了变化,但这实际上与“旧”的做事方式非常相似。
最大的变化(从我的角度来看)是替换以下“旧”功能
lm.mi(formula, mi.object, ...)
glm.mi(formula, mi.object, family = gaussian, ...)
bayesglm.mi(formula, mi.object, family = gaussian, ...)
polr.mi(formula, mi.object, ...)
bayespolr.mi(formula, mi.object, ...)
lmer.mi(formula, mi.object, rescale=FALSE, ...)
glmer.mi(formula, mi.object, family = gaussian, rescale=FALSE, ...)
.
以前,用户可以使用这些函数之一为每个估算数据集计算模型,然后使用mi.pooled()
(或者coef.mi()
如果我们遵循 Leeper 示例)将结果汇集起来。
在当前版本mi
(我安装了 v1.0)中,最后这些步骤似乎已合并为一个函数,pool()
. 该pool()
函数似乎读取了在上述插补过程中分配给变量的族和链接函数,然后bayesglm
使用指定的公式估计模型,如下所示。
这看起来我们即将恢复我们的模拟 beta 值(2 和 20)。换句话说,它的行为符合预期。
为了获得分组变量,让我们使用具有天真模拟随机效应的稍大的数据集。
由于missing_data.frame()
似乎将其解释group_var
为连续的,因此我使用change()
函数 frommi
重新分配给"un"
“无序分类”,然后按上述方式进行。
现在,除非 1.0 版删除了以前版本的功能(即和mi
可用的功能),否则我会假设在公式中添加随机效应应该指向适当的函数。但是,最初的错误消息表明情况并非如此。lmer.mi
glmer.mi
pool()
lme4
遵循我的警告消息并从我的因子中提取整数确实让我得到了一个估计值,但结果表明它pool()
仍在估计一个固定效应模型,bayesglm
并保持我尝试的随机效应常数。
我的问题是:
- 是否可以使用
mi
? 轻松生成汇总随机效应估计,以及 - 如果是,如何?
r - 将一组缺失函数应用于 R 中的数据集
最近我遇到了R 中的validate包,当您想使用预定义的规则验证完整的数据集时,它非常有用,例如:
现在我想知道是否有类似的东西可用于缺失值插补。有像mice、mi等非常好的包,但是插补方法是标准的,不是用户定义的或自定义的。任何人都可以建议是否有设置一些预定义的缺失函数并将它们应用于 R data.frame。可以像这样工作的东西: