Python解决简单的一元线性回归问题

一、简单的线性回归

1.集中趋势衡量

1.1均值(mean):一组已知的数据中的平均值

\bar{x}=\frac{\sum_{i=1}^{n}x_{i}}{n}

1.2中位数(median):一组数据中的中间位置的数据值

如有一组数据有n个,若n为奇数,则中位数取中间量;若n为偶数,则中位数取中间两位数的平均值。

1.3 众数(mode):一组数据中出现次数最多的数据

2.离散程度的衡量

2.1方差(variance)

s^{2}=\frac{\sum_{i=1}^{n} (x_{i}-\bar{x})^{2}}{n-1}

2.2标准差(standard deviation)

s=\sqrt{s^{2}}

3.回归和分类之间的区别

回归:Y变量为连续型数值(continous numerical variable)

分类:Y变量为类别型数值(categorical variable)

4.简单的线性回归:

简单的线性回过通常呈现的是由两个或多个变量组成的他们之间的关系,

通常通过建立方程模型来模拟,

被预测的变量:因变量(dependent variable),也叫输出量(output),

被用来进行预测的变量:自变量(independent variable),也叫输入量(input)。

5.简单线性回归的特点:

一般都是一个输出量和一个输入量,

简单的线性回归可以用一条直线来模拟,

多于两个以上的变量称为多元回归分析。

6.简单线性回归模型

y=\beta _{0}+\beta _{1}+\varepsilon

其中\beta _{0}\beta _{1}为模型中的参数,\varepsilon为偏差(error)

关于\varepsilon偏差的假定: 随机变量,均值为0;

                               \varepsilon的方差对所有的自变量x都是一样的;

                               \varepsilon  的值是独立的;

                               \varepsilon  满足正态分布。

7.简单线性回归方程

E\left ( y \right )=\beta _{0}+\beta _{1}x

其中\beta _{0}是回归线性方程的截距,\beta _{1}是回归线性方程的系数,E(y)是在一个给定的x值下y的期望值(均值)。

8.估计的简单线性回归方程(estimated regression line)

\hat{y}=b_{0}+b_{1}x

其中的b_{0}b_{1}都是估计值。

其中,b_{1}=\frac{\sum\left (x_{i}-\bar{x} \right )(y_{i}-\bar{y}) }{\sum (x_{i}-\bar{x})^{2}}

b_{0}=\bar{y}-b_{1}\bar{x}

9.python实现代码

import numpy as np

def fitSLR(x,y):
    n=len(x)
    dinominator = 0
    numerator=0
    for i in range(0,n):
        numerator += (x[i]-np.mean(x))*(y[i]-np.mean(y))
        dinominator += (x[i]-np.mean(x))**2
        
    print("numerator:"+str(numerator))
    print("dinominator:"+str(dinominator))
    
    b1 = numerator/float(dinominator)
    b0 = np.mean(y)/float(np.mean(x))
    
    return b0,b1

# y= b0+x*b1 简单线性回归估计方程
def prefict(x,b0,b1):
    return b0+x*b1

x=[1,3,2,1,3]
y=[14,24,18,17,27]

b0,b1=fitSLR(x, y)
y_predict = prefict(6,b0,b1)
print("y_predict:"+str(y_predict))

结果如下图:

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值