原文链接: scipy 线性拟合 相关系数
上一篇: scipy 最小二成法拟合曲线方程
下一篇: TensorFlow 常见激活函数
使用scipy 拟合线性数据,求系数和线性相关系数
import sys
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import statsmodels.api as sm
import scipy.stats
from sklearn.metrics import r2_score
size = 1000
x = np.linspace(0, 10, size)
y = 2 * x + 3 + np.random.normal(0, 1, size)
slope, intercept, r_value, p_value, std_err = scipy.stats.linregress(x, y)
y2 = slope * x + intercept
# 斜率, 截距,相关系数,假设检验,估计梯度的标准差
print(
slope, intercept, r_value, p_value, std_err
)
# 相关系数
print(
r2_score(y2, y),
r2_score(y, y2),
)
结果
1.9968120750661635 3.031230824858268 0.9857951745943679 0.0 0.01076887686718046
0.9709733460640334 0.9717921262535413