R中MI数据的描述性统计:取3
作为一名R初学者,我发现如何计算多重插补数据的描述性统计非常困难(比运行其他一些基本分析,如相关性和回归分析更困难) 这类问题以道歉()开头,但尚未回答()或很快被否决 下面是miceadds函数()的描述,我发现以mids格式存储的数据很难理解它 我已经使用摘要(完整(imp))获得了一些输出,如平均值、中值、最小值、最大值,但我想知道如何获得额外的摘要输出(例如,偏斜/峰度、标准偏差、方差) 上图借用了上一张海报中的插图:R中MI数据的描述性统计:取3,r,summary,imputation,r-mice,R,Summary,Imputation,R Mice,作为一名R初学者,我发现如何计算多重插补数据的描述性统计非常困难(比运行其他一些基本分析,如相关性和回归分析更困难) 这类问题以道歉()开头,但尚未回答()或很快被否决 下面是miceadds函数()的描述,我发现以mids格式存储的数据很难理解它 我已经使用摘要(完整(imp))获得了一些输出,如平均值、中值、最小值、最大值,但我想知道如何获得额外的摘要输出(例如,偏斜/峰度、标准偏差、方差) 上图借用了上一张海报中的插图: > imp <- mice(nhanes, seed
> imp <- mice(nhanes, seed = 23109)
iter imp variable
1 1 bmi hyp chl
1 2 bmi hyp chl
1 3 bmi hyp chl
1 4 bmi hyp chl
1 5 bmi hyp chl
2 1 bmi hyp chl
2 2 bmi hyp chl
2 3 bmi hyp chl
> summary(complete(imp))
age bmi hyp chl
1:12 Min. :20.40 1:18 Min. :113
2: 7 1st Qu.:24.90 2: 7 1st Qu.:186
3: 6 Median :27.40 Median :199
Mean :27.37 Mean :194
3rd Qu.:30.10 3rd Qu.:218
Max. :35.30 Max. :284
>imp摘要(完整(imp))
年龄体重指数
1:12分钟:20.40 1:18分钟:113
2:7首曲:24.90 2:7首曲:186
3:6中位数:27.40中位数:199
平均数:27.37平均数:194
第三区:30.10第三区:218
最大值:35.30最大值:284
有人愿意花点时间来说明如何使用mids对象来获得基本描述吗?下面是一些步骤,您可以在每个步骤之后更好地了解R对象的情况。我还建议您阅读本教程:
库(鼠标)
#nhanes对象只是一个简单的数据帧:
数据(nhanes)
str(nhanes)
#“数据帧”:25 obs。共有4个变量:
#$age:num 1 2 1 3 1 3 1 2 2。。。
#$bmi:num NA 22.7 NA 20.4 NA 22.5 30.1 22 NA。。。
#$hyp:num NA 11 NA 1 NA 11 NA。。。
#$chl:num NA 187 NA 113 184 118 187 238 NA。。。
#可以使用mice()函数生成多元插补
imp以下是您可以执行的一些步骤,以便更好地了解在每个步骤之后R对象会发生什么。我还建议您阅读本教程:
库(鼠标)
#nhanes对象只是一个简单的数据帧:
数据(nhanes)
str(nhanes)
#“数据帧”:25 obs。共有4个变量:
#$age:num 1 2 1 3 1 3 1 2 2。。。
#$bmi:num NA 22.7 NA 20.4 NA 22.5 30.1 22 NA。。。
#$hyp:num NA 11 NA 1 NA 11 NA。。。
#$chl:num NA 187 NA 113 184 118 187 238 NA。。。
#可以使用mice()函数生成多元插补
imp您的代码和Katia的答案都有几个错误,Katia提供的链接不再可用
要在多次插补后计算简单的统计数据,必须遵循鲁宾规则,这是一种在老鼠身上用于选择一组模型拟合的方法
使用时
library(mice)
imp <- mice(nhanes, seed = 23109)
mat <- complete(imp)
mat
age bmi hyp chl
1 1 28.7 1 199
2 2 22.7 1 187
3 1 30.1 1 187
4 3 22.7 2 204
5 1 20.4 1 113
6 3 24.9 2 184
7 1 22.5 1 118
8 1 30.1 1 187
9 2 22.0 1 238
10 2 30.1 1 229
11 1 35.3 1 187
12 2 27.5 1 229
13 3 21.7 1 206
14 2 28.7 2 204
15 1 29.6 1 238
16 1 29.6 1 238
17 3 27.2 2 284
18 2 26.3 2 199
19 1 35.3 1 218
20 3 25.5 2 206
21 1 33.2 1 238
22 1 33.2 1 229
23 1 27.5 1 131
24 3 24.9 1 284
25 2 27.4 1 186
summary(mat)
和summary(mat2)
均为false。
让我们关注bmi。第一个数据集提供了第一个插补数据集的平均bmi。第二种方法提供了一个人工的m倍大的数据集的平均值。第二个数据集也具有不适当的低方差
mean(mat$bmi)
27.484
mean(mat2$bmi)
26.5192
我没有找到比手动将鲁宾规则应用于平均估计值更好的解决方案。正确的估计值只是所有插补数据集估计值的平均值
res <- with(imp, mean(bmi)) #get the mean for each imputed dataset, stored in res$analyses
do.call(sum, res$analyses) / 5 #compute mean over m = 5 mean estimations
26.5192
res您的代码和Katia的答案都有几个错误,Katia提供的链接不再可用
要在多次插补后计算简单的统计数据,必须遵循鲁宾规则,这是一种在老鼠身上用于选择一组模型拟合的方法
使用时
library(mice)
imp <- mice(nhanes, seed = 23109)
mat <- complete(imp)
mat
age bmi hyp chl
1 1 28.7 1 199
2 2 22.7 1 187
3 1 30.1 1 187
4 3 22.7 2 204
5 1 20.4 1 113
6 3 24.9 2 184
7 1 22.5 1 118
8 1 30.1 1 187
9 2 22.0 1 238
10 2 30.1 1 229
11 1 35.3 1 187
12 2 27.5 1 229
13 3 21.7 1 206
14 2 28.7 2 204
15 1 29.6 1 238
16 1 29.6 1 238
17 3 27.2 2 284
18 2 26.3 2 199
19 1 35.3 1 218
20 3 25.5 2 206
21 1 33.2 1 238
22 1 33.2 1 229
23 1 27.5 1 131
24 3 24.9 1 284
25 2 27.4 1 186
summary(mat)
和summary(mat2)
均为false。
让我们关注bmi。第一个数据集提供了第一个插补数据集的平均bmi。第二种方法提供了一个人工的m倍大的数据集的平均值。第二个数据集也具有不适当的低方差
mean(mat$bmi)
27.484
mean(mat2$bmi)
26.5192
我没有找到比手动将鲁宾规则应用于平均估计值更好的解决方案。正确的估计值只是所有插补数据集估计值的平均值
res <- with(imp, mean(bmi)) #get the mean for each imputed dataset, stored in res$analyses
do.call(sum, res$analyses) / 5 #compute mean over m = 5 mean estimations
26.5192
我是否同情你的问题。。。但是回答有代码的问题通常更容易!听起来您有两个问题:(1)理解mids
对象的格式;(2) 查找(1)的标准偏差、方差等,str
是您的朋友。对于(2),var
和sd
将有助于您找到要应用它们的向量。我同情您的问题。。。但是回答有代码的问题通常更容易!听起来您有两个问题:(1)理解mids
对象的格式;(2) 查找(1)的标准偏差、方差等,str
是您的朋友。对于(2),var
和sd
将有助于找到要应用它们的向量。非常有用的回答@Katia。谢谢。在mids对象和长格式数据(仍然具有适当的N,df)上运行的分析结果似乎有所不同。例如,结果显示“垫子”的效果更强。这是意料之中的吗?非常有用的回答@Katia。谢谢。在mids对象和长格式数据(仍然具有适当的N,df)上运行的分析结果似乎有所不同。例如,结果显示“垫子”的效果更强。这是预期的吗?