多元回归分析的心得(笔记)

多元回归分析的心得(笔记)
通过一篇博客内的文章
对我最近帮老师做多元回归分析求解相关系数有很大帮助(从零开始涉猎)

文章内对我帮助最大的就是通过公式死算出来相关系数(这方面基本没有涉猎…所以当老师要求做时很蒙圈)

在网上查找的很多有关求解多元回归分析相关系数的文章,但大部分都是通过sklearn来进行回归分析的研究,将数据拆分成训练数据以及测试数据,机器通过训练数据获得一个模型,再通过测试数据对模型做到检测从而得到相关的一些数据(通过几天的摸索得出的模糊结论)

我通过sklearn中的model.score方法的到决定系数r^ 2,再通过对r ^2进行开根号得到相关系数,但得出结果和通过excel直接得出相关系数结果偏差过大。

最终找到了开头说的文章

公式原理并不太清楚,只是经典的套娃,通过文章内容自己推导了一下(博客文章内容是1个因变量,2个自变量,但我还需要1个因变量,3个自变量的做法)

总结一下心得:

下边是原始数据(第一列Pi+1为因变量,后头Pi,Pw为自变量):
在这里插入图片描述
以下代码与上边博客文章中的代码基本一致,仅通过自己推理做出了一些改变

    X1=gongshi1["Pi上旬平均含水量"].values
    X11=np.array([X1]).T
    X2=gongshi1["Pw本旬降雨量"].values
    X22=np.array([X2]).T
   	#若需要3列自变量的作法如下
    #X3=gongshi[new_column_name].values
    #X33=np.array([X3]).T
    Y=gongshi1["Pi+1本旬平均含水量"].values
    Y1=np.array([Y]).T
    #上边是将三列转化为数组并获得其转置
    A = []
    for i in range(len(Y)):
        A.append([1])
    #创造与数据长度一致的系数矩阵
    B=np.hstack((A,X11))
    X=np.hstack((B,X22))#3列自变量的做法:X=np.hstack((B,X22,X33))
    X_=X.T
    X_X=np.dot(X_,X)
    X_X_=np.linalg.inv(X_X)
    W=np.dot(np.dot((X_X_),(X_)),Y1)
    b=W[0][0]
    a1=W[1][0]
    a2=W[2][0]
    #3列子自变量做法:
    #a3=W[3][0]
    sumy=0
    y1=0
    for i in range(0,len(Y)):
        sumy=sumy+Y[i]
    y1=sumy/len(Y)
    y_y1=0
    for i in range(0,len(Y)):
        y_y1=y_y1+(Y[i]-y1)
    sales1=[]
    for i in range(0,len(Y)):
        sales1.append(a1*X1[i]+a2*X2[i]+b)#3列自变量做法如下:sales1.append(a1*X1[i]+a2*X2[i]+a3*X3[i]+b)
    y2=0
    sumy2=0
    for i in range(len(sales1)):
        sumy2=sumy2+sales1[i]
    y2=sumy2/len(sales1)
    y11_y2=0
    for i in range(0,len(sales1)):
        y11_y2=y11_y2+(sales1[i]-y2)
    
    Syy=0
    for i in range(0,len(Y)):
        Syy=Syy+((Y[i]-y1)*(Y[i]-y1))
    
    Sy1y1=0
    for i in range(0,len(sales1)):
       Sy1y1=Sy1y1+((sales1[i]-y2)*(sales1[i]-y2))
    Syy1=0
    for i in range(0,len(sales1)):
        Syy1=Syy1+((Y[i]-y1)*(sales1[i]-y2))
    r1=Syy1/((Syy*Sy1y1)**0.5)#此结果即为相关系数
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值