estima.missing.fnc

Copia, Pega y Adapta

datos = estima.missing.fnc(datos, variables=1:12)

datos = estima.missing.fnc(datos, variables=1:5,

metodo=c('norm','pmm','pmm','','norm'))

Objetivo

Lleva a cabo la estimación de los valores perdidos de una matriz de datos mediante el procedimiento FSC (Fully Conditional Specification) de la librería mice. Dicha estimación ejecuta además 5 imputaciones de los valores perdidos y los promedia para devolver al usuario la matriz completa imputada.

Estimación de valores perdidos (Variables cuantitativas)

Partiremos de una sencilla matriz de datos con 25 observaciones en 4 variables, incluida por defecto en la librería mice de nombre nhanes. Disponemos de dos versiones: nhanes con todas las variables en versión cuantitativa y nhanes2 con dos de las variables en su versión cualitativa.

variables cuantitativas

variables cualitativas

nhanes.me= estima.missing.fnc(nhanes)

Si el usuario no incluye el argumento variables, la función asume que deben estimarse todos los valores perdidos de todas las variables de la base de datos. Si todas son cuantitativas utilizará por defecto una estimación lineal bayesiana. Realizará 5 imputaciones de los datos perdidos y los promediará en una sola base de datos.

descriptivos de la estimación

Explora la estimación de bmi

Explora la estimación de hyp

En la figura izquierda podemos ver la matriz del patrón de missing de nuestra base de datos. Tenemos cuatro matrices. En la primera de nombre completo.ambos puedes ver que la variable age no tiene missing, que la intersección age y bmi tiene 16 casos completos y la de chl con hyp tiene 14. La segunda tabla completo.missing te habla de completos en filas y missing en columnas es decir. En el cruce de edad con bmi edad esta completa y bmi tiene 9 valores perdidos. La siguiente tabla es justo lo contrario y la última te indica las frecuencias de valores perdidos en ambas variables.

En la segunda figura tienes la gráfica exploratoria de las imputaciones para la segunda variable (se genera una para cada variable). En ella puedes ver que la estimación de regresión bayesiana ha generado valores aceptables (en rojo las estimaciones para los valores perdidos) y consistentes a lo largo de las 5 imputaciones. La primera columna es la distribución de la variable antes de imputar los valores perdidos.

La tercera figura, nos esta indicando que la estiamación por defecto ha generado valores fuera del rango permitido. Por ello repetiremos la estimación indicando para cada variable el procedimiento a utilizar para su estimación. Indicaremos para esta variable el procimiento pmm (predictive mean matching).

nhanes.me=estima.missing.fnc(nhanes,

metodo=c('','norm','pmm','norm'))

Observa que estamos indicando que no se use método alguno para la variable age (no tiene missing), norm (regresión bayesiana) para la segunda y cuarta y pmm para la tercera.

Podemos ver que la estimación elegida (pmm) genera valores dentro del rango permitido (1 y 2).

Estimación de valores perdidos (Variables cualitativas))

Cuando disponemos de variables cualitativas, la función nos lo indica y nos invita a utilizar el argumento con.factor=T si deseamos incluir dichas variables no cuantitativas en el modelo a estimar. Por defecto para estas variables se lleva a cabo una estimación de regresión logística multinormal ('logreg'). El usuario puede indicar una estimación alternativa que utilice el análisis discriminante lineal con el argumento metodo='lda' para la columna de la variable en cuestión. Veamos el ejemplo con nuestra base de datos nhanes2 (nhanes en versión cualitativa).

nhanes2.me=estima.missing.fnc(nhanes2)

*** WARNING. Tienes factores entre las variables seleccionadas. ***

*** Esto impide el promedio de las n imputaciones solicitadas. ***

*** Elimina el factor o factores de las variables seleccionadas ***

*** o incluye el argumento con.factor=T. Esto hara que dicho ***

*** factor o factores no participen en la matriz promedio final.***

Incluimos el argumento con.factor=T en la llamada a la función:

nhanes2.me=estima.missing.fnc(nhanes2, con.factor=T)

*** Metodo de estimacion por variable ***

variables metodo

1 age logreg

2 bmi norm

3 hyp logreg

4 chl norm

#------------------------------------------------------------------

# DATOS PROMEDIO DE LAS IMPUTACIONES DEL MODELO MICE

#------------------------------------------------------------------

*** Se ha promediado con exito 5 imputaciones numericas ***

*** WARNING. Para los valores perdidos de los factores ***

*** se ha utilizado la ultima imputacion. NO SON MEDIAS. ***

nhanes2.me=estima.missing.fnc(nhanes2, con.factor=T,

metodo=c('','norm','lda','norm'))

Pedimos una estimación por el método del análisis discriminante lineal (lda) para la tercera variable hyp.

datos originales

estimados logreg

estimados lda

En la primera figura tenemos la base de datos original con los valores perdidos y en la segunda y tercera tenemos las estimaciones con el método por defecto logreg (regresión logística) y de modelo discriminante (lda) respectivamente. Puedes ver que la única diferencia para la variable hyp se situa en el registro 12 que es asignado al grupo 'no' en la última imputación logreg, mientras que se le asigna al grupo 'si' en la estimación discriminante.

Es de vital importancia explorar el archivo pdf checkImputaMissing.pdf que se genera para comprobar la bondad de la estimación para cada variable.

Subir ->