本次介绍:

方差分析:一个多分类分类变量与一个连续变量间的关系。

其中分类个数大于两个,分类变量也可以有多个。

当分类变量为多个时,对分类个数不做要求,即可以为二分分类变量。

一、数理统计技术

数理统计分为频率和贝叶斯两大学派。

描述性统计分析,描述性分析就是从总体数据中提炼变量的主要信息,即统计量。

描述性分析的难点在于对业务的了解和对数据的寻找。

统计推断和统计建模,建立解释变量与被解释变量之间可解释的、稳定的、最好是具有因果关系的表达式。

在模型运用时,将解释变量(自变量)带入表达式中,用于预测被解释变量(因变量)的值。

现阶段,我学习的就是统计推断与建模的知识...

二、方差分析

方差分析用于检验多个样本的均值是否有显著差异。

探索多于两个分类的分类变量与连续变量的关系。

比如说「浅谈数据分析岗」中薪水与教育程度之间的关系,教育程度为一个多分类的分类变量。

01 单因素方差分析

单因素方差分析的前提条件:

①变量服从正态分布(薪水符合)。

②观测之间独立(教育程度符合)。

③需验证组间的方差是否相同,即方差齐性检验。

组间误差与组内误差、组间变异与组内变异、组间均方与组内均方都是方差分析中的衡量标准。

如果组间均方明显大于组内均方,则说明教育程度对薪水的影响显著。

那么需要大多少才能确定结论呢?

这里组间均方与组内均方的比值是服从F分布,下面贴出F分布曲线图。

其中横坐标为F值,即组间均方与组内均方的比值。

当F值越大时,即组间均方越大、组内均方越小,说明组间的变异大。

并且对应的P值也越小(纵轴),便可以拒绝原假设(原假设为无差异)。

下面以「浅谈数据分析岗」中薪水与教育程度为例。

这里我们只是直观的看出薪水随学历的增长而增长,并没有实实在在的东西。

接下来就用数字来说话!!!

代码如下,需要清洗数据。

from scipy import stats

import pandas as pd

import pymysql

# 获取数据库数据

conn = pymysql.connect(host='localhost', user='root', password='774110919', port=3306, db='lagou_job', charset='utf8mb4')

cursor = conn.cursor()

sql = "select * from job"

df = pd.read_sql(sql, conn)

# 清洗数据,生成薪水列

dom = []

for i in df['job_salary']:

i = ((float(i.split('-')[0].replace('k', '').replace('K', '')) + float(i.split('-')[1].replace('k', '').replace('K', ''))) / 2) * 1000

dom.append(i)

df['salary'] = dom

# 去除无效列

data = df[df.job_education != '不限']

# 生成不同教育程度的薪水列表

edu = []

for i in ['大专', '本科', '硕士']:

edu.append(data[data['job_education'] == i]['salary'])

# 单因素方差分析

print(stats.f_oneway(*edu))

# 得到的结果

F_onewayResult(statistic=15.558365658927576, pvalue=3.0547055604132536e-07)

得出结果,F值为15.5,P值接近于0,所以拒绝原假设,即教育程度会显著影响薪水。

02 多因素方差分析

多因素方差分析检验多个分类变量与一个连续变量的关系。

除了考虑分类变量对连续变量的影响,还需要考虑分类变量间的交互效应。

这里由于我的数据满足不了本次操作,所以选择书中的数据。

即探讨信用卡消费与性别、教育程度的关系。

首先考虑无交互效应,代码如下。

import statsmodels.formula.api as smf

import statsmodels.api as sm

import pandas as pd

# 读取数据,skipinitialspace:忽略分隔符后的空白,dropna:对缺失的数据进行删除

df = pd.read_csv('creditcard_exp.csv', skipinitialspace=True)

df = df.dropna(how='any')

# smf:最小二乘法,构建线性回归模型,

ana = smf.ols('avg_exp ~ C(edu_class) + C(gender)', data=df).fit()

# anova_lm:多因素方差分析

print(sm.stats.anova_lm(ana))

输出结果。

可以看到教育程度的F值为31.57,P值趋近于0,拒绝原假设,即教育程度与平均支出有显著差异。

性别的F值为0.48,P值为0.48,无法拒绝原假设,即性别与平均支出无显著差异。

接下来考虑有交互效应,代码如下。

# 消除pandas输出省略号情况

pd.set_option('display.max_columns', 5)

# smf:最小二乘法,构建线性回归模型

anal = smf.ols('avg_exp ~ C(edu_class) + C(gender) + C(edu_class)*C(gender)', data=df).fit()

# anova_lm:多因素方差分析

print(sm.stats.anova_lm(anal))

输出结果。

这里可以看出,考虑交互效应后,与教育程度及性别对应的F值和P值都发生了微小的改变。

其中教育程度和性别的交互项对平均支出的影响也是显著的,F值为2.22,P值为0.09。

上面这个结论是书中所说的,那么显著性水平取的是0.1吗???

这算是我理解不了的一部分。

下面是带交互项的多元方差分析的回归系数,表格中所有数据都是以男性及研究生学历作为基准去比对。

# 生成数据总览

print(anal.summary())

输出结果。

可以看出第一种教育程度的女性较男性研究生,信用卡消费的影响较显著,P值为0.05。

原假设为无差异,拒绝原假设。

那么这里的显著性水平取的也是0.1吗???

第二种教育程度的女性较男性研究生,信用卡消费的影响显著,P值为0.001。

第三种缺失,没有参数估计。

三、总结

这里总结一下各个检验的原假设。

单样本t检验原假设:总体均值与假设的检验值不存在显著差异(无差异)。

双样本t检验原假设:两个样本均值(二分变量下的均值)不存在显著差异(无差异)。

方差分析原假设:多个样本均值(多分变量下的均值)不存在显著差异(无差异)。

说明原假设都是假设变量关系无显著差异。

python单因素方差分析_Python数据科学:方差分析相关推荐

  1. python 方差齐性检验_Python数据科学:方差分析

    之前已经介绍的变量分析: ①相关分析:一个连续变量与一个连续变量间的关系. ②双样本t检验:一个二分分类变量与一个连续变量间的关系. 本次介绍: 方差分析:一个多分类分类变量与一个连续变量间的关系. ...

  2. python分类变量相关性分析_Python数据科学:相关分析

    目前手上有两本书,一本<利用Python进行数据分析>,一本<Python数据科学>.app 对于学习什么东西,都有它的「道」和「术」.「道」即原理,「术」即技巧.dom 经过 ...

  3. python 桌面备忘录_Python数据科学备忘单

    python 桌面备忘录 The printable version of this cheat sheet 该备忘单的可打印版本 It's common when first learning Py ...

  4. python语音识别分析_python数据建模分析 - 语音识别

    Getting Started!首先,我们要知道语音的产生过程 voice.png 状态:由肺产生向外的气流,完全放松时声带张开,就是平时的呼吸.如果声带一张一合(振动)形成周期性的脉冲气流.这个脉冲 ...

  5. python 方差齐性检验_Python数据科学:正态分布与t检验

    昨天介绍了两连续变量的相关分析,今天来说说连续变量与分类变量(二分)之间的检验. 通俗的来讲,就是去发现变量间的关系. 连续变量数量为一个,分类变量数量为两个. 总体:包含所有研究个体的集合. 样本: ...

  6. 用python画统计图表_Python数据科学(九)- 使用Pandas绘制统计图表

    作者:许胜利 Python爱好者社区专栏作者 博客专栏:许胜利的博客专栏 1.信息可视化 因为人对图像信息的解析效率比文字更高,所以可视化可以使数据更为直观,便于理解,使决策变得高效,所以信息可视化就 ...

  7. python 数据挖掘图书_Python数据科学熊猫图书馆终极指南

    python 数据挖掘图书 Pandas (which is a portmanteau of "panel data") is one of the most important ...

  8. 支持向量机python人脸识别_Python 数据科学手册 5.7 支持向量机

    5.7 支持向量机 支持向量机(SVM)是一种特别强大且灵活的监督算法,用于分类和回归. 在本节中,我们将探索支持向量机背后的直觉,及其在分类问题中的应用. 我们以标准导入开始: %matplotli ...

  9. 基于MaxCompute分布式Python能力的大规模数据科学分析

    简介: 如何利用云上分布式 Python 加速数据科学. 如果你熟悉 numpy.pandas 或者 sklearn 这样的数据科学技术栈,同时又受限于平台的计算性能无法处理,本文介绍的 MaxCom ...

  10. python数据科学实践 常象宇_python数据科学

    Python语言拥有大量可用于存储.操作和洞察数据的程序库,已然成为深受数据科学研究人员推崇的工具.本书以IPython.NumPy.Pandas.Matplotlib和Scikit-Learn这5个 ...

最新文章

  1. ==和equals的浅析
  2. AWS推出深度学习容器,简化AI程序开发
  3. Zookeeper命令行操作(常用命令;客户端连接;查看znode路径;创建节点;获取znode数据,查看节点内容,设置节点内容,删除节点;监听znode事件;telnet连接zookeeper)
  4. 回顾-离开帝都半年了
  5. java url 传值乱码问题_java页面url传值中文乱码怎么办
  6. 深度学习-超参数和交叉验证
  7. LeetCode Lowest Common Ancestor of a Binary Search Tree (LCA最近公共祖先)
  8. 什么是JDBC,JDBC的主要功能是什么?
  9. 《给忙碌者的天体物理学》pdf、mobi、epub下载
  10. 使用CSS动画实现 时钟转动效果
  11. cad墙线打断lisp_[求助]很多相交线快速打断 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...
  12. Matlab中创建和使用表
  13. flex布局中 flex:1和flex:auto的区别
  14. debian 文件夹中文件大小_linux查看目录(文件夹)内容大小
  15. 转用P6SPY查看HIBERNATE生成的SQL
  16. 基于kingscada的自动绕线机工程,仿真绕线,硕子来回绕线形成线团自动运送到仓库
  17. 安装windows_build_tools一直处于still waiting for installer log file ...中
  18. node项目(一) koa脚手架的搭建
  19. 集成IE11、补丁至win7原版镜像
  20. 系统调试利器:挡板实战

热门文章

  1. 第1期:手把手教你制作网易邮箱注册页面
  2. 计算机格式按键在哪儿,键盘开关按键在哪里
  3. 机器学习笔记--模型评估之一:准确率与召回率,平均根误差(RMSE、平均绝对百分比误差(MAPE)
  4. SOLARIS SYSTEM COMMAND(个人整理笔记)
  5. 技术美术个人笔记(五)——体素距离场及体积雾
  6. 浅谈严格控制普通高等学校招生规模
  7. 罗盘时钟python代码_HTML 罗盘式时钟
  8. 怎么用PDF裁剪工具来裁剪PDF页面
  9. butter滤波器是iir吗_IIR Butterworth型模拟低通滤波器设计原理
  10. i.MX 8M Mini sai_low_power_audio