密度错误。默认.....需要至少 2 个点才能自动选择带宽

Joe*_*ing 2 r

我正在使用该mice包来获取完整的数据。我认为问题在于我没有对所有数据进行插补,因此其中一些数据具有 NA。(一些缺失数据的变量只是用来预测其他变量的缺失,所以我不想估算这些变量。

我可以用这段代码重复这个问题:

require(mice)
impute <- mice(
    nhanes, 
    imputationMethod = c(
        "",        # age
        "pmm",     # bmi
        "pmm",  # hyp
        ""         # chl
    ),
    seed = 101)
x11()
densityplot(impute)

Error in density.default(x = c(NA_real_, NA_real_, NA_real_, NA_real_,  : 
  need at least 2 points to select a bandwidth automatically
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到密度图?如果我用 for""替换或只是运行,那么它将与此示例一起使用,以生成以下内容: "pmm"chlimpute <- mice(nhanes)在此输入图像描述

但我不能用我自己的数据做到这一点,所以我正在寻找另一种方法......只是为了获得bmi和的密度图hyp,在使用上面的代码运行后mice,它不会估算 的值chl

编辑:我知道我可以使用我之前问题 的答案中的方法ggplot,但在这种情况下我真的需要使用densityplot

42-*_*42- 5

“chl”列中仍然会有大量缺失数据。您可以使用该pkg:mice函数complete将原始非缺失值和估算值组合在一起。但是,densityplot.mids如果您按照(最终)帮助页面的详细信息中所述颠倒数据和公式的角色,该函数就会执行此操作。

densityplot( x=impute , data= ~ bmi+hyp)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述