Numpy中如何从polyfit中找到不确定性

Numpy中如何从polyfit中找到不确定性

在本文中,我们将介绍如何利用Numpy库中的polyfit功能来计算一组数据的拟合系数,并从拟合系数中推导出其不确定性。

拟合系数是一组多项式函数的系数,用于描述数据集的趋势。在数据拟合过程中,拟合系数的准确性和不确定性很重要。Numpy库中的polyfit可以使用最小二乘法来拟合数据,并返回拟合系数。

下面的代码块展示了如何使用polyfit来计算一组数据的拟合系数:

import numpy as np

x = np.array([1, 2, 3, 4, 5])
y = np.array([3, 5, 7, 9, 11])

coefs = np.polyfit(x, y, 1)
print(coefs)
Python

上面的代码运行结果为:[ 2. 1.]. 这意味着,使用一次多项式函数可以确切地描述x和y之间的关系。

然而,结果只告诉了我们拟合系数,没有告诉我们这些系数的不确定性。要计算拟合系数的不确定性,我们需要通过使用numpy.polyfit中的cov函数。

cov函数返回一个代表协方差矩阵的二维数组。协方差矩阵是一个正方形矩阵,其对角线上的值为每个拟合系数的方差,非对角线上的值为不同拟合系数之间的协方差。

下面的代码块展示了如何使用cov函数来计算拟合系数的不确定性:

import numpy as np

x = np.array([1, 2, 3, 4, 5])
y = np.array([3, 5, 7, 9, 11])

coefs, cov = np.polyfit(x, y, 1, cov=True)
print("拟合系数:", coefs)
print("协方差矩阵:")
print(cov)
Python

该代码块将返回以下输出:

拟合系数: [ 2.  1.]
协方差矩阵:
[[ 1. -2.]
 [-2.  4.]]
Python

协方差矩阵可以用来计算拟合系数的不确定性和相关性。对角线上的值是每个拟合系数的方差。在上面的输出中,第一个元素是2,表示拟合系数2的方差为1。第二个元素是1,表示拟合系数1的方差为4。

非对角线上的值为拟合系数之间的协方差。在上面的输出中,第一个元素是-2,表示拟合系数2和1之间的协方差为-2。第二个元素也是-2。

接下来,我们将通过示例来说明如何使用协方差矩阵来计算拟合系数的不确定性。例如,我们可以计算拟合系数2的标准差:

import numpy as np

x = np.array([1, 2, 3, 4, 5])
y = np.array([3, 5, 7, 9, 11])

coefs, cov = np.polyfit(x, y, 1, cov=True)
print("拟合系数:", coefs)
print("协方差矩阵:")
print(cov)

coef2_stddev = np.sqrt(cov[0][0])
print("拟合系数2的标准差:", coef2_stddev)
Python

该代码块将返回以下输出:

拟合系数: [ 2.  1.]
协方差矩阵:
[[ 1. -2.]
 [-2.  4.]]
拟合系数2的标准差: 1.0
Python

标准差是方差的平方根,因此在上面的输出中,拟合系数2的标准差为1。

我们还可以计算拟合系数之间的相关性。例如,我们可以计算拟合系数1和2之间的相关系数:

import numpy as np

x = np.array([1, 2, 3, 4, 5])
y = np.array([3, 5, 7, 9, 11])

coefs, cov = np.polyfit(x, y, 1, cov=True)
print("拟合系数:", coefs)
print("协方差矩阵:")
print(cov)

coef1_stddev = np.sqrt(cov[1][1])
coef2_stddev = np.sqrt(cov[0][0])
coef1_2_corr = cov[0][1] / (coef1_stddev * coef2_stddev)
print("拟合系数1和2的相关系数:", coef1_2_corr)
Python

该代码块将返回以下输出:

拟合系数: [ 2.  1.]
协方差矩阵:
[[ 1. -2.]
 [-2.  4.]]
拟合系数12的相关系数: -1.0
Python

在上面的输出中,拟合系数1和2的相关系数为-1,表示它们是完全负相关的。

阅读更多:Numpy 教程

总结

使用Numpy中的polyfit功能可以计算一组数据的拟合系数,并使用cov函数计算拟合系数的不确定性和相关性。拟合系数的标准差和相关系数对于评估拟合结果的准确性和稳定性十分重要。通过使用Numpy提供的函数,我们可以更好地理解拟合结果并做出更明智的决策。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册