使用Julia语言及R语言进行格拉布斯检验

  在日常的计量检测工作中经常会处理各种数据,在处理数据之前会提前使用格拉布斯准则查看数据中是否存在异常值,如果存在异常值的话应该重新进行计量检测,没有异常值则对数据进行下一步操作。判断异常值常用的格拉布斯方法基于数据来自正态分布的假设,通过计算格拉布斯统计量(G值)并与临界值进行比较来判断数据点是否为离群值,分为双边检验和单侧检验,双边检验用于检测数据集中最大和最小值是否为异常值,而单侧检验则仅关注最大值或最小值。

计算过程及Markdown版本公式代码

先计算平均值和标准差

  

Markdown版本的公式代码:

**计算样本均值和标准差**:
计算给定数据集的样本均值(\(\overline{x}\))和样本标准差(\(s\)),其中样本标准差使用 \(n - 1\) 作为分母(\(n\) 为样本量)。
样品均值计算公式:
$$
\overline{x} = \frac{1}{n} \sum_{i=1}^{n} x_i
$$
其中:  
  
- $\overline{x}$ 表示样本均值  
- $n$ 表示样本中的观测值数量  
- $x_i$ 表示样本中的第 $i$ 个观测值  
- $\sum_{i=1}^{n} x_i$ 表示从第1个观测值到第$n$个观测值的和  
  
标准差计算公式:
$$
s = \sqrt{\frac{1}{n-1} \sum_{i=1}^{n} (x_i - \overline{x})^2}
$$
其中:  
  
- $s$ 表示样本标准差  
- $n$ 表示样本中的观测值数量  
- $x_i$ 表示样本中的第 $i$ 个观测值  
- $\overline{x}$ 表示样本均值  
- $\sum_{i=1}^{n} (x_i - \overline{x})^2$ 表示各观测值与均值之差的平方和

随后计算格拉布斯统计量Gi并找出最大的格拉布斯统计量,通常取置信度95%,显著性水平a为0.05,根据样本量和显著性水平查找格拉布斯检验的临界值 G(a,n)

Markdown版本的公式代码:

**计算格拉布斯统计量**:
1.对于数据集中的每个数据点 \(x_i\),计算其格拉布斯统计量 \(G_i\),公式如下:

\[ G_i = \frac{|x_i - \overline{x}|}{s} \]

这里,\(|x_i - \overline{x}|\) 是数据点 \(x_i\) 与样本均值 \(\overline{x}\) 之差的绝对值。
2. **找出最大格拉布斯统计量**:从所有计算出的 \(G_i\) 值中找出最大值 \(G_{\text{max}}\)。
3. **确定显著性水平和临界值**:选择一个显著性水平 \(\alpha\)(如 0.05 或 0.01),并查找或计算对应样本量和显著性水平的格拉布斯临界值 \(G_{\text{critical}}\)。临界值通常通过查表或使用统计软件获得。
4. **比较最大格拉布斯统计量与临界值**:如果 \(G_{\text{max}} > G_{\text{critical}}\),则拒绝原假设,认为最大格拉布斯统计量对应的数据点是离群值。否则,接受原假设,认为数据集中没有离群值。

5.格拉布斯检验法的公式:

- 格拉布斯统计量:\(G_i = \frac{|x_i - \overline{x}|}{s}\)
- 最大格拉布斯统计量:\(G_{\text{max}} = \max_{1 \leq i \leq n} G_i\)

 我在平时简单应用的时候是计算器算一下然后查表

 Julia语言实现

需要先下载 Statistics包

using Pkg
Pkg.add("Statistics")
using Statistics  
  
function grubbs_test(data::Vector{Float64}, alpha::Float64)  
    n = length(data)  
    if n < 3  
        error("Sample size must be at least 3 for Grubbs' test")  
    end  
 
    g_critical = 1.933  
  
    mean_val = mean(data)  
    std_dev = std(data, corrected=true)  # 使用n-1计算样本标准差  
  
    # 计算每个点与均值的绝对差值,并除以标准差,然后找出最大的g值  
    g_values = abs.(data .- mean_val) ./ std_dev  
    g_max = maximum(g_values)  
  
    # 判断是否存在离群值  
    if g_max > g_critical  
        return (true, g_max)  
    else  
        return (false, g_max)  
    end  
end  
  
data = [0.55, 0.51, 0.56, 0.49, 0.52, 0.12]  
alpha = 0.05  # 显著性水平  
has_outlier, g_max = grubbs_test(data, alpha)  
println("Has outlier: $has_outlier")  
println("G max: $g_max")

 运行结果:存在异常值,最大G值为2.017,目前只是判断了这组样本数据中有没有存在异常值,但还未揪出异常值,效果并不太好。此时,一刻也没有为Julia加速,立刻赶到战场的是R语言。

R语言实现 

先下载R包 outliers 然后:

library(outliers)

data <- c(0.55, 0.51, 0.56, 0.49, 0.52, 0.12)  
# 执行格拉布斯检验  
result <- grubbs.test(data)  
print(result)

运行结果 ,四行代码快速解决战斗,坑爹异常值是0.12。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/429355.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深度学习系列61:在CPU上运行大模型

1. 快速版 1.1 llamafile https://github.com/Mozilla-Ocho/llamafile 直接下载就可以用&#xff0c;链接为&#xff1a;https://huggingface.co/jartine/llava-v1.5-7B-GGUF/resolve/main/llava-v1.5-7b-q4.llamafile?downloadtrue 启动&#xff1a;./llava-v1.5-7b-q4.lla…

shell 小数比较大小

shell 小数比较大小 #!/bin/bash num15.9 result$(echo "$num1 > 5" | bc) #$num1 > 5 时返回0&#xff0c;$num1 < 5 时返回1 echo $result if [ $result -gt 0 ]; then echo ">>>>>>> $1 $2 数据异常: $hive_num" else e…

适用于 Windows 的 5 款最佳免费数据恢复软件榜单

每个计算机用户都曾经历过数据丢失的情况。很容易错误地删除重要的文件和文件夹&#xff0c;当发生这种情况时&#xff0c;可能会导致不必要的心痛和压力。值得庆幸的是&#xff0c;可以恢复 Windows PC 上丢失的数据。在本文中&#xff0c;我们将分享您可以使用的五种最佳 Win…

HTML+CSS:花式加载

效果演示 实现了一个动态加载文本效果&#xff0c;通过定义变量和应用动画效果来实现文本的动态展示。 Code <div class"container"><h1>loading...</h1> </div>:root {--text-color: orangered; /* 定义文本颜色变量为橙红色 */--inner-st…

【鸿蒙 HarmonyOS 4.0】登录流程

一、背景 登录功能在应用中是一个常用模块&#xff0c;此次使用 HarmonyOS 实现登录流程&#xff0c;包含页面呈现与网络请求。 二、页面呈现 三、实现流程 3.1、创建项目 构建一个ArkTS应用项目(Stage模型)&#xff0c;今天创建流程可查看官网教程&#xff1a;文档中心 目…

Serial studio 入门教程(安装+使用)

最近有一个朋友推荐了一个嵌入式调试工具 serial studio 用了一下很方便 今天记录一下过程 介绍 serial studio 支持多种协议和可自己定制的界面 安装 Serial Studio 国内下载地址&#xff1a; serial studio 国内镜像 安装时出现以下界面 点更多 就可以继续安装了 使用 …

新手想玩硬件,买单片机还是树莓派好?

新手想玩硬件&#xff0c;买单片机还是树莓派好&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「单片机的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#x…

7.1.3 Selenium的用法2

目录 1. 切换 Frame 2. 前进后退 3. 对 Cookies 操作 4. 选项卡管理(了解) 5. 异常处理 6. 反屏蔽 7. 无头模式 1. 切换 Frame 我们知道网页中有一种节点叫作 iframe&#xff0c;也就是子 Frame&#xff0c;相当于页面的子页面&#xff0c;它的结构和外部网页的结构完全…

6、聊聊cors漏洞

文章目录 1、小结1.1、存在漏洞的情况&#xff1a;1.2、常见的cors设置&#xff08;php举例&#xff09; 2、漏洞复现2.1、无需cookie2.2、需要cookie2.3、需要cookie的方式利用限制 3、补充与疑惑 1、小结 cors漏洞在20230404基本无了 估计很多乙方工作得同学都拿这个漏洞凑…

jmeter 生成html报告及解读

当前版本&#xff1a; jmeter 5.6.3mysql 5.7.39 简介 JMeter 支持在测试完成后自动生成报告&#xff0c;也支持使用结果数据文件转换成html报告&#xff08;使用 -l 文件.jtl&#xff09;。本篇文章主要介绍如何生成报告&#xff0c;以及报告的基本解读。 文章目录如下 1. 生…

06. Nginx进阶-Nginx代理服务

proxy代理功能 正向代理 什么是正向代理&#xff1f; 正向代理&#xff08;forward proxy&#xff09;&#xff0c;一个位于客户端和原始服务器之间的服务器。 工作原理 为了从原始服务器获取内容&#xff0c;客户端向代理发送一个请求并指定目标&#xff08;即原始服务器…

window10 安装配置docker

前言&#xff08;重要&#xff09;&#xff1a;确认window10版本已经更新到最新版 随着时间推移&#xff0c;docker对window版本的支持也在变&#xff0c;截至2024年3月份&#xff0c;支持win10最低版本号&#xff1a;22H2,操作系统最低版本&#xff1a;19045.2965&#xff0c…

基于springboot+vue的新闻资讯系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

科技云报道:阿里云降价,京东云跟进,谁能打赢云计算价格战?

科技云报道原创。 就在大家还在回味2月29日阿里云发布“史上最大降价”的惊喜时&#xff0c;京东云连夜发布降价消息&#xff0c;成为第一家跟进的云服务商&#xff0c;其“随便降&#xff0c;比到底&#xff01;”的口号&#xff0c;颇有对垒的意味&#xff0c;直接吹响了云计…

Python采集学习笔记-request的get请求和post请求

使用http://httpbin.org测试,一个简单的 HTTP 请求和响应服务。(需联网)1.导入requests包 import requests 2.测试get请求 url http://httpbin.org/get par {key1: value1, key2: value2} # 不带参数请求 r1 requests.get(url) # 带参数请求 r2 requests.get(url, paramspa…

【数据结构和算法初阶(C语言)】带环链表问题详解(快慢指针的烧脑应用)

目录 1.铺垫-----带环链表基本了解 2. 题目&#xff1a;环形链表 3.环形链表|| ​编辑 3.1题解1 3.2 题解2 4.总结 1.铺垫-----带环链表基本了解 环形链表题目启迪&#xff1a; 环形链表特点&#xff1a;遍历链表会出现一模一样的地址 2. 题目&#xff1a;环形链表 给…

Scrapy与分布式开发(2.3):lxml+xpath基本指令和提取方法详解

lxmlxpath基本指令和提取方法详解 一、XPath简介 XPath&#xff0c;全称为XML Path Language&#xff0c;是一种在XML文档中查找信息的语言。它允许用户通过简单的路径表达式在XML文档中进行导航。XPath不仅适用于XML&#xff0c;还常用于处理HTML文档。 二、基本指令和提取…

爬虫入门到精通_实战篇10(使用Redis+Flask维护动态代理池)

1 目标 为什么要用代理池 许多网站有专门的反爬虫措施&#xff0c;可能遇到封IP等问题。互联网上公开了大量免费代理&#xff0c;利用好资源。通过定时的检测维护同样可以得到多个可用代理。 代理池的要求 多站抓取&#xff0c;异步检测定时筛选&#xff0c;持续更新提供接…

12 状态优先级

概念 cpu需要执行很多进程&#xff0c;有很多进程排在队列中&#xff0c;每个进程加载后运行一定的时间段&#xff0c;然后切换下一个进程。cpu如何判断进程需不需要加载&#xff0c;什么时候加载&#xff0c;依靠进程的状态和优先级属性来判断&#xff0c;进程调度&#xff0…

Gitlab: PHP项目CI/CD实践

目录 1 说明 2 CI/CD 2.1 部署方式一&#xff1a;增量部署 2.1.1 目标服务器准备 2.2.2 Gitlab及Envoy脚本 2.2 部署方式二&#xff1a;镜像构建与部署 2.2.1 推送到私有化容器仓库 准备工作 脚本 要点 2.2.2 推送到hub.docker.com 准备工作 脚本 3 参考&#x…