gpt4 book ai didi

python:二次相关

转载 作者:行者123 更新时间:2023-11-30 22:19:15 25 4
gpt4 key购买 nike

我的问题如下。假设我有这两个数组:

import numpy as np
x1 = np.array([1,2,3,4,5,6,5,5,4,3,2,1])
y1 = np.array([1,2,3,4,5,6,7,8,9,10,11,12])

有没有办法计算它们之间的某种“二次相关系数”(二次回归:y=A+Bx+Cx2)?像这样的事情就完成了:http://keisan.casio.com/exec/system/14059932254941

此外,如果可能的话,是否也可以计算其他多项式/指数函数的相关系数?

最诚挚的问候!

最佳答案

所以你有一些数据(我将更改这些值,因为你使用不同的 Y 重复了 X 值):

import numpy as np
x1 = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
y1 = np.array([1, 3, 4, 6, 7, 4, 6, 5, 2])

您可以使用 np.polyfit 找到不同的多项式拟合:

fit1 = np.polyfit(x1, y1, 1)  # linear
fit2 = np.polyfit(x1, y1, 2) # quadratic
fit3 = np.polyfit(x1, y1, 3) # cubic

您可以通过使用 np.polyval 评估生成的多项式来检查每个项的效果如何:

v1 = np.polyval(fit1, x1)
v2 = np.polyval(fit2, x1)
v3 = np.polyval(fit3, x1)

这些看起来像这样:

Polynomial fits

您可以从数字上检查它们的拟合程度,例如计算 mean squared error :

mse1 = np.mean(np.square(y1 - v1))  # 3.240
mse2 = np.mean(np.square(y1 - v2)) # 0.734
mse3 = np.mean(np.square(y1 - v3)) # 0.727

现在,除此之外,您还可以查看相关性。 correlation coefficients其实有好几种。 NumPy 实现 Pearson correlation coefficientnp.corrcoef :

np.corrcoef(x1, y1)
# [[ 1. , 0.27578314],
# [ 0.27578314, 1. ]]

该系数衡量的是线性相关性,因此它不适用于非线性关系。然而,非线性相关性通常是一个复杂得多的主题(和 still under research )。您可以研究一些其他相关系数或研究其他技术,但请注意,这只会告诉您是否存在某种相关性,而不会告诉您是否能够构建模型利用相关性。

关于python:二次相关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49179463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com