Trimmed 稳健均值估计与 中位数-中位数配对偏差法估计标准差——理论与 Python 实现
文章目录
- a-Trimmed 平均
- 理论步骤
- Python 实现
- 中位数-中位数绝对偏差
- 理论步骤
- Python 实现
本文主要根据标准 16269-4:2010 的条款 5.2.2 和 5.3.1 。
数据集为:x1,x2,⋯,xnx_1, x_2, \cdots, x_nx1,x2,⋯,xn, nnn 是样本容量。
a-Trimmed 平均
a-Trimmed 的平均值的计算,是通过截断次序统计量的“头尾”,从而进行稳健估计,截取比例为 α\alphaα。
理论步骤
给定一个系数 α∈[0,0.5)\alpha\in[0,0.5)α∈[0,0.5),即样本的次序统计量为: x(1),x(2),⋯,x(n)x_{(1)}, x_{(2)}, \cdots, x_{(n)}x(1),x(2),⋯,x(n)。
计算出截取比例 α\alphaα 对应的截取个数 r=[α⋅n]r = [\alpha\cdot n]r=[α⋅n],其中 [α⋅n][\alpha\cdot n][α⋅n] 为计算小于 α⋅n\alpha \cdot nα⋅n 的最大整数。并计算 α⋅n\alpha \cdot nα⋅n 的浮点数部分为:g=α⋅n−rg = \alpha\cdot n - rg=α⋅n−r。
从而计算出 a-trimmed 均值为:
xˉ(α)=1n(1−2α)[(1−g)(x(r+1)+x(n−r))+∑i=r+2n−r−1x(i)]\bar{x}(\alpha) = \frac{1}{n(1-2\alpha)} [ (1-g)(x_{(r+1)} + x_{(n-r)}) + \sum_{i=r+2}^{n-r-1} x_{(i)} ] xˉ(α)=n(1−2α)1[(1−g)(x(r+1)+x(n−r))+i=r+2∑n−r−1x(i)]
即抛弃头尾 r 个数据(升序排序后),在将删除 r 个后,两个极端数据,按权重 (1−g)(1-g)(1−g) 计算其影响。
Python 实现
def trimmed_mean(x, alpha=0.05):if isinstance(x, pd.Series) or isinstance(x, pd.DataFrame):x = x.astype('float').valuesif isinstance(x, list):x = np.array(x)# 样本个数n = len(x)r = int(alpha*n)g = alpha*n - rx_sorted = np.sort(x)coeff = 1/(n*(1-2*alpha))loc = coeff*((1-g)*(x_sorted[r] + x_sorted[n-r-1]) + sum(x_sorted[r+1:n-r-1]))return loc
中位数-中位数绝对偏差
理论步骤
Sn=sn×Mediani(Medianj∣xj−xi∣,i≠j,j=1,2,⋯,n)S_n = s_n \times \text{Median}_i ( \text{Median}_j |x_j - x_i|, i \neq j, j=1,2,\cdots,n ) Sn=sn×Mediani(Medianj∣xj−xi∣,i=j,j=1,2,⋯,n)
该式为对 1,2,⋯,n1,2,\cdots, n1,2,⋯,n 每个 xix_ixi,计算 Median∣xj−xi∣,j≠i,j\text{Median}|x_j - x_i|,j\neq i, jMedian∣xj−xi∣,j=i,j 为除了 xix_ixi 之外的其他样本,从而得到 n 个中位数样本,之后,再在这些中位数样本中,选取出中位数,配合 sns_nsn 进行计算。
sns_nsn 为 ISO 16269-4:2010 的附件表 D.1 中规定的系数(具体怎么求,我也不清楚,有大神可补充的,在此感谢),表格如下:
Python 实现
将上述表格放在一个叫 correction_factor.xlsx 的 Excel 表格中,与代码文件在同一路径下:
def median_median_absolute_pairwise(x):if isinstance(x, pd.Series) or isinstance(x, pd.DataFrame):x = x.astype('float').valuesif isinstance(x, list):x = np.array(x)# 样本个数n = len(x)path = r'./correction_factors.xlsx'factor_data = pd.read_excel(path, header=0)n_list = factor_data['n']if n not in n_list:if n <= 150:n_list_interpolate = np.arange(2, 151)sn_list = factor_data['sn'].valuesf = interpolate.interp1d(n_list, sn_list, kind='cubic')sn_list = f(n_list_interpolate)sn = sn_list[n-2]elif 150 < n and n <= 200:sn = 0.9914elif 200 < n and n<=300:sn = 0.9912else:sn = 0.9910else:sn = factor_data.loc[factor_data['n']==n]['sn']sn = float(sn)pairwise_mad = []for i in range(n):x_exclude = np.delete(x, np.where(x==x[i]))diff = np.abs(x_exclude - x[i])diff_med = np.median(diff)pairwise_mad.append(diff_med)pairwise_mad = np.array(pairwise_mad)pairwise_mad_med = np.median(pairwise_mad)scale = sn*pairwise_mad_medreturn scale
Trimmed 稳健均值估计与 中位数-中位数配对偏差法估计标准差——理论与 Python 实现相关推荐
- 极大似然法估计与极大验后法估计
11.2 极大似然法估计与极大验后法估计 一.极大似然法估计 极大似然法估计是以观测值出现的概率为最大作为估计准则的,它是一种觉的参数估计方法. 设是连续随机变量,其分布密度为,含有个未知 ...
- 协偏度矩阵 matlab 程序,投资组合收益率高阶矩估计的一种方法——压缩估计
推文人 | 王彦锋 参考文章: [1] Martellini, Lionel and Volker Ziemann. Improved estimates of higher-order comome ...
- 相机位姿估计2:[应用]实时位姿估计与三维重建相机姿态
关键词:相机位姿估计 OpenCV::solvePnP labview三维图片 文章类型:应用展示+Demo演示 @Author:VShawn(singlex@foxmail.com) @Date:2 ...
- 姿态估计2-08:PVNet(6D姿态估计)-源码无死角解析(4)-RANSAC投票机制
以下链接是个人关于PVNet(6D姿态估计) 所有见解,如有错误欢迎大家指出,我会第一时间纠正.有兴趣的朋友可以加微信:17575010159 相互讨论技术.若是帮助到了你什么,一定要记得点赞!因为这 ...
- Carsim和simulink联合仿真轮胎力估计 基于滑模观测器SMO估计轮胎的纵向力和侧向力 模型估计的精度很高,测试的工况为双移线工况
Carsim和simulink联合仿真轮胎力估计 基于滑模观测器SMO估计轮胎的纵向力和侧向力 模型估计的精度很高,测试的工况为双移线工况 基于SMO滑模观测器的轮胎力估计方法省去了轮胎模型的使用,避 ...
- 统计学基础之:均值-中位数-众数-极差-中程数-方差-标准差-变异系数
转载自:http://blog.sina.com.cn/s/blog_62ded7bf0101aqba.html 本文大纲: 数据挖掘分析&算法前奏之data exploration做什么 基 ...
- 均值-中位数-众数-极差-中程数-方差-标准差-变异系数
一.数据挖掘&算法前奏之data exploration做什么 一个数字序列,如何通过简单的统计指标,直接&直观地描述这个数字序列的一些基本属性,是数据处理与理解的刚需.做数据挖掘和机 ...
- 从股票市场选择配对的股票:理论联系实际
我们有了计算距离的方法,即共同因子相关系数的绝对值就是衡量协整性的一个好方法.现在看一些实际应用中会遇到的问题. 整合的特定回报的平稳性(Stationarity of Integration Spe ...
- 均值、方差和标准差计算的python代码
import numpy as np import pandas as pd# arr = [1,2,3,4,5,6] arr = pd.read_excel("G:\文件夹1\文件夹2\文 ...
- 先验分布、后验分布、似然估计、贝叶斯估计、最大似然估计
一.什么叫先验分布.后验分布.似然估计 这几个概念可以用"原因的可能性"和"结果的可能性"的"先后顺序"及"条件关系" ...
最新文章
- Path HDU6582
- 三层架构用户登录代码c语言,三层架构实现简单的用户登录代码
- kafka彻底删除topic(cleanup policy)、清除特定topic数据
- python - hadoop,mapreduce demo
- 企业门户网站服务器,企业或个人门户网站对服务器前的重要准备 - 酷番云
- JS中的prototype、__proto__与constructor,原型和原型链
- 【数据结构与算法】顺序栈的Java实现
- java 多态 优势
- http服务ajax编程
- qt 控件坐标系_Qt中,如何找准控件坐标
- c语言最新标准 2017,2017最新C语言介绍
- [BZOJ1007][HNOI2008]水平可见直线 计算几何
- Linux系统(X64)7 安装Oracle11g完整安装图文教程另附基本操作
- 微信公众号基础入门知识
- 文件读写处理:古诗问题
- 网页嵌入谷歌翻译js插件
- 焦点关注|创造中国奇迹:北京大兴国际机场的助力者
- V社线下沙龙·深圳站——12.05(周六)
- vue 仿写微信公众号自定义菜单
- 邮件营销有效吗?分享几个实用的电子邮件营销策略和技巧!
热门文章
- MSP430 BOR电路的作用
- CentOS 7系统语言修改成英文
- peoplesoft查询
- Cloud Chou's Tech Blog编译相关
- 2021年高处安装、维护、拆除考试及高处安装、维护、拆除考试技巧
- 2021年江西省安全员C证考试报名及江西省安全员C证模拟考试题库
- Forever young
- 计算机软件需要加书名号吗,软件著作权名称需要加书名号吗-举例说明一个软件的名称放在句子里应不应该用书名号,为什么?...
- 大数据周周看:金融科技公司融360赴美IPO,小蓝单车人去楼空,用户押金退还困难
- 用U盘安装Windows server 2012 R2