2. Regresión Logística
2.4 Paquete R desarrollado
2.4.3 Paso 3: Configuración para el filtrado de modelos
La combinación de los pasos 3 y 4 permite al usuario realizar un procedimiento de selección de los modelos obtenidos en el paso 2. El proceso de selección se realiza en función de seis parámetros estadísticos. Para ello en el presente paso 3, se configura adecuadamente un objeto de la clase filtersModels.
El paquete, permite de un modo sencillo indicar cual o cuales de los seis parámetros estadísticos se pretende aplicar y que valores de corte/filtrado desea aplicar. A continuación se explica brevemente:
1) Se podrá activar o desactivar, el filtrado o selección de modelos en función de un valor mínimo de AUC admitido en los modelos. Si se activase el filtrado, se indicará el valor mínimo, en caso de no hacerse, se aplicará el valor mínimo incluido por defecto que es 0.7
2) Se podrá activar o desactivar, el filtrado o selección de modelos en función de un valor máximo admitido del pvalor del test de wald analizado en todas las variables que forman cada modelo, incluido el intercept. Si se activa este filtrado y no se indica el valor máximo admitido, se aplicará como valor máximo 0.05.
3) Se podrá activar o desactivar, el filtrado o selección de modelos en función del porcentaje máximo de residuos distinto de 0 que son admitidos en los modelos. Si se activa este filtrado y no se indica el valor máximo admitido, se aplicará como valor máximo el 5%.
En este paso el porcentaje máximo indicado se analizará en los 5 tipos de residuos indicados en el apartado 2.1.9, si en alguno de los cinco tipos de residuos se supera el porcentaje máximo admitido, el modelo será descartado. 4) Se podrá activar o desactivar, el filtrado o selección de modelos en función de la distancia de Cook, es decir, los modelos que presenten alguna observación con distancia de Cook mayor de 1, serán descartados.
En este caso el valor de la distancia de Cook no se podrá modificar. El usuario solo podrá activar y desactivar este tipo de selección/filtrado.
5) Se podrá activar o desactivar, el filtrado o selección de modelos en función de un valor mínimo admitido del pvalor del test de Hosmer - Lemeshow obtenido para cada modelo. Si se activa este filtrado y no se indica el valor mínimo admitido, se aplicará como valor mínimo 0.05.
6) Para el caso de modelos multivariantes, se podrá activar o desactivar, el filtrado o selección de modelos en función del valor máximo admitido de VIF/GVIF, calculado para todos las variables de los modelos. Si se activa este filtrado y no se indica el valor máximo admitido, se aplicará para cada una de las variables de los modelos el valor máximo de 5.
Los objetos de clase S3 denominados filtersModels se pueden obtener realizando una simple llamada a la función que tiene el mismo nombre. Esta función, es la denominada función constructora de este tipo de objetos. La estructura interna y el código de este tipo de objetos se puede ver en el anexo A4. Estos objetos tienen la única finalidad de almacenar la configuración del filtrado y selección de modelos que se efectúa en el paso 4. Internamente, este tipo de objetos tienen 2 listas, denominadas evaluate y values, donde cada una de las listas tiene 6 valores internos.
La lista evaluate únicamente admiten valores lógicos, y la lista values admiten valores reales. La lista evaluate almacena si se desea o no evaluar cada parámetro estadístico. Mientras que la lista values indica el valor máximo o mínimo admitido para cada parámetros estadístico. Cuando se ejecuta la función por primera vez, se construirá un objeto del tipo filtersModels con los siguientes valores por defecto:
## $evaluate
## AUC WALD RES COOK HOSMER VIF ## TRUE TRUE TRUE TRUE TRUE TRUE ## $values
## AUC WALD RESIDUAL COOK HOSMER VIF ## 0.70 0.05 5.00 1.00 0.05 5.00
Todos los parámetros de la lista evaluate se encuentra con el valor TRUE, lo que indica que el proceso de selección de modelos tendrá en cuenta los 6 parámetros estadísticos. En el caso anterior, solo serán seleccionados los modelos que superen los valores indicados en la lista values, del siguiente modo:
Los que presente un valor de AUC mayor que 0.7, los que tengan todos los pvalores del test de wald por debajo de 0.05, los que presenten un porcentaje
inferior al 5% de residuos diferente que cero, los que no presenten ninguna observación con distancia de cook por encima de 1, los que tengan el pvalor del test de hosmer - lemeshow por encima de 0.05, y finalmente los modelos que presente un valor de vif y/o gvif por debajo de 5 en todas las variables del modelo.
Para que un modelo sea seleccionado como válido tendrá que superar todas las características indicadas. Si una de las características no se cumple el modelo será eliminado. Para poder modificar los valores de ambas listas, se crearon un conjunto de funciones específicas para manipular los valores internos de los objetos de la clase filtersModels. El código de este conjunto de funciones se incluye en el anexo 4. Se describen a continuación sus diferentes funcionalidades:
setTRUE_filter: pone a TRUE en todos los valores de evaluate.
setNOT_filter: pone a FALSE en todos los valores de evaluate.
setAUC: el usuario puede poner TRUE o FALSE en el valor AUC de evaluate, y puede indicar el valor mínimo de AUC en values.
setWALD: el usuario puede poner TRUE o FALSE en el valor WALD de evaluate, y puede indicar el valor máximo admitido del pvalor del test de wald en values.
setRES: el usuario puede poner TRUE o FALSE en el valor RES de evaluate, y puede indicar el porcentaje máximo de residuos distinto de cero en el valor RESIDUAL de values.
setCOOK: el usuario puede poner TRUE o FALSE en el valor COOK de evaluate.
setHOSMER: el usuario puede poner TRUE o FALSE en el valor HOSMER de evaluate, y puede indicar el valor mínimo del pvalor del test de hosmer - lemeshow en values.
setVIF: el usuario puede poner TRUE o FALSE en el valor VIF de evaluate, y puede indicar el valor máximo admitido de VIF/GVIF en values.
En el anexo 2 se muestra la utilización de algunas de las funciones indicadas. El código desarrollado en los pasos 1,2 y 3 no incluyen funciones de paquetes R desarrollados por la comunidad R, todo el código desarrollado incluye únicamente funciones del core de R. A partir de los pasos siguientes, las funciones desarrolladas incluyen en algunos casos funciones de paquetes desarrollado por la comunidad R.