Data Science - Caso de Regressão Linear


Caso: Use Duration + Average_Pulse para Prever Calorie_Burnage

Crie uma tabela de regressão linear com Average_Pulse e Duration como variáveis ​​explicativas:

Exemplo

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())

Exemplo explicado:

  • Importe a biblioteca statsmodels.formula.api como smf. Statsmodels é uma biblioteca estatística em Python.
  • Use o conjunto full_health_data.
  • Crie um modelo baseado em Mínimos Quadrados Ordinários com smf.ols(). Observe que a variável explicativa deve ser escrita primeiro entre parênteses. Use o conjunto de dados full_health_data.
  • Ao chamar .fit(), você obtém os resultados da variável. Isso contém muitas informações sobre o modelo de regressão.
  • Chame summary() para obter a tabela com os resultados da regressão linear.

Saída:

Caso da Tabela de Regressão Linear

A função de regressão linear pode ser reescrita matematicamente como:

Calorie_Burnage = Average_Pulse * 3.1695 + Duration * 5.8424 - 334.5194

Arredondado para duas casas decimais:

Calorie_Burnage = Average_Pulse * 3.17 + Duration * 5.84 - 334.52


Definir a função de regressão linear em Python

Defina a função de regressão linear em Python para realizar previsões.

O que é Calorie_Burnage se:

  • A pulsação média é de 110 e a duração da sessão de treino é de 60 minutos?
  • A pulsação média é de 140 e a duração da sessão de treino é de 45 minutos?
  • A pulsação média é de 175 e a duração da sessão de treino é de 20 minutos?

Exemplo

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))

As respostas:

  • A pulsação média é de 110 e a duração da sessão de treino é de 60 minutos = 365 calorias
  • A pulsação média é de 140 e a duração da sessão de treino é de 45 minutos = 372 calorias
  • A pulsação média é de 175 e a duração da sessão de treino é de 20 minutos = 337 calorias

Acesse os Coeficientes

Veja os coeficientes:

  • Calorie_Burnage aumenta com 3,17 se Average_Pulse aumentar em um.
  • Calorie_Burnage aumenta com 5,84 se Duration aumentar em um.

Acesse o P-Value

Observe o valor P para cada coeficiente.

  • O valor P é 0,00 para Average_Pulse, Duration e Intercept.
  • O valor P é estatisticamente significativo para todas as variáveis, pois é inferior a 0,05.

Então aqui podemos concluir que Average_Pulse e Duration tem um relacionamento com Calorie_Burnage.


R-quadrado ajustado

Há um problema com R-quadrado se tivermos mais de uma variável explicativa.

O R-quadrado quase sempre aumentará se adicionarmos mais variáveis ​​e nunca diminuirá.

Isso ocorre porque estamos adicionando mais pontos de dados ao redor da função de regressão linear.

Se adicionarmos variáveis ​​aleatórias que não afetam Calorie_Burnage, corremos o risco de concluir falsamente que a função de regressão linear é um bom ajuste. Ajustado R-quadrado ajusta para este problema.

Portanto, é melhor observar o valor ajustado do R-quadrado se tivermos mais de uma variável explicativa.

O R-quadrado ajustado é 0,814.

O valor de R-Quadrado está sempre entre 0 a 1 (0% a 100%).

  • Um valor R-quadrado alto significa que muitos pontos de dados estão próximos da linha da função de regressão linear.
  • Um valor baixo de R-Quadrado significa que a linha da função de regressão linear não se ajusta bem aos dados.

Conclusão: O modelo se ajusta bem ao ponto de dados!

Parabéns! Você terminou o módulo final da biblioteca de ciência de dados.