如何计算python中简单线性回归拟合的截距和斜率?



我有以下代码 类数据: definit(self, x, y(: ""(数据、列表、列表(-> 无类型

Create a new data object with two attributes: x and y.
"""
self.x = x
self.y = y
def num_obs(self):
""" (Data) -> int
Return the number of observations in the data set.
>>> data = Data([1, 2], [3, 4])
>>> data.num_obs()
2
"""
return len(self.x)
def __str__(self):
""" (Data) -> str
Return a string representation of this Data in this format:
x               y
18.000          120.000
20.000          110.000
22.000          120.000
25.000          135.000
26.000          140.000
29.000          115.000
30.000          150.000
33.000          165.000
33.000          160.000
35.000          180.000
"""
return 'x               yn' + 'n'.join('{0:.3f}         {1:.3f}'.format(a, b) for a, b in zip(self.x, self.y))
def compute_sample_means(self):
""" (Data) -> number, number
Return sample mean of x and sample mean of y.
"""
a = sum(self.x)/len(self.x)
b = sum(self.y)/len(self.y)
return a,b
def compute_least_squares_fit(self):
""" (Data) -> number, number
Return the intercept and slope of the simple linear regression fit
of the data.
"""
pass

def compute_SST(self):
""" (Data) -> number
Return the sum of squares total (SST).
"""
avg_y = np.mean(self.y)
squared_errors = (self.y - avg_y) ** 2
return np.sum(squared_errors)

我坚持归还compute_least_squares_fit部分。如何计算数据的简单线性回归拟合的截距和斜率。是否有可以使用的内置功能?

SciPy 模块有scipy.optimize.least_squares我一直在用于简单的线性回归模型。

根据文档,它解决了变量边界的非线性最小二乘问题。它返回找到的解决方案,我想这将导致您正在寻找的内容。

让我知道这是否有帮助!

最新更新