Я пытаюсь проверить, соответствует ли моя регрессионная модель предположению о регрессии или нет? для этого я сделал ниже код Python, но ответ - ошибка. может кто-нибудь объяснить, как это неправильно

from sklearn.linear_model import LinearRegression
reg = LinearRegression()
reg = reg.fit(x_train,y_train)
reg.score(x_test,y_test)

**0.9071005491012577**

import statsmodels.api as sm
import matplotlib.pyplot as plt
Res=reg.resid()
sm.qqplot(Res,fit=True,line='45')
Plt.show()

Затем я получил ошибку ниже.

AttributeError Traceback (последний вызов последним) в 5 # plt.title («График вероятности остатков Model1») 6 ----> 7 Res = reg.resid () 8 Fig = sm.qqplot (Res, fit = True, line = '45 ') 9 Plt.show ()

AttributeError: объект «LinearRegression» не имеет атрибута «остаток»

2
randunu galhena 2 Янв 2020 в 19:24
Пожалуйста, уточните свой вопрос. Что вы имеете в виду, говоря: «соответствует ли моя регрессионная модель допущению регрессии или нет»?
 – 
Leevo
2 Янв 2020 в 19:33
Я хочу нарисовать график qq для регрессии, чтобы проверить, нарушены ли предположения регрессии? для этого я запускаю приведенный выше код, но он дает ошибку .. в чем причина этого?
 – 
randunu galhena
2 Янв 2020 в 19:39

1 ответ

Согласно сообщению об ошибке, объекты sklearn LinearRegression() не имеют атрибута .resid.

Остатки необходимо вычислять вручную: это разница между фактическими значениями y y_train и прогнозируемыми значениями reg.predict(X_train). Как только вы их получите, можете запускать sm.qqplot().

NB: Plt.show() возвращает ошибку. Измените это с помощью: plt.show()

1
Leevo 2 Янв 2020 в 19:48
Спасибо Лево. Я внес изменения и получил график qq.
 – 
randunu galhena
3 Янв 2020 в 08:26