python 三个平行样选择性剔除异常值后求平均值Nekotaizi

第一次用的检验法剔除异常值,结果发现当n=3的时候,0.99,1,1.01按理来说没有异常值,但是算出来的G却是大于G(3)的,也就是说1.01要被剔除 。这就很奇怪 。上网查了一下竟然没人对这个方法产生一点质疑 。暂且搁置,检验法我感觉不靠谱 。
后来我想可以利用条件限制去选择性剔除异常值 。根据个人经验,选择用两个条件去限制(给x1,x2和x3从小到大排好顺序):(1)最大值和中间值距离与最小值和中间值距离的倍数比较(这里设定为绝对值不超过3倍):x3-x2>3(x2-x1)(2)单个最大值或者最小值与中间值的倍数限制(这里设定最大值不超过中间值的1.05倍,最小值不小于中间值的0.95倍):x3>1.05x2,x1

python  三个平行样选择性剔除异常值后求平均值Nekotaizi

文章插图
这两个条件必须是“且”的关系,也就是两者缺一不可 。
原始txt文件如下:
python  三个平行样选择性剔除异常值后求平均值Nekotaizi

文章插图
スクリプト如下:
【python三个平行样选择性剔除异常值后求平均值Nekotaizi】# -*- coding: utf-8 -*-"""Created on Mon Feb 14 00:35:11 2022@auth