Python计算相关系数

最近在看地理建模题目,其中提到了建立回归模型后计算相关系数;当时有点疑问,这个相关系数是从原始数据算出,还是用回归后的拟合数据计算。
后来想了想应该是原始数据计算的,用回归方程算出的x,y肯定在一条直线上,相关系数直接就是1了。虽然想法有些耿直,但是为了验证一下,同时也顺路写写代码,于是使用Python计算相关系数。
在这里插入图片描述
提前将数据整理为csv格式了,四列分别为ID、原始y、原始x、和拟合y。
在这里插入图片描述
原始x和y的散点图显示x与y呈现线性相关关系。因此可以建立线性回归模型。
在这里插入图片描述

这是相关系数计算公式。据此计算相关关系。
在这里插入图片描述
根据公式写出计算代码:

import pandas as pd
from 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的相关系数。结果与设想的一样。
在这里插入图片描述
新开通了本人的公众号,欢迎关注:燕南路GISer ,专注GIS干货分享,不定期更新。
主要兴趣:GIS、时空数据挖掘、python、机器学习深度学习
CSDN的部分内容会重写再搬迁到公众号,欢迎关注!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

燕南路GISer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值