• 一元线性回归的最小二乘法详解及代码。


    个人记录,大部分摘自概率论与数理统计

    一元线性回归模型

    设y与x间有相关关系,称x为自变量,y为因变量,我们只考虑在x是可控变量,只有y是随机变量,那么他们之间的相关关系可以表示为

    y=f(x)+ε

    其中ε是随机误差,一般假设ε~N(0,σ2)。由于ε是随机变量,导致y也是随机变量。

    进行回归分析首先是回归函数形式的选择。通常采用画散点图来进行选择。

    有一份合金钢强度y与碳含量x的数据表

    数据散点图如下

    可以看出,数据点基本在一条直线上,说明两个数据有线性相关关系,可以表示为

    y=β01x+ε

    这是y关于x的一元线性回归的数据结构,其中β0,β1

    分别是截距和斜率。 ε~N(0,σ2)

    则回归方程为

    回归系数的最小二乘法估计。

    我们首先令偏差平方和

    Q(β0,β1)=∑ni=1(yi01xi)2

    最小二乘法就是尽量使Q(β0,β1)=∑ni=1(yi01xi)2=0,分别对β0,β1求偏导

    整理后可知方程组 1

     如无特殊声明Σ均表示Σni=1,则有

    解方程组1 可知

     

     python代码

     1 import numpy as np
     2 #导入回归数据
     3 x=np.array([0.1,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.2,0.21,0.23])
     4 y=np.array([42,43,45,45,45,47.5,49,53,50,55,55,60])
     5 #x求和
     6 sx=sum(x)
     7 # y求和
     8 sy=sum(y)
     9 #参数个数
    10 n=len(x)
    11 #x的平均值
    12 mx=np.mean(x)
    13 #y的平均值
    14 my=np.mean(y)
    15 #∑(xi)^2,所有xi的平方和
    16 sx2=sum(x*x) 
    17 #∑(yi)^2所有yi的平方和
    18 sy2=sum(y*y) 
    19 #∑xiyi 所有xiyi的和
    20 sxy=sum(x*y)
    21 #lxx
    22 lxx=sx2-1/n*pow(sx,2)
    23 #lxy
    24 lxy=sxy-1/n*sx*sy
    25 #lyy
    26 lyy=sy2-1/n*pow(sy,2)
    27 #β1
    28 β1=lxy/lxx
    29 #β0
    30 β0=my-mx*β1
    31 
    32 #结果  y=28.08+132.90

    到此结束

  • 相关阅读:
    推断两条单链表是否相交
    字典树的实现
    ActivityGroup window bad token问题深入分析
    "《 Serial Drivers 》by Alessandro Rubini" 学习笔记
    rac_安装软件时报版本号过高问题
    Mac OS 环境下 安装 Asp.Net及使用Yeoman 创建Asp.Net 项目
    iOS:一个Cell中设置另外一个Cell中的button
    Java虚拟机定义
    一道超级坑爹的水题(ACdream oj 无耻的出题人)
    Cocos2d-x 3.x版2048游戏开发
  • 原文地址:https://www.cnblogs.com/niuchen/p/6434092.html
Copyright © 2020-2023  润新知