LOCF 插补和如何填补缺失的条目

LOCF imputation and how to fill missing entries

我正在处理以下数据集,我正在尝试填充 VISUAL52 变量的缺失条目,通过 LOCF 方法(上次观察结转)输入数据。

library(readr)
library(mice)
library(finalfit)
library(Hmisc)
library(lattice)
library(VIM)
library(rms)
library(zoo)

> hw3
# A tibble: 240 x 11
   treat LINE0 LOST4 LOST12 LOST24 LOST52 VISUAL0 VISUAL4 VISUAL12 VISUAL24 VISUAL52
   <fct> <dbl> <dbl>  <dbl>  <dbl>  <dbl>   <dbl>   <dbl>    <dbl>    <dbl>    <dbl>
 1 2        12     1      3     NA     NA      59      55       45       NA       NA
 2 2        13    -1      0      0      2      65      70       65       65       55
 3 1         8     0      1      6     NA      40      40       37       17       NA
 4 1        13     0      0      0      0      67      64       64       64       68
 5 2        14    NA     NA     NA     NA      70      NA       NA       NA       NA
 6 2        12     2      2      2      4      59      53       52       53       42
 7 1        13     0     -2     -1      0      64      68       74       72       65
 8 1         8     1      0      1      1      39      37       43       37       37
 9 2        12     1      2      1      1      59      58       49       54       58
10 1        10     0     -4     -4     NA      49      51       71       71       NA
# ... with 230 more rows

我不知道我做得好不好,但我已经尝试以这种方式描述每次处理的 VISUAL52 变量的样本量、均值和标准误差(请告诉我我是否会更好地使用不同的功能)。

numSummary(hw3[,"VISUAL52", drop=FALSE], groups=hw3$treat, 
           statistics=c("mean", "se(mean)", "quantiles"), 
           quantiles=c(0,.25,.5,.75,1))

binnedCounts(hw3[hw3$treat == '1', "VISUAL52", drop=FALSE])
# treat = 1

binnedCounts(hw3[hw3$treat == '2', "VISUAL52", drop=FALSE])
# treat = 2

但是,关于插补部分,我从 data-table 包中 运行 函数 nafill(),但我返回了错误,您可能会在运行完整的程序后看到() 函数。

 library(data.table)
 imp_locf <-  nafill(hw3$VISUAL52, "locf", nan=NA)
 data_imputed <- complete(imp_locf)

*emphasized text*Error in UseMethod("complete_") : 
      no applicable method for 'complete_' applied to an object of class "c('double', 'numeric')"

我想知道为什么该函数会返回此错误,以及是否有人可能知道一些替代方法来使用 locf 方法估算数据并填充数据集中缺失的数据。

如果你想在你的数据集上应用 locf,你可以使用 imputeTS 包。

 library(imputeTS)
 hw3 <- na_locf(hw3)
 hw3

或者如果您只想对 VISUAL52 变量使用 LOCF:

 library(imputeTS)
 hw3$VISUAL52 <- na_locf(hw3$VISUAL52)
 hw3

另请记住,其他算法可能更适合您的数据。 imputeTS 提供了多种功能,尤其是对于时间序列插补 (more algorithms in imputeTS)。您似乎已经在使用的 mice 包具有额外的横截面数据算法。