Estoy trabajando con modelos de regresión lineal múltiple y estoy intentando transformar los predictores del modelo. Estoy intentando utilizar la función powertransform(), pero como mis datos contienen ceros, al hacerlo se produce un error que indica que el primer valor debe ser estrictamente positivo. ¿Hay alguna alternativa a la función powertransform cuando los datos contienen ceros? Los datos son los siguientes. Me gustaría transformarlos para obtener un mejor modelo de regresión lineal
Respuesta
¿Demasiados anuncios?Bueno, una manera es simplemente añadir uno a cada valor y luego transformar, Powertransform $(x+1)$ . Supongo que se trata de algún tipo de transformación Box-Cox.
Pero, mirando tu foto parece que un número muy grande de las entradas son cero. Si prácticamente todos los valores son cero, no hay mucha información que la columna pueda proporcionar, por lo que podría ser mejor eliminar la columna y crear un modelo utilizando las otras columnas.
Si hay pocos valores distintos de cero, pero un número no determinado, también puede ser bueno hacer que todos los valores distintos de cero sean uno y convertir la columna en una variable categórica con dos niveles, cero y uno. Aquí sólo se trata de detectar la situación que haría que fuera distinto de cero.
Si hay un número razonable de valores distintos de cero, pero la distribución de la columna no es normal, puede convertirla en cero-uno como en el caso anterior, o dividir el predictor en un número razonable de niveles, o estandarizar la columna, es decir, restar la media y dividirla por la sd.
Hay que tener en cuenta que el requisito de la regresión lineal no es la normalidad de los predictores O la normalidad de la respuesta, sino la normalidad de los residuos tras el ajuste del modelo de regresión.
Posiblemente haya otras cosas que no se me ocurren ahora mismo.