最小二乘法python代码,可以求出斜率,截距相关系数和标准误差
时间: 2024-10-10 21:06:40 浏览: 49
最小二乘法是一种统计学方法,用于估计线性模型中的参数,使得残差平方和最小。在Python中,我们可以使用`numpy`库和`scipy`库来进行这样的计算。下面是一个简单的例子,假设我们有一个二维数组`X`代表自变量,一维数组`y`代表因变量:
```python
import numpy as np
from scipy.optimize import curve_fit
# 假设数据点
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 5, 4, 5])
# 定义线性函数的形式 (slope, intercept) = f(x)
def linear_function(x, slope, intercept):
return slope * x + intercept
# 使用curve_fit求解斜率(m)和截距(b)
params, _ = curve_fit(linear_function, x, y)
# 斜率(slope)和截距(intercept)
slope = params[0]
intercept = params[1]
# 相关系数通常通过pearson相关系数计算,scipy库没有直接提供,可以手动实现
# 或者使用statsmodels库
# from statsmodels.stats.correlation_tools import pearsonr
# corr, _ = pearsonr(x, y)
# 标准误差(standard error),对于fit结果的参数,可以直接查看其covariance矩阵
cov_matrix = params[1:]
std_error = np.sqrt(np.diag(cov_matrix))
print(f"斜率: {slope}")
print(f"截距: {intercept}")
#
阅读全文