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-squaredは、私が考えることができる少なくとも何も直線上に適合していない場合に役立つものではありません(それは単に私のデータがどのように線形であるかについての尺度です_)。あなたが使用できる一般的な適合度統計値は、chi2値です。 – Carsten

+0

私が得ることができるすべての価値(r_squaredを含む)のほとんどが完璧です! –

関連する問題