我有以下代码 类数据: def init (自身,x,y): “”“(数据,列表,列表)-> NoneType
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 y\n' + '\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部分。如何计算数据的简单线性回归拟合的截距和斜率。我可以使用内置功能吗?
答案 0 :(得分:2)
SciPy模块具有scipy.optimize.least_squares,我一直在使用它来构建简单的线性回归模型。
根据文档,它解决了带有变量边界的非线性最小二乘问题。它返回找到的解决方案,我想它将为您提供所需的结果。
让我知道这是否有帮助!