当前位置:首页 > 教育培训 >

python方差分析(python求方差的怎么编写)

来源:原点资讯(www.yd166.com)时间:2023-04-26 11:59:13作者:YD166手机阅读>>

之前我们曾经讲过用Python做t检验,它用于分析一组数据与另一组数据或者总体均值之间的均值差异,从而判断它们是否来自于同一个总体。


我会分享大量关于网页抓取、数据分析与挖掘、机器学习还有可视化等方面的知识,欢迎感兴趣的同学关注我!


但是t检验有它的局限性,它无法应对多个因子变量以及因子变量有多个水平(大于2)的情况。这时,我们就需要使用方差分析了。

方差分析的目的是分析因子对反应变量有无显著影响,即因子的不同水平下反应变量(因变量)的均值是否有差异。

一些概念

在方差分析中,我们需要注意几个概念:

  1. 组内偏差平方和,即误差平方和,ESS:它反映了样本与其所处因子水平的组别均值的偏差,比如有三个班级ABC,小明是A班的学生,那么小明的成绩与A班成绩的均值之间的差异就是组内差异。
  2. 组间差异平方和,又称因子平方和,FSS:它反映了不同因子水平间的均值差异,比如上述的三个班级,A、B、C三个班级的均值之间的差异就叫组间差异。
  3. (总)离差平方和,TSS:组内差异与组间差异加起来,就是总的离差了。
  4. 组间均方差和组内均方差:方差除以自由度就是均方差。
  5. 我们的φ统计量就是组间均方差和组内均方差的均值,它符合F分布。φ统计量越大,就说明组间差异对于总离差的贡献越大,当超过了一定水平之后,我们就认为因子影响显著,即不同水平间存在显著差异。
基本步骤
  1. 根据感兴趣的因素的不同取值,将反应变量分成M个组;
  2. 提出原假设H0
  3. 因子对于反应变量没有影响;备择假设H1
  4. 因子对观测变量有显著影响;
  5. 求出样本数据中每组的样本均值即全样本均值,算出组内均方差MSF和组间均方差MSE;
  6. 构建φ统计量并计算φ值:Φ=MSF/MSE ∼ F(M−1,N−M)
  7. 由显著性水平α(通常取0.025、0.05、0.1等)查F分布表的林价值来判断是接受零假设还是拒绝零假设。
Python实现1. 单因素方差分析

我们先获取数据,用tushare获取18年最后一个交易日的行情数据,然后过滤一下,仅保留软件服务、化工原料和证券三个行业的股票行情。

import tushare as ts import statsmodels.stats.anova as anova from statsmodels.formula.api import ols import pandas as pd pro = ts.pro_api() df1 = pro.daily(trade_date='20181228') df2 = pro.stock_basic(market='SSE') df = pd.merge(df1, df2, on='ts_code', how='inner') df = df.query("industry in ('软件服务', '化工原料', '证券')") df.head()

python方差分析,python求方差的怎么编写(1)

然后我们进行方差分析,看一看这三个行业的股票表现是否一致。

model = ols('pct_chg ~ C(industry)', data=df).fit() anova.anova_lm(model)

python方差分析,python求方差的怎么编写(2)

可以看到,p值远小于0.01。因此,在0.01的显著性水平下,我们应该拒绝原假设,即这三个行业的股票在2018年最后一个交易日的收益率是不同的。

2. 多因素方差分析

多因素方差分析的实现方法也基本一致,我们来看一下。

df1 = pro.daily(trade_date='20181228') df2 = pro.stock_basic(market='SSE') df = pd.merge(df1, df2, on='ts_code', how='inner') df = df.query("industry in ('软件服务', '化工原料', '证券')") df = df.query("area in ('广东', '浙江', '江苏')") # 方差分析 model = ols('pct_chg ~ C(industry) C(area)', data=df).fit() anova.anova_lm(model)

python方差分析,python求方差的怎么编写(3)

我们增加了一个地区维度,并且只保留了其中三个省份的数据。然后我们看到,行业对于收益率的影响依然显著,而不同地区的收益率之间的差异不足以我们拒绝原假设。

3. 析因方差分析

析因方差分析与多因素方差分析很像,不过要多一个因子的乘项。

df1 = pro.daily(trade_date='20181228') df2 = pro.stock_basic(market='SSE') df = pd.merge(df1, df2, on='ts_code', how='inner') df = df.query("industry in ('软件服务', '化工原料', '证券')") # 方差分析 model = ols('pct_chg ~ C(industry) * C(area)', data=df).fit() anova.anova_lm(model)

python方差分析,python求方差的怎么编写(4)

我们看到,不管是行业还是地区,它们的影响都很显著,但是他们的乘项的影响并不显著,也就是说他们之间不存在明显的交互作用。

以上就是使用Python进行方差分析的过程,你学会了吗?

栏目热文

python计算方差中位数(python计算平均数后计算标准方差)

python计算方差中位数(python计算平均数后计算标准方差)

导读:NumPy是Python的基础,更是数据科学的通用语言。本文简单介绍NumPy模块的两个基本对象ndarray、u...

2023-04-26 12:17:20查看全文 >>

怎样用python求标准差(python求标准差用计算公式)

怎样用python求标准差(python求标准差用计算公式)

最近在做股票分析的时候,需要用到 布林带 。以 宁德时代 为例,图片上的圈圈的部分就是布林带。为了方便查看,我用圈圈代替...

2023-04-26 11:45:43查看全文 >>

python怎么求协方差(python官网计算方差)

python怎么求协方差(python官网计算方差)

▌概述 本文主要介绍一种降维方法,PCA(Principal Component Analysis,主成分分析)。降维致...

2023-04-26 11:55:57查看全文 >>

python求方差初级代码(python按步骤计算方差)

python求方差初级代码(python按步骤计算方差)

方差:方差是衡量一组数据离散程度的统计量。统计学中的方差(样本方差)是每个样本值与全体样本值的均值之差的平方的均值。概率...

2023-04-26 12:23:31查看全文 >>

python求均方差(python求均值方差标准差)

python求均方差(python求均值方差标准差)

标题 | python-is-cool作者 | chiphuyen原文 | https://github.com/chi...

2023-04-26 11:53:56查看全文 >>

使用python写一个函数求方差(python官网计算方差)

使用python写一个函数求方差(python官网计算方差)

标准差:标准差(standard deviation,SD),又称均方差,是衡量一组数据离散程度的统计量,其值为方差的算...

2023-04-26 11:52:28查看全文 >>

python计算1到100的和(python计算1到100的和怎么运行)

python计算1到100的和(python计算1到100的和怎么运行)

循环是编程语言中经常使用的功能。当你想要自动执行特定的重复性任务时,循环非常有用。Python 中有两种类型的循环:fo...

2023-04-26 11:55:54查看全文 >>

python计算方差和标准差的函数(python求标准差用计算公式)

python计算方差和标准差的函数(python求标准差用计算公式)

Numpy提供各种统计函数,用于数据统计分析。从数组中找出最小和最大元素函数numpy.amin()和numpy.ama...

2023-04-26 12:06:08查看全文 >>

一个人独自染发教程(黑豆染发不褪色的方法)

一个人独自染发教程(黑豆染发不褪色的方法)

居家染发神器。盖白吗?不盖我卖你干嘛呢?我回头我自己给自己找骂呢。回头卖出去一单骂我一单。染发剂,植物的染发剂,就这样一...

2023-04-26 11:55:16查看全文 >>

染黑头发产品推荐(三种发型不显老)

染黑头发产品推荐(三种发型不显老)

我是去年夏天(5月份)就用了一次,当时用的是11G和7P,因为头发颜色太黑,所以我先用了11G让头发变成有点黄又有点棕的...

2023-04-26 11:56:02查看全文 >>

文档排行