目录

  • 1.参数估计
    • 1.1 点估计
    • 1.2 区间估计
      • 1.2.1 区间估计概述
      • 1.2.2 区间估计的方法
    • 1.3 进行区间估计的Python函数
  • 2. 案例分析
  • 3. 假设检验
    • 3.1 假设检验概述
    • 3.2 两类错误
    • 3.3 显著性水平与p值
    • 3.4 确定小概率事件
  • 4. t检验
    • 4.1 单样本t检验
    • 4.2 独立样本t检验
    • 4.3 配对样本t检验

推断统计的工作主要包含两类:参数估计(Parameter Estimation)假设检验(Hypothesis)

1.参数估计

参数估计通常有点估计(Point Estimate)区间估计(Interval Estimation) 两种形式。

1.1 点估计

点估计是用一个具体的值来估计一个总体的未知参数,也叫定值估计。能直接告诉我们未知参数的估计值是多少。但是样本毕竟只是总体的一部分,捕捉的信息终究有局限。因此我们使用样本数据估计出的结果不可避免地回有一定的偏差。
相比于其它中心指标,一般使用样本均值去估计总体均值得到的结果更为准确。
点估计的方法之一是矩估计法(Moment Estimation)
一个变量X的k阶矩即是X的k次方的均值,数学表达式为E(Xk)\displaystyle E(X^k)E(Xk)。而总体矩就是我们所研究的变量的矩。样本矩就是总体矩的估计值。
如用一阶样本矩 x‾\displaystyle \overline {x}x 估计 总体一阶矩(均值)u:

u^=x‾=x1+x2+⋯+xnn\displaystyle \hat{u}= \overline{x}= \frac{x_1+x_2+\cdots+x_n}{n}u^=x=nx1​+x2​+⋯+xn​​

其中,x1,x2,…,xn是抽得的一组样本。
一般来说,样本容量n较大时才能保证矩估计结果的优良性。


1.2 区间估计

1.2.1 区间估计概述

区间估计考虑到了估计存在的误差,因而不是使用一个具体的值,而是使用两个数值所构成的区间来估计一个未知参数。这样估计结果包含真实值的概率增加了,但是缺点是没有直观的数值。

区间估计用一个区间范围来估计参数的取值范围,得打的结果为置信区间(Confidence Interval)。区间估计的可信度称为置信度置信水平(Confidence Level),一般用1-α表示。(α的取值大小由实际问题决定,经常取1%,5%,10%),即P(θ1≤θ≤θ2)=1−α\displaystyle P (\theta_1 \leq \theta \leq \theta_2)=1-αP(θ1​≤θ≤θ2​)=1−α。我们称区间[θ1,θ2]\displaystyle \left[\theta_1 , \theta_2\right][θ1​,θ2​]是参数θ\displaystyle \thetaθ置信度为 1−α\displaystyle 1-\alpha1−α 的置信区间。


1.2.2 区间估计的方法

要进行区间估计,一般要先对参数进行点估计,得到点估计值,然后用该点估计的值加减 误差幅度(Margin of Error)置信系数(Confidence Coefficent) 的乘积而得到两个取值,则是置信区间的两个端点。
举个栗子:

假设一个总体服从正态分布N(u,σ2)\displaystyle N(u,\sigma^2)N(u,σ2),x1,x2,…,xn是从该总体

中抽得的一组样本。设x‾\displaystyle \overline xx是样本均值,s2是样本方差。总体均值u的

区间估计分为方差已知和方差未知这两种情况:

  1. 当总体方差σ2\displaystyle \sigma^2σ2已知时,我们可以构建如下指标:

x‾−uσ/n\displaystyle \frac{\overline x-u}{\sigma/\sqrt n}σ/n​x−u​

其中n是样本量,σ/n\displaystyle \sigma/\sqrt nσ/n​是误差幅度。该指标服从标准正态分布,即N(0,1)\displaystyle N(0,1)N(0,1),且区间估计的置信度为(1-α)。接下来,我们可以建立这个等式:

∣x‾−uσ/n∣=Zα/2\displaystyle \left|\frac{\overline x-u}{\sigma/\sqrt n }\right|=Z_{\alpha/2}∣∣∣∣​σ/n​x−u​∣∣∣∣​=Zα/2​

(这里不谈是怎么来的)。
其中Zα/2\displaystyle Z_{\alpha/2}Zα/2​是标准正态分布的第100×(1-α/2)分位数,

即F(z≤zα/2)=1−α/2\displaystyle F(z\leq z_{\alpha/2})=1-\alpha/2F(z≤zα/2​)=1−α/2。

关于均值u,置信度为1-α的双侧置信区间为:

[x‾−σnZα/2,x‾+σnZα/2]\left[\displaystyle \overline x -\frac{\sigma}{\sqrt n}Z_{\alpha/2},\overline x +\frac{\sigma}{\sqrt n}Z_{\alpha/2}\right][x−n​σ​Zα/2​,x+n​σ​Zα/2​]

  1. 一般情况下,总体方差都是未知的。当总体方差σ2\sigma^2σ2未知时,我们可以构建如下统计量:

    x‾−us/n\displaystyle \frac{\overline x-u}{s/\sqrt n}s/n​x−u​
    该指标服从自由度为(n-1)的学生t分布,即t(n-1)。假设区间估计的置信度为1-α,那么我们可以建立下面这个等式来求解置信区间的两个端点。
    ∣x‾−us/n∣=tα/2(n−1)\displaystyle \left|\frac{\overline x-u}{s/\sqrt{n}}\right|=t_{\alpha/2}(n-1)∣∣∣∣​s/n​x−u​∣∣∣∣​=tα/2​(n−1)
    其中tα/2(n−1)\displaystyle t_{\alpha/2}(n-1)tα/2​(n−1)表示自由度为n-1的t分布的第100×(1−α/2)\displaystyle 100×(1-\alpha/2)100×(1−α/2)百分位数,关于均值为u,置信度为1-α的双侧置信区间为:

    [x‾−sntα/2(n−1),x‾+sntα/2(n−1)]\displaystyle \left[\overline x-\frac {s}{\sqrt n}t_{\alpha/2}(n-1), \overline x+\frac {s}{\sqrt n}t_{\alpha/2}(n-1)\right][x−n​s​tα/2​(n−1),x+n​s​tα/2​(n−1)]


1.3 进行区间估计的Python函数

Python中的stats模块中的t类的interval()函数用于在总体方差未知时进行区间估计。其函数语法为:

interval(alpha,df,loc,scale)
  • alpha为置信水平
  • df是检验量的自由度
  • loc为样本均值
  • scale为标准差

假设我们要估计一批产品的重量的期望,抽样了十个进行称重得到重量为为:
10.1, 10, 9.8, 10.5, 9.7, 10.1, 9.9, 10.2, 10.3, 9.9
假设所称出物体重量服从正态分布,我们可以用interval()求置信度为0.95的置信区间:

from scipy import stats
import numpy as npx = [10.1, 10, 9.8, 10.5, 9.7, 10.1, 9.9, 10.2, 10.3, 9.9]
# np.mean(x)  #求x均值
# stats.sem(x) # 求样本的标准误
# 样本均值服从t分布,样本均值的标准差为标准误
# 在区间估计时,用标准误来表示样本均值的标准差stats.t.interval(0.95, len(x)-1, np.mean(x),stats.sem(x))

结果如下:


2. 案例分析

沪深300(399300.SZ)收益率均值的参数估计
以近一年数据为样本计算

# 调取数据
import numpy as np
import tushare as ts
import pandas as pd
token = 'Your Token'   # 输入你的接口密匙,获取方式及相关权限见Tushare官网。
pro = ts.pro_api(token)
df = pro.index_daily(ts_code='399300.SZ')
df['trade_date'] = pd.to_datetime(df['trade_date'])
df.set_index(['trade_date'], inplace=True)  # 将日期列作为行索引
df = df.sort_index() # 提取沪深300的收益率序列
Retindex=df.pct_chg['2020']# 绘制沪深300收益率的直方图
plt.hist(Retindex)
Retindex.hist()

结果如图所示:

from scipy import stats
import matplotlib.pyplot as plt# 求沪深300收益率的均值
mu = Retindex.mean()# 求沪深300收益率的标准差
sigma = Retindex.std()# 在直方图上添加正态分布曲线
fig = plt.figure()
ax1 = ax1 = fig.add_subplot(111)
ax1.plot(np.arange(-6, 6.02, 0.02), stats.norm.pdf(np.arange(-6, 6.02, 0.02), mu, sigma), 'r')
ax2 = ax1.twinx()
ax2.hist(Retindex)
plt.show()

结果如图:

stats.t.interval(0.95, len(Retindex)-1, mu, stats.sem(Retindex))

结果如下:

(备注:这里序列中的收益率如-0.02是以-2来表示的,0.032则以3.2表示,而不是0.032。所以得到的置信区间结果不能读错了,-0.07意思不是跌了七个点。)


3. 假设检验

假设检验(Hypothesis Test)是推断统计的另一种重要的方法。

3.1 假设检验概述

参数估计的主要任务是猜测参数的取值,而假设检验的着重点在于检验参数的取值是否等于某个目标值。
假设检验一般有两个隐含的思想:

  • 小概率事件思想 。即小概率事件在一次试验中是不可能发生的,如果在我们的假设下出现了一个小概率事件,则认为我们的假设是错误的。
  • 反证法思想 。反证法思想为先假设我们提出的假设是正确的,然后在该条件下检验观测到的事件是否是小概率事件。如果是则可以否定我们的假设。否则,就无法否定。
    假设检验的基本步骤如下:
    (1) 先根据实际问题的要求提出一个论断,称之为原假设零假设(Null Hypothesis) ,记为H0。同时提出一个与之互为反命题的备择假设(Alternative Hypothesis) ,记为H1
    (2) 然后在H0正确的条件下,求出样本数据出现的频率,看我们手中的样本是不是小概率事件。
    (3) 最后如果样本是小概率事件,那么就认为原假设是错误的。在统计学上,我们称之为拒绝原假设。否则我们不能拒绝H0的决策。

对于原假设和备择假设有如下的选择原则:

  • 原假设应该是受保护的,不应该轻易被拒绝。
  • 备择假设是检验者所希望的结果。
  • 等号永远出现在原假设中。

3.2 两类错误

  • 第一类错误(Type I Error):拒绝了本来正确的原假设(弃真)。
    犯第一类错误的概率记为α。
  • 第二类错误(Type II Error):没有拒绝原本是错误的原假设(取伪)。
    犯第二类错误的概率记为β。
  • 假设检验中这两类错误都难以避免。我们无法同时控制两个错误发生的概率,如果降低想要α,β就会被提高。我们通常需要权衡这两种错误,一般我们选择控制α不限制β

3.3 显著性水平与p值

为控制α,我们往往将α值固定,同时使得:

P(拒绝H0∣H0为真)≤α\displaystyle P(拒绝H_0|H_0为真)\leq \alphaP(拒绝H0​∣H0​为真)≤α

在统计学上,我们称α\displaystyle \alphaα为显著性水平(Significance Level)。常见的显著性水平有0.1, 0.05, 0.025。

为了确定一个事件是不是小概率事件,我们需要了解其发生概率。但是对于连续型随机变量,其取某个具体值的概率为0,我们无法计算。所以就有了使用p值的方法。
我们算出假设在原假设正确条件下,和当前样本中一样极端或更极端的情况出现的概率,这个概率就是p值(p-value)。


3.4 确定小概率事件

判断一个事件是否是小概率事件的一个基本原则:当p值小于α时,我们认为样本为小概率事件。
而对于p指与α的比较,可采取两种方法:临界值检验法(Critical Value Approach)和显著性检验法(p-value approch)。

  • 临界值检验法:
    使用临界值检验法首先要使用样本数据构建一个用于检验的统计量,这个统计量往往是总体参数的点估计量。然后我们需要确定能够拒绝原假设的最大p值。根据小概率事件的判断原则,这个最大值即是α。然后根据α和统计量所服从的概率分布可以求得临界值。求得临界值后用统计量和与该临界值进行比较,如果统计量与临界值的偏差大于该临界值与原假设的偏差,那么当前样本就与临界值一样极端,其p值也就会小于α。如此以来我们就认为当前样本是小概率事件,应该拒绝原假设。
  • 显著性检验法
    显著性检验与临界值检验法较为类似,同样需要先构建一个用于检验的统计量,与临界值方法不同的是,我们直接根据原假设和统计量的概率分布求解其p值,然后将p值与α进行比较,从而拒绝原假设。

4. t检验

根据构建统计量服从的概率分布,我们所用的参数检验可以分为z检验、t检验、F检验等。其中,t检验所使用的统计量服从t分布,常常用于检验标准差σ\displaystyle \sigmaσ未知的、服从正态分布的总体的均值。
常见的t检验主要有单样本t检验(One Sample t Test)配对样本t检验(Paired Sample t Test)独立样本t检验(Independent Sample Test)

  • 单样本t检验是检验单个变量的均值与目标值之间是否存在差异。如果总体均值已知,样本均值与总体均值之间差异的显著性检验属于单样本t检验。

  • 独立样本t检验用于检验两组来自独立总体的样本 其独立总体的均值是否一样。如果两组样本彼此不独立,则应该使用配对样本t检验。

  • 配对样本t检验用于检验两个相关的样本(配对样本)是否来自具有相同均值的总体。


4.1 单样本t检验

比较:总体均值u与指定检验值u0是否存在显著性差异。
原假设: H0:u = u0
备择假设:H1:u ≠ u0
前提:总体服从正态分布N(u,σ2)\displaystyle N(u,\sigma^2 )N(u,σ2),u为均值,σ2\displaystyle \sigma^2σ2为总体方差。
如果样本容量为n,样本均值为X‾\displaystyle \overline{X}X,在原假设成立的条件下,我们构造以下统计量:

t=X‾−u0s/n\displaystyle t=\frac{\overline X-u_0}{s/\sqrt n}t=s/n​X−u0​​~t(n−1)\displaystyle t(n-1)t(n−1)

其中,s=1n−1∑i=1n(xi−x‾)2\displaystyle s=\sqrt{\frac{1}{n-1}\sum_{i=1}^n(x_i-\overline x)^2}s=n−11​i=1∑n​(xi​−x)2​, 为样本标准差。
将样本均值与样本标准差代入该统计量,就可以得到该统计量的值,然后就可以根据t分布的分布函数计算出p值并与显著性水平α比较,或是与显著性水平α下的临界值进行比较。

# 接着使用上边代码调取的数据
# 用单样本t检验2020年沪深300的收益率均值是否为0
stats.ttest_1samp(Retindex,0) #注意躲坑:1samp的首个字符不是字母l,是数字1

结果:

这里p值为0.2355742>0.05,所以在5%的置信水平下不能拒绝原假设。进而,可以推断2020年沪深300收益率均值为0。

4.2 独立样本t检验

用独立样本t检验来检验上证指数和深证成指2020年的收益率是否相等。

# 调取数据
# 上证指数
df1 = pro.index_daily(ts_code='000001.SH')
df1['trade_date'] = pd.to_datetime(df1['trade_date'])
df1.set_index(['trade_date'], inplace=True)  # 将日期列作为行索引
df1 = df1.sort_index() # 深证成指
df2 = pro.index_daily(ts_code='399001.SZ')
df2['trade_date'] = pd.to_datetime(df2['trade_date'])
df2.set_index(['trade_date'], inplace=True)  # 将日期列作为行索引
df2 = df2.sort_index() # 提取数据
SHRet = df1['2020'].pct_chg
SZRet = df2['2020'].pct_chg
# 输入两个变量
stats.ttest_ind(SHRet,SZRet)

结果如下:

p值为0.52382>0.05,所以在5%的显著性水平下我们不能拒绝原假设。进而可以推断2020年上证指数与深证成指收益率均值相等。


4.3 配对样本t检验

独立样本t检验假设两者是相互独立的,对于上证指数与深证成指的收益率,这个假设是很值得怀疑的。所以我们再用配对样本t检验两者均值是否相等。

stats.ttest_rel(SHRet,SZRet)

结果如下:

这次的p值为0.040551137<0.05,所以在5%的显著性水平下,我们可以拒绝原假设。即2020年上证指数与深证成指的收益率并不相等。


推断统计python化(参数估计,假设检验与 t检验)相关推荐

  1. 概率分析方法与推断统计(来自我写的python书)

    在数据分析统计的场景里,常用的方法除了描述性统计方法外,还有推断统计方法,如果再从工作性质上来划分,推断统计包含了参数估计和假设验证这两方面的内容.而推断统计用到了很多概率统计方法,所以本小节在介绍推 ...

  2. python做线性回归统计推断提取参数_概率分析方法与推断统计(来自我写的python书)...

    在数据分析统计的场景里,常用的方法除了描述性统计方法外,还有推断统计方法,如果再从工作性质上来划分,推断统计包含了参数估计和假设验证这两方面的内容.而推断统计用到了很多概率统计方法,所以本小节在介绍推 ...

  3. 推断统计:参数估计和假设检验

    目录   1.总体.个体.样本和样本容量    1)总体.个体.样本和样本容量的概念    2)本文章使用的相关python库   2.推断统计的概念    1)推断统计的概念    2)为什么要进行 ...

  4. 推断统计--假设检验

    推断统计是研究如何利用样本数据来推断总体特征的统计方法.包含参数估计和假设检验. 参数估计即利用样本信息推断总体特征,也就是根据样本数据来估计变量的概率分布,或者是总体分布所包含的未知参数的过程. 举 ...

  5. 统计系列(三)利用Python进行参数估计

    统计系列(三)利用Python进行参数估计 点估计 样本均值估计为总体均值,样本比例估计为总体比例. import numpy as npx = [1, 1, 0, 1, 0, 0, 1, 0, 1, ...

  6. 《大数据分析原理与实践》一一2.3 推断统计

    2.3 推断统计 推断统计是研究如何利用样本数据来推断总体特征的统计方法,其目的是利用问题的基本假定及包含在观测数据中的信息,做出尽量精确和可靠的结论.基本特征是其依据的条件中包含带随机性的观测数据. ...

  7. 文章字数统计(python)

    文章字数统计(python) 思路: 导入文章 把文章转换成列表 用set() 函数去重后,变为一个去重了的list 再生成一个对应的列表为times 列表 用文章列表和去重后的列表做一个判定,出现的 ...

  8. 计算统计-Chap6 推断统计的蒙特卡罗方法 (3)蒙特卡罗方法

    很多时候,我们不清楚统计量的分布,或不确定对它所作的假设是否合理.蒙特卡罗模拟可以处理这些情况,它的应用包括: 1)当待检测统计量(the test statistics)从未知时,进行推断 2)当参 ...

  9. python乘法表代码注释_Python统计python文件中代码,注释及空白对应的行数示例【测试可用】...

    本文实例讲述了Python实现统计python文件中代码,注释及空白对应的行数.分享给大家供大家参考,具体如下: 其实代码和空白行很好统计,难点是注释行 python中的注释分为以#开头的单行注释 或 ...

最新文章

  1. OSChina 周日乱弹 ——科普逗逼行为准则
  2. 手持红外温度计AR802B
  3. oracle 12c undo,Oracle 12C新特性-临时UNDO段(Temporary Undo Segments) | 信春哥,系统稳,闭眼上线不回滚!...
  4. 2003-can't connect to MYSQL server on 'localhost'(10038)
  5. 海量数据处理相关算法及数据结构【转】
  6. vue中html没引入js文件,vue.js如何引入非模块化的js文件并调用里面的方法和类。...
  7. 软件配置管理(SCM)介绍
  8. python文件传输库,利用python库在局域网内传输文件的方法
  9. BZOJ 4199: [Noi2015]品酒大会/UOJ #131. 【NOI2015】品酒大会 后缀自动机 树形dp / 后缀数组 单调栈
  10. arukas.io免费搭建个人私有***方式
  11. python 超时退出程序_python – 如何在超时后中止multiprocessing.Pool中的任务?
  12. 最后防线:字节跳动HIDS分析
  13. 必须了解的待人处事小技巧
  14. 信号链(Signal Chain)芯片
  15. 机器学习算法优缺点_用于机器学习的优化算法的优缺点
  16. android+8g开机剩余,8G内存的iQOO开机只剩4G,Jovi没用,网友直言后悔了
  17. python office转pdf linux_python 如何将office文件转换为PDF
  18. openwrt的dns无法解析内网地址的问题解决方案
  19. 达梦dmrman dmap备份报[-7103]:创建命名管道失败
  20. 智慧校园管理系统全套源码 智慧学校源码(小程序端、电子班牌、人脸识别系统)

热门文章

  1. iOS从健康app中获取步数信息
  2. 【大唐杯学习超快速入门】5G技术原理仿真教学——5G网络协议架构
  3. 什么是百度特效搜索?百度搜索什么有特效?---黑洞
  4. 利用七参数求解坐标转换(C#简单快速实现)
  5. nginx 异常长连接快速断开
  6. 服务器密码以及用户名怎么修改
  7. 3DMax操作简单,建模小白的入手软件NO.1
  8. unity 为自己脚本增加材质编辑面板 MaterialEditor
  9. linux 硬盘坏道数据复制,linux修复磁盘坏道(本教程完全来自实例、实测,具体参数请根据个人情况修改2021.4.12)...
  10. linux门禁软件,千丁智能门禁app