문제

나는 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
.

여기서 뭐하고 있니?나는 그것을 알아낼 수 없다!어딘가에 오류가 있습니까?

도움이 되었습니까?

해결책

0.2205는 이 차단 용어를 갖는 모델에서오고 있습니다. 0.5328 값은 절편을 제거하면 결과입니다.

기본적으로, 하나의 패키지는 y= bx 모델링이지만 다른 (유용하게) 가로 촬영 기간 (즉, y= a +BX ).[참고 :이 가정의 이점은 그렇지 않으면 x 을 취하고 회귀를 실행하기를 원할 때마다 그것에 대한 열의 열을 바인딩해야한다는 것입니다 (그렇지 않으면 편향 모델)]

체크 아웃 이 게시물 더 긴 토론을 위해.

행운을 빕니다!

다른 팁

이것은 답변 된 원래의 질문에 대한 답이 아닙니다.

r-squrared가 일정하지 않고 회귀하여 regrened.

하나의 문제는 가로 챌 수없는 회귀가 R ^ 2의 표준 정의가없는 것입니다.

본질적으로, 가로 챌 수있는 모델에서의 적합성 측정 값으로 r-squarared가 전체 모델과 인터셉트 만있는 모델과의 전체 모델을 비교합니다. 전체 모델에 가로 챌 수없는 경우 R ^ 2의 표준 정의는 음수 r ^ 2와 같은 이상한 결과를 생성 할 수 있습니다.

일정한 회귀 분석에서의 종래의 정의는 훼손 된 대신에 종속 변수의 총 제곱의 총액 합계로 나눕니다. 일정하고없는 회귀 사이의 R ^ 2는 정말로 의미있는 방식으로 비교 될 수 없습니다.

일정한 회귀가없는 https://github.com/statsmodels/statsmodels/issues/785

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top