ILSE: a simple NHANES example

Wei Liu

2022-01-31

Load real data

First, we load the ‘ILSE’ package and the real data which can be loaded by following command.

library("ILSE")
data("nhanes")

Fit linear regression model

We fit the linear regression model using ‘ILSE’ function, and then compare with CC method and FIML method.

ncomp <- sum(complete.cases(nhanes))
message("Number of complete cases is ", ncomp, '\n')
ilse2 <- ilse(age~., data=nhanes, verbose=T)
print(ilse2)

Next, Bootstrap is applied to evaluate the standard error and p-values of each coefficients estimated by ILSE. We observe four significant coefficients.

set.seed(1)
s2 <- summary(ilse2, Nbt=20)
s2

Compare with CC and FIML

First, we conduct CC analysis.

lm1 <- lm(age~., data=nhanes)
s_cc <- summary.lm(lm1)
s_cc

We fit linear regression model using FIML method.

fimllm <- fimlreg(age~., data=nhanes)
print(fimllm)

We also use bootstrap to evaluate the standard error and p-values of each coefficients estimated by ILSE. We observe only one significant coefficients.

s_fiml <- summary(fimllm, Nbt=20)
s_fiml

Visualization

We visualize the p-vaules of each methods, where red line denotes 0.05 in y-axis and blue line 0.1 in y-axis.

library(ggplot2)
library(ggthemes)
pMat <- cbind(CC=s_cc$coefficients[,4], ILSE=s2[,4], FIML=s_fiml[,4])
df1 <- data.frame(Pval= as.vector(pMat[-1,]),
                    Method =factor(rep(c('CC', "ILSE", "FIML"),each=3)),
                    covariate= factor(rep(row.names(pMat[-1,]), times=3)))
ggplot(data=df1, aes(x=covariate, y=Pval, fill=Method)) + geom_bar(position = "dodge", stat="identity",width = 0.5) + geom_hline(yintercept = 0.05, color='red') + geom_hline(yintercept = 0.1, color='blue') +
  scale_fill_economist()

Session information

sessionInfo()
#> R version 4.0.3 (2020-10-10)
#> Platform: x86_64-w64-mingw32/x64 (64-bit)
#> Running under: Windows 10 x64 (build 22000)
#> 
#> Matrix products: default
#> 
#> locale:
#> [1] LC_COLLATE=C                              
#> [2] LC_CTYPE=Chinese (Simplified)_China.936   
#> [3] LC_MONETARY=Chinese (Simplified)_China.936
#> [4] LC_NUMERIC=C                              
#> [5] LC_TIME=Chinese (Simplified)_China.936    
#> 
#> attached base packages:
#> [1] stats     graphics  grDevices utils     datasets  methods   base     
#> 
#> loaded via a namespace (and not attached):
#>  [1] digest_0.6.28   R6_2.5.1        jsonlite_1.7.2  magrittr_2.0.1 
#>  [5] evaluate_0.14   rlang_0.4.11    stringi_1.7.5   jquerylib_0.1.4
#>  [9] bslib_0.3.1     rmarkdown_2.11  tools_4.0.3     stringr_1.4.0  
#> [13] xfun_0.29       yaml_2.2.2      fastmap_1.1.0   compiler_4.0.3 
#> [17] htmltools_0.5.2 knitr_1.37      sass_0.4.0