我用一个示例数据集,例如:MTCARS
data(mtcars)
library(mice)
imp <- mice(mtcars,
seed=123,
m=5,
maxit=10)
- 假设我想计算disp、hp和其他变量的汇总均值。我该怎么做?如何计算合并频率?
- 如果我想进行合并t检验或卡方检验(例如
vs
和am
),我应该使用什么代码?我应该使用“with()”吗?有人可以写一个例子吗?我遇到了麻烦,因为这是我第一次使用“with()”
2条答案
按热度按时间wnrlj8wa1#
R中的小鼠包提供了处理缺失数据的多重插补。为了从多重插补数据集估计参数,如平均值,我们必须考虑合并结果。这是为了确保在分析中考虑插补的不确定性。
要计算R中插补数据集的合并平均值或任何其他描述性统计量,可以使用mice::pool()函数。
下面是一个如何对变量“disp”和“hp”执行此操作的示例:
至于使用插补数据集进行假设检验(如t检验或卡方检验),您可以使用mice::with()函数。此函数允许您对每个插补数据集执行操作,然后将结果合并在一起。
以下是“am”和“vs”的合并t检验的示例:
请注意,在执行统计检验之前,最好始终检查统计检验的假设,并谨慎解释结果,因为多重插补并不是缺失数据的万灵药。事实上,如果使用不当,它可能会引入偏见。
截至2021年9月我的知识截止日期,mice包中没有用于合并频率的函数。您可能需要分别计算每个插补数据集的频率,然后合并结果。
nhaq1z212#
首先,
mtcars
不是用于填补示例的好数据集,因为mtcars
不包含NA
值。例如,我将使用mice
包中的nhanes
。您可以使用Heyman和Eekhout的 Applied Missing Data Analysis 中的语法。Chapter 5 describes how to pool means and standard deviations。你可以编辑Heyman和Eekhout的代码,使用
table
而不是mean
来获取频率。我已经做了这些编辑,并创建了一个名为mice_func()
的函数,它可以很容易地做到这一点。计算t检验等也包括在第5章。