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

简介: 推断统计python化(参数估计,假设检验与 t检验)(上)

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

1.参数估计

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

1.1 点估计

点估计是用一个具体的值来估计一个总体的未知参数,也叫定值估计。能直接告诉我们未知参数的估计值是多少。但是样本毕竟只是总体的一部分,捕捉的信息终究有局限。因此我们使用样本数据估计出的结果不可避免地回有一定的偏差。
相比于其它中心指标,一般使用样本均值去估计总体均值得到的结果更为准确。
点估计的方法之一是矩估计法(Moment Estimation)
在这里插入图片描述

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


1.2 区间估计

1.2.1 区间估计概述

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


在这里插入图片描述

1.2.2 区间估计的方法

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


在这里插入图片描述

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 np

x = [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意思不是跌了七个点。)

目录
相关文章
|
14天前
|
Python
python函数的参数学习
学习Python函数参数涉及五个方面:1) 位置参数按顺序传递,如`func(1, 2, 3)`;2) 关键字参数通过名称传值,如`func(a=1, b=2, c=3)`;3) 默认参数设定默认值,如`func(a, b, c=0)`;4) 可变参数用*和**接收任意数量的位置和关键字参数,如`func(1, 2, 3, a=4, b=5, c=6)`;5) 参数组合结合不同类型的参数,如`func(1, 2, 3, a=4, b=5, c=6)`。
14 1
|
1天前
|
机器学习/深度学习 算法 搜索推荐
Python用机器学习算法进行因果推断与增量、增益模型Uplift Modeling智能营销模型
Python用机器学习算法进行因果推断与增量、增益模型Uplift Modeling智能营销模型
28 12
|
7天前
|
算法 数据可视化 Python
Python贝叶斯推断Metropolis-Hastings(M-H)MCMC采样算法的实现
Python贝叶斯推断Metropolis-Hastings(M-H)MCMC采样算法的实现
11 0
|
7天前
|
存储 机器学习/深度学习 数据可视化
Python面板时间序列数据预测:格兰杰因果关系检验Granger causality test药品销售实例与可视化
Python面板时间序列数据预测:格兰杰因果关系检验Granger causality test药品销售实例与可视化
56 6
|
9天前
05-python之函数-函数的定义/函数的参数/函数返回值/函数说明文档/函数的嵌套使用/函数变量的作用域
05-python之函数-函数的定义/函数的参数/函数返回值/函数说明文档/函数的嵌套使用/函数变量的作用域
|
C++ 索引 Python
Python 因果推断(上)
Python 因果推断(上)
12 0
|
13天前
|
安全 API 开发者
Python中使用`requests`库进行请求头与自定义参数设置的技术详解
【4月更文挑战第12天】在Python中,`requests`库是一个强大且灵活的HTTP客户端,用于发送所有类型的HTTP请求。在发送请求时,我们经常需要设置请求头和自定义参数来满足不同的需求。本文将详细探讨如何在Python中使用`requests`库进行请求头和自定义参数的设置。
|
13天前
|
机器学习/深度学习 数据可视化 数据挖掘
用Python进行健康数据分析:挖掘医疗统计中的信息
【4月更文挑战第12天】Python在医疗健康数据分析中扮演重要角色,具备数据处理、机器学习、可视化及丰富生态的优势。基本流程包括数据获取、预处理、探索、模型选择与训练、评估优化及结果可视化。应用案例包括疾病预测、药物效果分析和医疗资源优化,例如使用RandomForestClassifier进行疾病预测,Logit模型分析药物效果,以及linprog优化医疗资源配置。
|
17天前
|
测试技术 Python
288统计出现最多次的字母(PYTHON)
288统计出现最多次的字母(PYTHON)
|
1月前
|
算法 开发者 Python
【Python 基础扫盲 】self参数、__init__方法和.__str__方法的用处和区别?
【Python 基础扫盲 】self参数、__init__方法和.__str__方法的用处和区别?
20 0

热门文章

最新文章