Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中MI数据的描述性统计:取3_R_Summary_Imputation_R Mice - Fatal编程技术网

R中MI数据的描述性统计:取3

R中MI数据的描述性统计:取3,r,summary,imputation,r-mice,R,Summary,Imputation,R Mice,作为一名R初学者,我发现如何计算多重插补数据的描述性统计非常困难(比运行其他一些基本分析,如相关性和回归分析更困难) 这类问题以道歉()开头,但尚未回答()或很快被否决 下面是miceadds函数()的描述,我发现以mids格式存储的数据很难理解它 我已经使用摘要(完整(imp))获得了一些输出,如平均值、中值、最小值、最大值,但我想知道如何获得额外的摘要输出(例如,偏斜/峰度、标准偏差、方差) 上图借用了上一张海报中的插图: > imp <- mice(nhanes, seed

作为一名R初学者,我发现如何计算多重插补数据的描述性统计非常困难(比运行其他一些基本分析,如相关性和回归分析更困难)

这类问题以道歉()开头,但尚未回答()或很快被否决

下面是miceadds函数()的描述,我发现以mids格式存储的数据很难理解它

我已经使用摘要(完整(imp))获得了一些输出,如平均值、中值、最小值、最大值,但我想知道如何获得额外的摘要输出(例如,偏斜/峰度、标准偏差、方差)

上图借用了上一张海报中的插图:

  > 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)上运行的分析结果似乎有所不同。例如,结果显示“垫子”的效果更强。这是预期的吗?