2017-12-16 40 views
1

私はこのようなものでscipyのダウンロードのlinregress()を使って自分のデータ間で最小二乗ラインにフィットするようにしようとしている:線形回帰のy切片値を修正するにはどうすればよいですか?

from scipy import stats 
import numpy as np 

y = [30, 60, 19, 28, 41, 49, 62, 75, 81] 
x = np.arange(0,9) 

grad, intercept, r_value, p_value, std_err = stats.linregress(x,y) 

しかし、私はまた、特定の時点で、y切片を修正したいと思います。

理想的には、yリストの最初の値で修正する予定です。言い換えれば、私が実際にやろうとしているのは、ベストフィットラインがyリストの最初の値を通過するようにすることです。これは私の例では30です。

しかし、Scipyが私にとってy切片を決定しているようです。

scipyの線形回帰法でy切片を特定の値に固定するにはどうすればよいですか?

PS:私もstatsmodelsのOLSを使ってみましたが、y-インターセプト= 0のままにしておくか、最善の傍受を決めることしかできません。

res = OLS(y - 30., x).fit() 

Xは切片(ものの列)なしで説明変数が含まれています。あなたはそう原点はゼロであり、切片を除外Yをシフトさせることができるstatsmodelsで

答えて

2

。次いで、解釈は、我々は、BSE、tvalues、pvaluesとrsquared等フィット統計のように、30

y_predicted = 30 + res.predict(...) 

からほとんどすべての統計偏差を予測シフトに固定され、一定の仮定位置のシフトから独立していることです値。そのような放物線のような多項式で

0

Yが+ bXとを= + CX^

2ときX = 0、次いで、Y = A及びので多項式をフィッティングされており、使用できるかどうかaの固定値であれば、Y切片を任意の値に等しくすることができます。あなたが式にデータをフィット場合は、再度、放物線の例を使用して:

Y = 7.5 + bXと+ CX^2は

その後、上記の式に適合した切片は7.5になります。

関連する問題