首页 > 编程知识 正文

python计算相关系数矩阵,python相关系数显著性检验

时间:2023-05-03 12:58:35 阅读:261419 作者:3956

最近在看地理建模题目,其中提到了建立回归模型后计算相关系数;当时有点疑问,这个相关系数是从原始数据算出,还是用回归后的拟合数据计算。
后来想了想应该是原始数据计算的,用回归方程算出的x,y肯定在一条直线上,相关系数直接就是1了。虽然想法有些耿直,但是为了验证一下,同时也顺路写写代码,于是使用Python计算相关系数。

提前将数据整理为csv格式了,四列分别为ID、原始y、原始x、和拟合y。

原始x和y的散点图显示x与y呈现线性相关关系。因此可以建立线性回归模型。

这是相关系数计算公式。据此计算相关关系。

根据公式写出计算代码:

import pandas as pdfrom numpy import mean#相关系数计算公式def R_Square(x,y): p1=x2=y2=0.0 #计算平均值 x_=mean(x) y_=mean(y) #循环读取每个值,计算对应值的累和 for i in range(len(x)): p1+=(x[i]-x_)*(y[i]-y_) x2+=(x[i]-x_)**2 y2+=(y[i]-y_)**2 #print(p1,x2,y2) #计算相关系数 r=p1/((x2** 0.5)*(y2** 0.5)) return r#读取数据df=pd.read_csv("data.csv",encoding='utf-8')x=df['x'].tolist()y=df['y'].tolist()#调用并输出相关系数print(R_Square(x,y))

上面为拟合值与x的相关系数,下面为原始x、y的相关系数。结果与设想的一样。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。