pandas - 数据框列值的线性回归
pandas - linear regression of dataframe columns values
我有一个 pandas 数据框 df
像:
A,B,C
1,1,1
0.8,0.6,0.9
0.7,0.5,0.8
0.2,0.4,0.1
0.1,0,0
其中三列的排序值 [0,1]。我正在尝试绘制三个系列的线性回归。到目前为止,我能够使用 scipy.stats
如下:
from scipy import stats
xi = np.arange(len(df))
slope, intercept, r_value, p_value, std_err = stats.linregress(xi,df['A'])
line1 = intercept + slope*xi
slope, intercept, r_value, p_value, std_err = stats.linregress(xi,df['B'])
line2 = intercept + slope*xi
slope, intercept, r_value, p_value, std_err = stats.linregress(xi,df['C'])
line3 = intercept + slope*xi
plt.plot(line1,'r-')
plt.plot(line2,'b-')
plt.plot(line3,'g-')
plt.plot(xi,df['A'],'ro')
plt.plot(xi,df['B'],'bo')
plt.plot(xi,df['C'],'go')
得到如下图:
是否有可能获得一个单一的线性回归来总结scipy.stats
内的三个单一线性回归?
也许是这样的:
x = pd.np.tile(xi, 3)
y = pd.np.r_[df['A'], df['B'], df['C']]
slope, intercept, r_value, p_value, std_err = stats.linregress(x, y)
line4 = intercept + slope * xi
plt.plot(line4,'k-')
我有一个 pandas 数据框 df
像:
A,B,C
1,1,1
0.8,0.6,0.9
0.7,0.5,0.8
0.2,0.4,0.1
0.1,0,0
其中三列的排序值 [0,1]。我正在尝试绘制三个系列的线性回归。到目前为止,我能够使用 scipy.stats
如下:
from scipy import stats
xi = np.arange(len(df))
slope, intercept, r_value, p_value, std_err = stats.linregress(xi,df['A'])
line1 = intercept + slope*xi
slope, intercept, r_value, p_value, std_err = stats.linregress(xi,df['B'])
line2 = intercept + slope*xi
slope, intercept, r_value, p_value, std_err = stats.linregress(xi,df['C'])
line3 = intercept + slope*xi
plt.plot(line1,'r-')
plt.plot(line2,'b-')
plt.plot(line3,'g-')
plt.plot(xi,df['A'],'ro')
plt.plot(xi,df['B'],'bo')
plt.plot(xi,df['C'],'go')
得到如下图:
是否有可能获得一个单一的线性回归来总结scipy.stats
内的三个单一线性回归?
也许是这样的:
x = pd.np.tile(xi, 3)
y = pd.np.r_[df['A'], df['B'], df['C']]
slope, intercept, r_value, p_value, std_err = stats.linregress(x, y)
line4 = intercept + slope * xi
plt.plot(line4,'k-')