scipy.stats 및 statsmodels로 선형 회귀를 계산할 때 다른 결과
-
20-12-2019 - |
문제
나는 r ^ 2 (결정 계수) 가이 두 라이브러리와 함께 올려 져야 할 때 다른 값을 얻을 수 있고 왜 그런지 알아낼 수는 없습니다.(일부 간격이 귀하의 편의를 위해 제거)
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
.
여기서 뭐하고 있니?나는 그것을 알아낼 수 없다!어딘가에 오류가 있습니까?
다른 팁
이것은 답변 된 원래의 질문에 대한 답이 아닙니다.
r-squrared가 일정하지 않고 회귀하여 regrened.
하나의 문제는 가로 챌 수없는 회귀가 R ^ 2의 표준 정의가없는 것입니다.
본질적으로, 가로 챌 수있는 모델에서의 적합성 측정 값으로 r-squarared가 전체 모델과 인터셉트 만있는 모델과의 전체 모델을 비교합니다. 전체 모델에 가로 챌 수없는 경우 R ^ 2의 표준 정의는 음수 r ^ 2와 같은 이상한 결과를 생성 할 수 있습니다.
일정한 회귀 분석에서의 종래의 정의는 훼손 된 대신에 종속 변수의 총 제곱의 총액 합계로 나눕니다. 일정하고없는 회귀 사이의 R ^ 2는 정말로 의미있는 방식으로 비교 될 수 없습니다.
일정한 회귀가없는 https://github.com/statsmodels/statsmodels/issues/785
제휴하지 않습니다 StackOverflow