目录

数据集

基于实例的线性回归的简要介绍

代码块

(1)数据的读入

(2)数据的理解

以“数据框形状”的角度去理解数据

以“简要信息”的角度去理解数据

以“列”的角度去理解数据

以“描述性统计”的角度去理解数据

以“可视化的角度”去理解数据

用matplotlib进行可视化

(3)数据的规整化处理

(4)模型的训练

(5)模型的解读与评价


数据集

https://download.csdn.net/download/llf000000/86724138

基于实例的线性回归的简要介绍

在数据集women的基础上,以身高为自变量,而体重为因变量进行线性回归分析。

x是自变量height,y是因变量weight

最小二乘法:每个点到该条线的距离之和最小的线就是最好的线。

回归线的拟合优度评价,越接近1越好

代码块

(1)数据的读入

#查看当前工作目录
import os
print(os.getcwd())
#读入文件"women.csv"至Pandas数据框df_womenimport pandas as pd
df_women = pd.read_csv('women.csv', index_col=0)#第0列为索引列/行名#第一列和第一行不能参加数据的分析print(df_women.head())#显示前5行数据

(2)数据的理解

以“数据框形状”的角度去理解数据

# 查看数据形状(行数和列数)
df_women.shape#shape是DataFrame数据框的属性
#shape是属性,所以没有“()”

以“简要信息”的角度去理解数据

#查看数据框的简要信息
df_women.info()#info()是方法,所以又“()”

以“列”的角度去理解数据

#属性相当于变量,方法相当于函数# 查看列名
print(df_women.columns)#columns是属性

dtype是数据类型,Python认为一切都是对象,一切都是object

以“描述性统计”的角度去理解数据

# 查看描述性统计信息
df_women.describe()

count:数量

mean:均值

std(Standard deviation):标准差

min:最小的值

max:最大的值

以“可视化的角度”去理解数据

用matplotlib进行可视化

rc

# 数据可视化
#pyplot是做数据可视化的# “@”:装饰器
# “#”:注释
# “%”:魔术命令,是jupyter才有的
import matplotlib.pyplot as plt%matplotlib inline
#inline:把接下来画的图放在行内,在当前的页面上显示#plt.rcParams["font.family"] = 'Heiti TC'这段代码不行# 解决中文显示问题
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False# windows下#plt.rcParams['font.family']="XimHei" #汉字显示  param:参数# “front.family”是字体集#Heiti TC 黑体 TC
plt.scatter(df_women["height"], df_women["weight"])#散点图的函数scatter(x周,y周)
#scatter只有绘图的功能,没有打印和展示图的功能plt.title('女性体重与身高数据的可视化')
plt.xlabel('身高')
plt.ylabel('体重')
plt.show()
plt.scatter(df_women["height"], df_women["weight"])
等价于
plt.scatter(data = df_women, x= "height",y="weight")

(3)数据的规整化处理

也就是数据的准备,我们需要调用第三方的包和模块来解决问题,但是第三方的包和模块对数据的模态是有要求的,也就是我们在调用第三方的包和模块是需要把我们的数据转换成第三方的包和模块能接收的数据格式

#特征矩阵(X)的生成
#某个中括号前面有单词的话,“[]”肯定是对前面这个东西的切片
#把height给切出来X = df_women["height"]
X

#目标向量(y)的生成
y = df_women["weight"]
y

(4)模型的训练

#特征矩阵的规整化处理
#每一个包对数据的模式和形态是有要求的,
'''我们的模型时y=ax+b,statsmodel在训练的时候只会训练a,不会训练b,为了防止出现这个情况并且让a和b都得到训练,我们需要在自变量也就是特征矩阵中增加一列,这一列的名字叫做const,而这一列全是1。计算机看到这一列1时明白了纪要计算a,也要计算b。'''
import statsmodels.api as sm
X=sm.add_constant(X) #给X新增一列,列名【const】,每行的取值均为1.0
X

#构建模型
#OLS是最小二乘法的缩写ordinary least squares
myModel = sm.OLS(y, X)

但是这个模型调用完之后,这个a和b还没有算出来,只是把X和y送给这个模型了

a和b算出来的这个过程叫做fit,fit的意思就是基于你的数据算出的参数

#模型拟合
#基于你的数据拟合出你的a和b
results = myModel.fit()#a和b放在results的里面

我们的模型已经训练好了,我们的模型叫做results

(5)模型的解读与评价

#summary把拟合后的情况告诉你
print(results.summary())

由上表得出:

weight = 3.4*h+(-87)

(DW统计量区间是[0,4],数值越靠近2越可靠)

#回归系数
results.params
#params属性找到你的系数和截距

#残差(residual)
results.resid

#残差的标准差
results.resid.std()

#信任区间 (Confidence interval )
results.conf_int(alpha=0.025)

#R方
print("rsquared=",results.rsquared)

#F统计量的p值
results.f_pvalue

#DW统计量
sm.stats.stattools.durbin_watson(results.resid)

#JB统计量
sm.stats.stattools.jarque_bera(results.resid)#返回值有四个,分布为JB,JB的P值,锋度和偏度

#可视化预测结果
y_predict=results.predict()
y_predict

plt.rcParams["font.family"] = 'Heiti TC'
# windows下#plt.rcParams['font.family']="XimHei" #汉字显示
plt.plot(df_women["height"], df_women["weight"],"o")
plt.plot(df_women["height"], y_predict)
plt.title('女性体重与身高的线性回归分析')
plt.xlabel('身高')
plt.ylabel('体重')    


基于Python的统计建模相关推荐

  1. python 财务报表 建模_使用Python进行统计建模

    =============== 我的公众号:早起python =============== 前言 大家好,在之前的文章中我们已经讲解了很多Python数据处理的方法比如读取数据.缺失值处理.数据降维 ...

  2. 基于python的数据建模与分析案例_基于案例详解Python数据分析与机器学习

    课程概述: 使用数据领域最主流语言Python及其分析与建模库作为核心武器.对于机器学习经典算法给出完整的原理推导并基于实例进行讲解,基于案例演示如何应用机器学习算法解决实际问题. 课程特色: 通俗易 ...

  3. 基于python批量统计表格中的某一列去除异常值后的平均值

    当我们需要对多个表格表格中的某一列进行统计时,且该列数据存在异常极端值,可通过百分位数的方法将极端值筛选掉,在本次案例将小于5%的分位数和大于95%分位数的数值去掉,统计的5%~95%内的数据的平均值 ...

  4. python 财务报表 建模_Python进行统计建模

    前言 大家好,在之前的文章中我们已经讲解了很多Python数据处理的方法比如读取数据.缺失值处理.数据降维等,也介绍了一些数据可视化的方法如Matplotlib.pyecharts等,那么在掌握了这些 ...

  5. 《贝叶斯思维:统计建模的Python学习法》——2.5 封装框架

    本节书摘来异步社区<贝叶斯思维:统计建模的Python学习法>一书中的第2章,第2.5节,作者:[美]Allen B. Downey,更多章节内容可以访问云栖社区"异步社区&qu ...

  6. 贝叶斯思维 统计建模的Python学习法pdf

    下载地址:网盘下载 编辑推荐 贝叶斯方法正在变得越来越常见与重要,但是却没有太多可以借鉴的资料来帮助初学者.基于Allen Downey在大学讲授的本科课程,本书的计算方法能帮助你获得一个良好的开端. ...

  7. 《贝叶斯思维:统计建模的Python学习法》一1.6 MM豆问题

    本节书摘来自异步社区<贝叶斯思维:统计建模的Python学习法>一书中的第1章,第1.6节,作者[美]Allen B. Downey,更多章节内容可以访问云栖社区"异步社区&qu ...

  8. 《贝叶斯思维:统计建模的Python学习法》——1.8 讨论

    本节书摘来异步社区<贝叶斯思维:统计建模的Python学习法>一书中的第1章,第1.8节,作者:[美]Allen B. Downey,更多章节内容可以访问云栖社区"异步社区&qu ...

  9. 《贝叶斯思维:统计建模的Python学习法》——2.3 贝叶斯框架

    本节书摘来异步社区<贝叶斯思维:统计建模的Python学习法>一书中的第2章,第2.3节,作者:[美]Allen B. Downey,更多章节内容可以访问云栖社区"异步社区&qu ...

最新文章

  1. java ubuntu 14.04,Ubuntu 14.04安装java的方法
  2. 2021的第二封拒信,来自斯坦福电气工程
  3. 1.1 什么是Hive
  4. Python数据分析之全球人口数据
  5. [gtest][002] A quick start to build the Google C++ Testing project
  6. ie浏览器如何实现scrollto_如何实现报表直接打印需求
  7. inline-block,inline,block,table-cell,float
  8. 根据WSDL文件生成JAVA代码
  9. 华为USG防火墙搭建IPsec***实战
  10. C语言求等腰梯形面积,几道C语言的题目!
  11. Caemra名词缩写解释
  12. Excel中如何使用COLUMN和COLUMNS函数
  13. PROBLEM F: 切煎饼
  14. 适合苹果的蓝牙耳机推荐,音质超好的蓝牙耳机推荐
  15. 2020ciscn 部分二进制WP(持续更新)
  16. 怎么解决视频时摄像头显示的画面显示绿色人影的问题
  17. 11款Windows必装软件,每一款都非常好用
  18. 将baml 转换为xaml_将XAML实施SAML
  19. PW6513原装现货
  20. 轮播图的实现,点击按钮切换轮播图等功能

热门文章

  1. 二进制安装Kubernetes(k8s) v1.24.0 IPv4
  2. windows 安装python3 Eclipse 配置python插件
  3. 论文阅读 Solving Mixed Integer Programs Using Neural Networks
  4. Code_Aster comm命令文件结构与说明(by Yang 2017.3.30)
  5. nginx根据url中的参数进行转发
  6. 域名防封之长城防封系统都能做什么?
  7. CBitmap Detach DeleteObject关系
  8. 面试题:kafka的ACK参数-1,0,1分别代表的含义
  9. Clickhouse 分析分布式表的各类指标
  10. lect02_codes03_pandas