Разные результаты при вычислении линейных регрессий с Scipy.Stats и Statsmodels

StackOverflow https://stackoverflow.com//questions/24005243

Вопрос

Я получаю разные значения R ^ 2 (коэффициент определения), когда я попробую OLS подходит с этими двумя библиотеками, и я не могу совершенно выяснить, почему.(Некоторое расстояние удалено для вашего удобства)

In [1]: import pandas as pd       
In [2]: import numpy as np
In [3]: import statsmodels.api as sm
In [4]: import scipy.stats
In [5]: np.random.seed(100)
In [6]: x = np.linspace(0, 10, 100) + 5*np.random.randn(100)
In [7]: y = np.arange(100)

In [8]: slope, intercept, r, p, std_err = scipy.stats.linregress(x, y)

In [9]: r**2
Out[9]: 0.22045988449873671

In [10]: model = sm.OLS(y, x)
In [11]: est = model.fit()

In [12]: est.rsquared
Out[12]: 0.5327910685035413
.

Что происходит здесь?Я не могу понять это!Есть ли ошибка где-то?

Это было полезно?

Решение

0.2205 исходит из модели, которую также имеет термин перехвата - значение 0,5328 является результатом, если вы удалите перехват.

в основном, один пакет моделирует y= bx , тогда как другая (полезно) предполагает, что вы будете также как срок перехвата (т. Е. Сильный> y= a +bx ).[Примечание. Преимущество этого предположения заключается в том, что в противном случае вам придется взять x и связать столбец к нему каждый раз, когда вы хотите запустить регрессию (или, что вы получите смещены модели ]]

Проверьте это сообщение для более длительного обсуждения.

Удачи!

Другие советы

Это не ответ на оригинальный вопрос, отвеченный.

о R-квадрате в регрессии без постоянного.

Одна проблема заключается в том, что регрессия без перехвата не имеет стандартного определения R ^ 2.

По сути, r-квадрат как благодаря подходящей меру в модели с перехватом сравнивает полную модель с моделью, которая имеет только перехват. Если полная модель не имеет перехвата, то стандартное определение R ^ 2 может производить странные результаты, такие как отрицательный R ^ 2.

Обычное определение в регрессии без постоянных делится на общую сумму квадратов зависимой переменной вместо заземления. R ^ 2 между регресностью с постоянным и без нельзя сравнить значимый способ.

См. Например, проблема, вызванная изменением статусов, чтобы обрабатывать R ^ 2 «правильно» в неотложной регрессии: https://github.com/statsmodels/statsmodels/issues/785

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top