目录

一、前言

1.1 回归分析

1.2 相关分析

二、代码的编写

2.1 前期准备

2.2 编写代码

2.2.1 相关分析

2.2.2 一元线性回归分析

2.2.3 多元线性回归分析

2.2.4 广义线性回归分析

2.2.5 logistic回归分析

三、代码集合


一、前言

1.1 回归分析

是用于研究分析某一变量受其他变量影响的分析方法,其基本思想是以被影响变量为因变量,以影响变量为自变量,研究因变量与自变量之间的因果关系。

1.2 相关分析

不考虑变量之间的因果关系而只研究变量之间的相关关系的一种统计方法。

二、代码的编写

2.1 前期准备

在编写代码之前,我们首先要知道需要用到的库有哪些。分别为:pandas\numpy\statsmodels\patsy。如果没有安装这些库是无法运行代码的 ,因此需要提前安装好这几个库。安装方法我在基础篇的第一章已经写有,可以进行参考:https://blog.csdn.net/Deng333333555/article/details/125092526?spm=1001.2014.3001.5501

然后便可以导入库和所要处理的数据了。

import pandas as pd
import numpy as np
import statsmodels.api as sm
from patsy import dmatrices
data=pd.read_excel(r'D:\杂货\编码数据.xlsx',sheet_name='编码数据')

展示以下我所导入的数据的样式:

我准备的excel表格的数据比较多,在python中输出出来大概就是这个样子,至于这些数字是什么含义不用过多理会,这并不影响本篇方法的介绍。

2.2 编写代码

2.2.1 相关分析

首先介绍最简单的一个数据指标:相关系数

代码如下:

v=data['Q1'].corr(data['Q2'])#相关系数(求某两个变量的相关系数)
print(v)
v=data.corr()#求所有变量之间的相关系数
print(v)

前者是指定求某两个变量间的相关系数,而后者是直接接计算出所有变量的相关系数。

输出结果如下:

前者:

后者:

2.2.2 一元线性回归分析

代码如下:

x=np.array(data['Q1'])#一元线性回归分析
y=np.array(data['Q2'])
X=sm.add_constant(x)#向x左侧添加截距列x0=[1,……,1]
model=sm.OLS(y,X)#建立最小二乘估计
fit=model.fit()#拟合模型
print(fit.summary())

该方法是通过矩阵的形式进行运算的,首先将要输入的数据x,y转换为矩阵的形式,然后再给自变量x增加一列截距列,形成X矩阵,再进行最小二乘估计,然后拟合结果。

矩阵形式:

输出结果如下:

2.2.3 多元线性回归分析

vars=['Q1','Q2','Q6','Q7']#多元线性回归分析
df=data[vars]#将输入的数据转换为矩阵(数组)形式
y,X=dmatrices('Q1~Q2+Q6+Q7',data=df,return_type='dataframe')
model=sm.OLS(y,X)
fit=model.fit()
print(fit.summary())

多元的代码的编写形式与一元的编写形式实质上差别不大,不同的地方在于第三行代码,其形式为 y,X=dmatrices('Q1~Q2+Q6+Q7',data=df,return_type='dataframe'),而该行代码的形式也是固定的,括号中的'Q1~Q2+Q6+Q7'这部分可根据个人想要模拟的方程形式编写,Q1为因变量,Q2,Q6,Q7……等部分为自变量,个数不限;data=df部分是将转换好的矩阵(数组)赋值给data;而return_type='dataframe'部分可以直接使用,一般不需要更改。

model=sm.OLS(y,X)进行最小二乘估计,fit=model.fit()进行模型的拟合,最后输出的fit.summary()即我们所需要的表格。

输出结果如下:

补充:

在此附上关于多元回归模型的一些内容,可帮助理解矩阵形式的回归模型。(摘自:《计量经济学基础》张晓峒)

2.2.4 广义线性回归分析

广义的线性回归分析包括四种模型,分别为:正态分布拟合;二项分布拟合;泊松分布拟合;伽马分布拟合。

本人常用二项分布,因此本篇以二项分布为例进行介绍。

代码如下:

vars2=['Q1','Q2']#广义线性回归分析
vars1=['Q6','Q7','Q8','Q9']
glm_binom=sm.GLM(data[vars2],data[vars1],family=sm.families.Binomial())
res=glm_binom.fit()
print(res.summary())

需要注意的是:若在广义线性回归分析中的vars2的数据换成0-1形式的,则其结果与logistic回归分析的结果一致,即可以说0-1形式的因变量的广义线性回归为逻辑回归。

输出结果如下:

2.2.5 logistic回归分析

代码如下:

vars1=['Q6','Q7','Q8','Q9']
logit_mod=sm.Logit(data['Q13|3'],data[vars1])#logistic回归分析,注意:data['Q13|3']的位置里的数据必须是0-1形式!!!
logit_res=logit_mod.fit(disp=0)
print(logit_res.summary())

logistic回归的代码的编写形式与前面几个回归差别不大,理解起来不难,就不再重复讲述。但需要注意的是,在使用逻辑回归时,sm.Logit(data['Q13|3'],data[vars1])中的data['Q13|3']的数据必须为0-1形式,亦可说必须为虚拟变量的形式,否则程序会报错。这是逻辑回归本身的含义,具体可自行查找逻辑回归的资料学习。

输出结果如下:

三、代码集合

import pandas as pd
import numpy as np
import statsmodels.api as sm
from patsy import dmatrices
data=pd.read_excel(r'D:\杂货\编码数据.xlsx',sheet_name='编码数据')
pd.set_option('display.max_columns',1000)
pd.set_option("display.width",1000)
pd.set_option('display.max_colwidth',1000)
pd.set_option('display.max_rows',1000)
print(data)v=data['Q1'].corr(data['Q2'])#相关系数
print(v)x=np.array(data['Q1'])#一元线性回归分析
y=np.array(data['Q2'])
X=sm.add_constant(x)#向x左侧添加截距列x0=[1,……,1]
model=sm.OLS(y,X)#建立最小二乘估计
fit=model.fit()#拟合模型
print(fit.summary())vars=['Q1','Q2','Q6','Q7']#多元线性回归分析
df=data[vars]
y,X=dmatrices('Q1~Q2+Q6+Q7',data=df,return_type='dataframe')
model=sm.OLS(y,X)
fit=model.fit()
print(fit.summary())vars2=['Q1','Q2']#广义线性回归分析
vars1=['Q6','Q7','Q8','Q9']
glm_binom=sm.GLM(data[vars2],data[vars1],family=sm.families.Binomial())
res=glm_binom.fit()
print(res.summary())logit_mod=sm.Logit(data['Q13|3'],data[vars1])#logistic回归分析,注意:data['Q13|3']的位置里的数据必须是0-1形式!!!
logit_res=logit_mod.fit(disp=0)
print(logit_res.summary())
#若在广义线性回归分析中的vars2的数据换成0-1形式的,则其结果与logistic回归分析的结果一致。

【Python数据分析】实践编写篇2:用Python进行回归分析与相关分析相关推荐

  1. python数据分析相关论文_菜鸟学Python|数据分析精华文章大集合

    原标题:菜鸟学Python|数据分析精华文章大集合 这是菜鸟学Python的第123篇原创文章 Python的数据分析是我比较喜欢的一个方向,因为可以探索数据里面的秘密,加上可视乎会非常漂亮,但是里面 ...

  2. Python遥感图像处理应用篇(五):python如何使用numpy对遥感图像做卷积运算

    本篇接着上一篇(Python遥感图像处理应用篇(四):python如何使用numpy读取遥感图像光谱值)继续深入,对遥感图像做卷积运算处理 1.基本思路 1.1 设置卷积核 这里就用3*3大小的卷积核 ...

  3. base环境卸载python_20小时快速学习python数据分析实践1——相关软件一系列安装和基本操作熟悉(第0-1h)...

    TED演讲"First 20 Hours-How to Learn Anything"中演讲者将快速学习一项新技能分成四个步骤--解析技能.掌握足够多的知识并且自我矫正.清楚学习中 ...

  4. python数据分析入门12篇

    #第  001 期# 现在是一个信息大爆炸的时代,其实网上的教程特别多,多大大家不知道哪些应该去阅读,哪些应该舍弃. 原来是准备自己写一个系列的python小白入门系列的教程,后来发现网上这方面的教程 ...

  5. Python数据分析实践项目 教育平台的线上课程智能推荐

    嗨喽! 大家好,我是"流水不争先,争的是滔滔不绝"的翀,欢迎大家来交流学习,一起入坑数据分析,希望我们一起好好学习,天天向上,目前在社会毒打中~~ 文章目录 摘要 关键词:数据分析 ...

  6. python数据分析与挖掘实战pdf_《Python数据分析与挖掘实战》PDF+完整源码

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 本书共15章,分两个部分:基础篇.实战篇.基础篇介绍了数据挖掘的基本原理,实战篇介绍了一个个真实案例,通过对案例深入浅出的剖析,使读者在不知不觉中通过案例 ...

  7. 从零开始学python数据分析-【01】从零开始学Python—数据分析与挖掘概述

    马云曾说"中国正迎来从IT时代到DT时代的变革",DT就是大数据时代.数据已成为企业的核心资产和宝贵资源,企业愈加重视和善加利用数据分析与挖掘技术. 1.1什么是数据分析与挖掘 数 ...

  8. python数据分析与可视化【一】python基础实例

    用python做数据分析与可视化(一) python编程基础 这一块前面我写过博客,奉上链接:python基础 这篇就来看看几个小实例 后面有python很基础的知识点和例子 后面数据分析能用上 下一 ...

  9. python数据分析与基础实战_《python数据分析与挖掘实战》基础概念

    数据建模.png 数据挖掘的基本任务:利用分类与预测.聚类分析.关联规则.时序模式.偏差检测.智能推荐等方法,帮助企业提取数据中蕴含的商业价值,提高企业竞争力. 数据探索:异常值分析.缺失值分析.相关 ...

  10. python数据分析第二讲_七月在线 Python数据分析 第二课 Numpy

    本人有一丢丢编程基础,特此学习七月在线课程--Python 数据分析.本文记录了学习第二课Numpy的一些感受和心得. 第二讲的内容包括Numpy, ndarray, ndarray的取值赋值与切片. ...

最新文章

  1. pluto实现分析(7)
  2. c语言常用绘图软件,大佬们,小菜鸟想问一问用vc编译器做简易画图软件
  3. python兼职 在家工作-在家兼职的人或者是自由职业的人都在做什么?
  4. java中的System.out.print()与System.out.println()的区别
  5. ajax头文件报错,AJAX的CSRF保护
  6. 【MM模块】 Goods Receipt 收货 1
  7. html中select标签刷新后不回到默认值而是保持之前选择值
  8. 华北电力大学的计算机类专业排名,2018年华北电力大学王牌专业排行榜,考生和家长们都好好看看!...
  9. UML之用例图(use case)箭头方向
  10. python怎么显示分数_python分数怎么表示
  11. NotImplementedError
  12. html 画 斜线表头,HTML 斜线 表头
  13. kubernetes 开发必须要知道的知识点—— API Group
  14. 企业微信登录报错:应用程序无法正常启动(0xc0000142);Win10应用程序无法正常启动0xc0000142错误的解决方法
  15. cron 每隔3天_crontab实现每隔多少天执行一次脚本的两种方法
  16. python3d_Power BI将超越python和D3,成为数据可视化的福音、定性数据分析的未来?...
  17. Largenbsp;Scalenbsp;Dist…
  18. Java架构师成长之道之Java架构师技术栈
  19. ab压力测试 及结果分析
  20. SAP BAPI_ACC_DOCUMENT_POST函数预制凭证失败报错--会计科目xxxxx 在会计科目表xxx 中没有定义

热门文章

  1. java信徒齐(七)步走
  2. html dom ready,【js】实现DOMReady
  3. 使用CreateJS制作动画
  4. 鸿蒙系统兼容微软,效仿华为鸿蒙系统!微软放大招:新版Win10系统兼容安卓应用...
  5. QCC514x-QCC304x(headset)系列(实战篇)之3.2 如何使用按键开机和关机
  6. 巨量算数data解密
  7. SecureCRT上传文件到服务器 CentOS举例
  8. 开淘宝店被骗,刷信誉被骗
  9. 点燃你温暖我 爱心 源码
  10. hyper graph 超图