ComenzarEmpieza gratis

Modelo lineal y variable respuesta binaria

En el vídeo, viste un ejemplo de ajuste de un modelo lineal a una variable respuesta binaria y cómo las cosas pueden torcerse rápidamente. Aprendiste que, dado el ajuste lineal, puedes obtener valores ajustados \(\hat{y}\) que no tienen sentido con la lógica del problema, ya que la variable respuesta solo toma valores 0 y 1.

Usando el conjunto de datos precargado crab, estudiarás este efecto modelando y como función de x usando el marco de trabajo de GLM.

Recuerda que la formulación de un GLM es:

glm(formula = 'y ~ X', data = my_data, family = sm.families.____).fit()

donde especificas formula, data y family.

Además, recuerda que un GLM con:

  • la familia Gaussian es un modelo lineal (un caso particular de los GLM)
  • la familia Binomial es un modelo de regresión logística.

Este ejercicio forma parte del curso

Modelos lineales generalizados en Python

Ver curso

Instrucciones del ejercicio

  • Usando el conjunto de datos crab, define la fórmula del modelo de modo que y sea predicha por width.
  • Para ajustar un modelo lineal usando la fórmula de GLM, utiliza Gaussian() para el argumento family, que asume que y es continua y aproximadamente normal.
  • Para ajustar un modelo logístico usando la fórmula de GLM, utiliza Binomial() para el argumento family.
  • Ajusta un modelo con glm() usando los argumentos adecuados y usa print() y summary() para ver los resúmenes de los modelos ajustados.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# Define model formula
formula = '____ ~ ____'

# Define probability distribution for the response variable for 
# the linear (LM) and logistic (GLM) model
family_LM = sm.families.____
family_GLM = sm.families.____

# Define and fit a linear regression model
model_LM = glm(formula = ____, data = ____, family = ____).fit()
print(____.____)

# Define and fit a logistic regression model
model_GLM = glm(formula = ____, data = ____, family = ____).fit()
print(____.____)
Editar y ejecutar código