np.poly1d:如何计算R ^ 2

问题描述 投票:0回答:1

我正在将我的数据拟合为线性回归。但是我想知道如何计算R2值。以下是我到目前为止的代码。

total_csv= pd.read_csv('IgG1_sigma_biospin_neg.csv',header=0).iloc[:,:]
x_values=(19,20,21,22)
y_values=IgG1_sigma_biospin_neg.loc[0, ['19-', '20-', '21-', '22-']].tolist()


my_fitting= np.polyfit(x_values,y_values,1)
my_lin_fitting = np.poly1d(my_fitting) 
my_x=Symbol('x')
print('my_equation:',expand(my_lin_fitting (my_x)))

我得到我的数据的线性拟合方程35.6499591999999 * x + 6018.6395529。

In [95]:y_values
Out[95]: [6698.0902240000005, 6733.253559000001, 6757.754712999999, 6808.75637]

您知道如何计算R2值吗?

numpy linear-regression
1个回答
0
投票

第一件事-您应该使用np.polynomial.polynomial类/方法代替np.polyfit(请参阅np.polyfit上的文档,指出人们使用较新的代码]]

然后您可以在此处使用polyfit方法。默认情况下,它将仅返回系数。如果需要残差(R2),则指定full=True。然后,polyfit还将返回一个列表,其中第一个元素为残差(R2)。 See here.

上面代码的mod将在下面:

import numpy.polynomial.polynomial as poly

my_fitting, stats = poly.polyfit(x_values,y_values,1, full=True)
R2 = stats[0][0]
© www.soinside.com 2019 - 2024. All rights reserved.