2016-08-07 4 views
0

Numpy에서 다항식 회귀 (polyfit)를 사용하여 계수와 요격을 얻으 려하지만 다항식 함수를 얻기 위해 스크립트를 작성하는 방법을 모르겠습니다. 나는 아래 첨부 내가 코드 선형 회귀에 대한 코드를 만든Numpy에서 다항식 회귀 통계 구하기

는 :

import matplotlib.pyplot as plt 
import sys 
from numpy import * 
import numpy as np 
import numpy.polynomial.polynomial as poly 
import pylab 
from scipy import stats 
from scipy.interpolate import * 
from datetime import datetime, timedelta 

#Open dataset1,dataset2 data 

data1 = np.loadtxt('/home/script/2_columns', delimiter=',', skiprows=0) 

data2 = np.loadtxt('/home/script/2_columns_a', delimiter=',', skiprows=0) 

#Define first column as dataset1 

#Define second column as dataset2 

x = data1[:,0] 
y = data1[:,1] 

#The stuff... 
slope, intercept, r_value, p_value, std_err = stats.linregress(x,y) 

답변

1

당신은 통계가 필요하십니까? 방금 계수를 필요로하지 않을 경우, 그것은 numpy.polyfit을 사용하여 정말 아주 간단합니다 : 당신이 다른 값을 필요로 할 경우

import numpy as np 

# from your code 
data1 = np.loadtxt('/home/script/2_columns', delimiter=',', skiprows=0) 

x = data1[:,0] 
y = data1[:,1] 

degree = 3 
coeffs = np.polyfit(x, y, degree) 

# now, coeffs is an array which contains the polynomial coefficients 
# in ascending order, i.e. x^0, x^1, x^2 
intercept, linear, quadratic, cubic = coeffs 

는, 예를 들어 r_valuex 사이의 상관 계수이기 때문에 당신이 필요한 지정하세요 y으로, 데이터가 선형이 아닌 것으로 예상 할 때 그다지 유용하지 않습니다.

+0

고맙습니다. 생각했던 것보다 훨씬 간단합니다. 실제로 통계가 필요하기 때문에 회귀에서 r 제곱 값을 확인할 수 있습니다. 위 방정식에있는 것처럼 r_value를 추가할까요? –

+0

@ E.Weglarz 아니, 그것들은 따로 계산해야합니다. 그러나 r- 제곱은 직선에 맞지 않는다면 아무 것도 쓸모가 없습니다. 적어도 생각할 수있는 것은 아무것도 아닙니다. 이것은 "내 선형이 얼마나 선형 적인가"에 대한 척도 일뿐입니다. 사용할 수있는 일반적인 적합도 통계는 chi2 값입니다. – Carsten

+0

내가 얻을 수있는 거의 모든 가치 (r_squared 포함)의 판독 값은 완벽 할 것입니다! –