Ciencia de datos : caso de regresión lineal


Caso: Usar Duración + Pulso Promedio para Predecir Calorie_Burnage

Cree una tabla de regresión lineal con Average_Pulse y Duration como variables explicativas:

Ejemplo

import pandas as pd
import statsmodels.formula.api as smf

full_health_data = pd.read_csv("data.csv", header=0, sep=",")

model = smf.ols('Calorie_Burnage ~ Average_Pulse + Duration', data = full_health_data)
results = model.fit()
print(results.summary())

Ejemplo explicado:

  • Importe la biblioteca statsmodels.formula.api como smf. Statsmodels es una biblioteca estadística en Python.
  • Utilice el conjunto full_health_data.
  • Cree un modelo basado en Mínimos cuadrados ordinarios con smf.ols(). Observe que la variable explicativa debe escribirse primero entre paréntesis. Utilice el conjunto de datos full_health_data.
  • Al llamar a .fit(), obtiene los resultados variables. Esto contiene mucha información sobre el modelo de regresión.
  • Llame a summary() para obtener la tabla con los resultados de la regresión lineal.

Producción:

Caso de tabla de regresión lineal

La función de regresión lineal se puede reescribir matemáticamente como:

Calorie_Burnage = Average_Pulse * 3.1695 + Duration * 5.8424 - 334.5194

Redondeado a dos decimales:

Calorie_Burnage = Average_Pulse * 3.17 + Duration * 5.84 - 334.52


Definir la función de regresión lineal en Python

Defina la función de regresión lineal en Python para realizar predicciones.

¿Qué es Calorie_Burnage si:

  • ¿El pulso promedio es de 110 y la duración de la sesión de entrenamiento es de 60 minutos?
  • ¿El pulso promedio es de 140 y la duración de la sesión de entrenamiento es de 45 minutos?
  • ¿El pulso promedio es de 175 y la duración de la sesión de entrenamiento es de 20 minutos?

Ejemplo

def Predict_Calorie_Burnage(Average_Pulse, Duration):
 return(3.1695*Average_Pulse + 5.8434 * Duration - 334.5194)

print(Predict_Calorie_Burnage(110,60))
print(Predict_Calorie_Burnage(140,45))
print(Predict_Calorie_Burnage(175,20))

Las respuestas:

  • El pulso promedio es de 110 y la duración de la sesión de entrenamiento es de 60 minutos = 365 Calorías
  • El pulso promedio es de 140 y la duración de la sesión de entrenamiento es de 45 minutos = 372 Calorías
  • El pulso promedio es de 175 y la duración de la sesión de entrenamiento es de 20 minutos = 337 Calorías

Accede a los Coeficientes

Mira los coeficientes:

  • Calorie_Burnage aumenta en 3,17 si Average_Pulse aumenta en uno.
  • Calorie_Burnage aumenta en 5,84 si la duración aumenta en uno.

Acceda al valor P

Mire el valor P para cada coeficiente.

  • El valor P es 0,00 para Average_Pulse, Duration y Intercept.
  • El valor de p es estadísticamente significativo para todas las variables, ya que es inferior a 0,05.

Así que aquí podemos concluir que Average_Pulse and Duration tiene una relación con Calorie_Burnage.


R-cuadrado ajustado

Hay un problema con R-cuadrado si tenemos más de una variable explicativa.

R-squared casi siempre aumentará si agregamos más variables y nunca disminuirá.

Esto se debe a que estamos agregando más puntos de datos alrededor de la función de regresión lineal.

Si agregamos variables aleatorias que no afectan Calorie_Burnage, corremos el riesgo de concluir erróneamente que la función de regresión lineal se ajusta bien. El R-cuadrado ajustado se ajusta a este problema.

Por lo tanto, es mejor mirar el valor de R-cuadrado ajustado si tenemos más de una variable explicativa.

El R-cuadrado ajustado es 0,814.

El valor de R-Squared siempre está entre 0 y 1 (0% a 100%).

  • Un valor alto de R-Squared significa que muchos puntos de datos están cerca de la línea de función de regresión lineal.
  • Un valor bajo de R-Squared significa que la línea de la función de regresión lineal no se ajusta bien a los datos.

Conclusión: ¡El modelo se ajusta bien al punto de datos!

¡Felicidades! Ahora ha terminado el módulo final de la biblioteca de ciencia de datos.