2014-12-03 5 views
3

numpy.polyfit을 사용하여 선형 회귀를 구합니다. coeffs = np.polyfit (x, y, 1).numpy의 선형 회귀 기울기 오류

numpy를 사용하여 피트 경사의 오차를 계산하는 가장 좋은 방법은 무엇입니까?

+1

'polyfit'을 사용하면 적합도의 나머지를 반환합니다. 당신은 Chi2를 할 수 있습니다 당신이 찾고있는 것 같아 맞는의 장점을 얻을. – ebarr

+0

나는 절대적인 오류가 아니라 좋은 것을 찾고있다. – Mixel

+1

잔차는 각 피팅의 절대 오차입니다. – ebarr

답변

5

의견에서 @ebarr로 이미 언급했듯이 np.polyfit을 사용하여 키워드 인수 full=True을 사용하여 잔차를 반환 할 수 있습니다.

예 :

x = np.array([0.0, 1.0, 2.0, 3.0, 4.0, 5.0]) 
y = np.array([0.0, 0.8, 0.9, 0.1, -0.8, -1.0]) 
z, residuals, rank, singular_values, rcond = np.polyfit(x, y, 3, full=True) 

residuals는 최소 제곱의 합이다.

또는 키워드 인수 cov=True을 사용하여 공분산 행렬을 얻을 수 있습니다.

예 :

x = np.array([0.0, 1.0, 2.0, 3.0, 4.0, 5.0]) 
y = np.array([0.0, 0.8, 0.9, 0.1, -0.8, -1.0]) 
z, cov = np.polyfit(x, y, 3, cov=True) 

그렇다면, cov의 대각선 원소, 즉 np.sqrt(np.diag(cov)) 당신의 계수의 표준 편차를 부여 (Z)의 계수의 차이이다. 표준 편차를 사용하여 절대 오류가 특정 값을 초과 할 확률을 예측할 수 있습니다 (예 : uncertainty propagation calculation에 표준 편차를 삽입하십시오. 예를 들어 불확실성 전파의 표준 편차가 3 * 일 경우, 99.7 %의 경우에 초과되지 않는 오차를 계산합니다.

마지막 힌트 : full=True 또는 cov=True을 선택해야합니다. cov=Truefull=False (기본값) 또는 그 반대로 작동하는 경우에만 작동합니다.

+0

이 솔루션을 구현하려고하면 공변량 행렬의 대각선을 따라 음의 값을 얻습니다. –