Primeira vez aqui? Seja bem vindo e cheque o FAQ!
x

Rode uma regressão pressão vs temperatura e interprete os resíduos

0 votos
35 visitas
perguntada Abr 23 em Estatística por Fábio Springer (1 ponto)  
editado Abr 23 por Fábio Springer

A tabela a seguir fornece a pressão de transição do bismuto II-I como um
função da temperatura (ver Exemplo E na Seção 14.2.2). Rode uma regressão linear
entre a pressão em função da temperatura, examine os resíduos e comente.

A imagem será apresentada aqui.

Mathematical Statistics and Data Analysis- John Rice - Cap 14 - Ex 32.

Compartilhe

2 Respostas

0 votos
respondida Abr 23 por Fábio Springer (1 ponto)  

Rodar o modelo OLS no R é trivial. A tabela foi salva como um dataframe de nome dados32. Basta então rodar:

Modelo <- lm(data = dados32, Pressão ~ Temperatura)

Depois disso pedimos o sumario da regressão com:

summary(Modelo)

E obtemos:
A imagem será apresentada aqui.

Feito isso podemos usar plot(Modelo) para obter vários gráficos da regressão inclusive dos de resíduos.
A imagem será apresentada aqui.

Como temos poucas observações é difícil triar muitas conclusões sobre a relação pressão temperatura. De todo modo, perceba que nosso modelo prevê corretamente que um aumento da temperatura reduz a pressão necessária para que o ocorra transição química. Quanto aos resíduos o gráfico sugere que eles não estão igualmente distribuídos e estão concentrados em pressões mais altas. Talvez exista uma tendencia que não está presente no modelo linear, pode ser que o aumento de temperatura não tenha uma relação linear com a pressão tendo, por exemplo, uma distribuição de cauda longa.

0 votos
respondida Abr 24 por Samuel Ceccon (11 pontos)  

Bem legal sua resposta, Fábio. Decidi tentar replicar ela usando o Python, que eu estou aprendendo a usar.
De início já percebi que parece ser bem menos prático fazer isso usando python ao invés de R, já que precisei importar algumas bibliotecas e usar comandos diferentes.
Segue como eu fiz:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import statsmodels.formula.api as smf

Temperature = np.array([20.8, 20.9, 21.0, 21.9, 22.1, 22.1,
                        22.4, 22.5, 24.8, 24.8, 25.0, 34.0,
                        34.0, 34.1, 42.7, 42.7, 42.7, 49.9,
                        50.1, 50.1, 22.5, 23.1, 23.0])
Pressure = np.array([25276, 25256, 25216, 25187, 25217,
                     25187, 25177, 25177, 25098, 25093,
                     25088, 24711, 24701, 24716, 24374,
                     24394, 24384, 24067, 24057, 24057,
                     25147, 25107, 25077])

df = pd.DataFrame({'pressure':Pressure,
                  'temperature':Temperature,
                  'Fitted Values':fitted_values,
                  'Residuals':residuals})

reg = smf.ols(formula='Pressure~Temperature', data=df)
results = reg.fit()
fitted_values = results.fittedvalues
residuals = results.resid
b = results.params

print(b ,"\n")
print(df)
a = df.plot.scatter(x="temperature",y="pressure")
plt.plot(df['temperature'],results.fittedvalues)
g = df.plot.scatter(x="Fitted Values",y="Residuals")

A imagem será apresentada aqui.
A imagem será apresentada aqui.

print(results.summary())

A imagem será apresentada aqui.

...