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:
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.