101

生成した散布図で線形回帰を生成しようとしていますが、データはリスト形式であり、使用して見つけることができるすべての例では を使用polyfitする必要がありarangeます。arangeただし、リストは受け入れません。リストを配列に変換する方法について高低を検索しましたが、明確なものは何もありません。何か不足していますか?

続いて、整数のリストを への入力としてどのように使用すればよいpolyfitでしょうか?

これが私がフォローしているポリフィットの例です:

from pylab import * 

x = arange(data) 
y = arange(data) 

m,b = polyfit(x, y, 1) 

plot(x, y, 'yo', x, m*x+b, '--k') 
show() 
4

7 に答える 7

210

arange リストを生成します(まあ、numpy配列); 詳細を入力help(np.arange)してください。既存のリストで呼び出す必要はありません。

>>> x = [1,2,3,4]
>>> y = [3,5,7,9] 
>>> 
>>> m,b = np.polyfit(x, y, 1)
>>> m
2.0000000000000009
>>> b
0.99999999999999833

poly1d「m*x + b」やそれに相当するものを書き出すのではなく、ここで使用する傾向があることを付け加えておきます。そのため、私のバージョンのコードは次のようになります。

import numpy as np
import matplotlib.pyplot as plt

x = [1,2,3,4]
y = [3,5,7,10] # 10, not 9, so the fit isn't perfect

coef = np.polyfit(x,y,1)
poly1d_fn = np.poly1d(coef) 
# poly1d_fn is now a function which takes in x and returns an estimate for y

plt.plot(x,y, 'yo', x, poly1d_fn(x), '--k') #'--k'=black dashed line, 'yo' = yellow circle marker

plt.xlim(0, 5)
plt.ylim(0, 12)

ここに画像の説明を入力してください

于 2011-05-27T05:47:26.343 に答える
43

このコード:

from scipy.stats import linregress

linregress(x,y) #x and y are arrays or lists.

次のリストを提供します。

傾き : 浮動小数点
回帰直線の傾き
切片 : 浮動小数点回帰
直線の切片
r-value : 浮動小数点
相関係数
p-値 : 浮動小数点
傾きがゼロであるという帰無仮説を持つ仮説検定の両側 p 値
stderr : 浮動小数点数
推定値の標準誤差

ソース

于 2014-12-08T17:37:02.020 に答える
1

別の簡単で汚い答えは、次を使用してリストを配列に変換できることです。

import numpy as np
arr = np.asarray(listname)
于 2014-09-15T20:26:10.117 に答える