正态分布检验的拟合优度法与综合统计量法

综合统计量方法和正态分布的拟合优度检验方法是常用于检验数据是否呈正态分布的两类主要方法。以下是具体的检验方法:

综合统计量方法:

  1. Shapiro-Wilk检验:基于W统计量,适用于各种样本大小。
  2. D'Agostino检验:结合了偏度和峰度的信息,适用于中等样本大小。
  3. Shapiro-Francia检验:使用W'统计量,特别适用于大样本。
  4. Lilliefors检验:类似于Kolmogorov-Smirnov,但适用于小样本。
  5. Ryan-Joiner检验:基于观察数据的偏度和峰度,适用于偏态和厚尾分布。

正态分布的拟合优度检验方法:

  1. Kolmogorov-Smirnov检验:通过比较观察数据与理论正态分布的累积分布函数,适用于大样本。
  2. Anderson-Darling检验:对尾部分布敏感,用于评估数据是否来自正态分布。
  3. Cramér-von Mises检验:考虑了所有分布区域的差异,评估观察数据与理论正态分布之间的拟合度。
  4. D'Agostino's K-squared检验:用于检验数据是否符合正态分布的一种变体。

这些方法提供了多样化的工具,用于全面评估数据是否遵循正态分布。在使用时,你可以根据样本大小、数据特性和分析需求选择适当的方法。在实际应用中,通常使用多种方法相互印证,以获得更可靠的结论。

from scipy import stats
import numpy as np
from statsmodels.stats.diagnostic import lilliefors# 这个函数的实现是基于Shapiro-Francia检验的一种常见形式,但在特定情况下可能需要根据您的需求进行微调。
def shapiro_francia(data):n = len(data)data = np.sort(data)w = np.corrcoef(data, np.arange(1, n + 1) / (n + 1), rowvar=False)[0, 1]# 参数a和b通常是Shapiro-Francia检验的推荐值,用于计算这些权重。a = 1.0378b = 0.365statistic = (w / a) ** 2p_value = 1 - stats.chi2.cdf(statistic, df=2)return statistic, p_value# 示例数据,用您的实际数据替换这里的数据
# data = [2.5, 3.0, 2.7, 3.2, 2.8, 3.5, 2.9, 3.7, 2.8, 3.9]
data = [34,56,39,71,84,92,44,67,98,49,55,73,50,62,75,44,88,53,61,25,36,66,77,35]# 执行Shapiro-Francia正态性检验
# Shapiro-Francia检验通过计算样本数据的统计量来评估数据是否来自正态分布。
statistic, p_value = shapiro_francia(data)# 输出检验结果
print("Shapiro-Francia Statistic:", statistic)
print("Shapiro-Francia p-value:", p_value)# 根据p-value进行假设检验
alpha = 0.05  # 设置显著性水平
if p_value < alpha:print("拒绝零假设,数据不符合正态分布。\n")
else:print("无法拒绝零假设,数据可能符合正态分布。\n")print("其他检验验证方法参考:")
# 正态性检验 - Shapiro-Wilk检验
stat, p = stats.shapiro(data)
print("Shapiro-Wilk检验统计量:", stat)
print("Shapiro-Wilk检验p值:", p)
print("\n")
# Anderson-Darling检验
result = stats.anderson(data, dist='norm')
# Anderson-Darling统量
print("Anderson-Darling统计量:", result.statistic)
# 临界值
print("临界值:", result.critical_values)
# 显著性水平
print("显著性水平:", result.significance_level)
# 适配结果
fit_result = result.fit_result
print("适配结果 params:", fit_result.params)
print("适配结果 success:", fit_result.success)
print("适配结果 message:", fit_result.message)
print("\n")
# 执行单样本K-S检验,假设数据服从正态分布
statistic, p_value = stats.kstest(data, 'norm')
print("K-S检验统计量:", statistic)
print("K-S检验p值:", p_value)
print("\n")
# 执行正态分布检验
k2, p_value = stats.normaltest(data)
print(f"normaltest正态分布检验的统计量 (K^2): {k2}")
print(f"normaltest检验p值: {p_value}")
print("\n")
# 执行Jarque-Bera检验
jb_statistic, jb_p_value = stats.jarque_bera(data)
# 输出检验结果
print("Jarque-Bera Statistic:", jb_statistic)
print("Jarque-Bera p-value:", jb_p_value)
print("\n")
# 执行Lilliefors检验
lilliefors_statistic, p_value = lilliefors(data)
# 打印结果
print("lilliefors_statistic =", lilliefors_statistic)
print("Lilliefors p_value =", p_value)

 

------------

综合统计量方法用于检验数据是否呈正态分布,它综合考虑了数据的各种特征。在正态性检验中,一些常用的综合统计量方法包括:

  1. Shapiro-Wilk统计量(W统计量):Shapiro-Wilk检验使用W统计量来评估数据是否符合正态分布。该统计量综合了样本数据的排序顺序和回归分析的概念,对于小样本和大样本均适用。

  2. D'Agostino统计量:D'Agostino检验结合了样本的偏度和峰度信息,通过计算一个综合的统计量来判断数据是否呈正态分布。它适用于中等样本大小。

  3. Shapiro-Francia统计量(W'统计量):类似于Shapiro-Wilk检验,但使用了修正的统计量W'。它特别适用于大样本数据的正态性检验。

  4. Ryan-Joiner统计量:Ryan-Joiner检验基于观察数据的偏度和峰度,通过计算一个综合的统计量来判断数据是否呈正态分布。它对于偏态和厚尾分布的数据更具敏感性。

这些综合统计量方法考虑了数据的不同方面,包括排序顺序、偏度、峰度等,从而提供了更全面的判断数据是否符合正态分布的手段。选择合适的方法通常依赖于样本大小和数据特性。在实际应用中,可以综合使用多种方法来得出更可信的结论。

-------------------------------

拟合优度指的是观察数据与理论分布之间的拟合程度。在正态性检验中,拟合优度主要关注以下几个方面:

  1. 累积分布函数(CDF)的拟合:观察数据的累积分布函数(ECDF)与理论分布的CDF进行比较。理论上,如果观察数据符合某种理论分布(如正态分布),它们的ECDF应该接近于对应理论分布的CDF。

  2. 分位数的拟合:观察数据的分位数与理论分布的分位数进行比较。常见的方法包括QQ图(Quantile-Quantile plot),它绘制了观察数据的分位数与理论分布的分位数之间的关系。如果数据符合理论分布,这些点应该落在一条直线上。

  3. 统计量的拟合:通过计算统计量(如均值、方差等)来比较观察数据与理论分布的差异。通常,如果观察数据符合理论分布,它们的统计量应该接近于理论分布的相应统计量。

  4. 拟合优度检验统计量:在拟合优度检验中,一些统计量(如Kolmogorov-Smirnov统计量、Anderson-Darling统计量等)用于量化观察数据与理论分布之间的差异,这些统计量的值越小,表示拟合越好。

  5. 尾部拟合:一些拟合优度检验方法关注观察数据与理论分布在尾部(高分位数或低分位数)的拟合程度,因为在这些区域的拟合往往更难。

通过以上方面的比较和分析,可以判断观察数据是否符合特定的理论分布。在实际应用中,通常会结合多个方面的信息,综合评估拟合优度,以便更全面地了解数据分布的特性。

=======

当处理小样本数据时,Lilliefors检验和Kolmogorov-Smirnov检验有些相似,但Lilliefors检验在计算临界值时考虑了样本大小,因此更适用于小样本场景。这两种检验方法的共同点在于都用于检验观察数据是否来自于特定的理论分布,例如正态分布。

具体来说,Lilliefors检验的步骤如下:

  1. 计算观察数据的累积分布函数(ECDF):将观察数据按大小排序,计算每个数据点的累积概率。

  2. 计算Lilliefors统计量:Lilliefors统计量是观察数据ECDF与理论分布的累积分布函数之间的最大差异。该差异通常用来衡量观察数据与理论分布之间的拟合程度。

  3. 计算临界值:Lilliefors检验根据样本大小和显著性水平(通常为0.05)计算临界值。如果Lilliefors统计量超过了临界值,就拒绝了数据符合理论分布的假设。

总的来说,Lilliefors检验是Kolmogorov-Smirnov检验的一个变种,适用于小样本数据。它的优势在于在小样本情况下,能够更准确地确定数据是否符合特定的分布,如正态分布。

 ========

当我们讨论综合统计量方法和正态分布的拟合优度检验方法时,我们可以更深入地了解这些方法的具体特点和用途。

综合统计量方法:

  1. Shapiro-Wilk检验

    • 特点:适用于各种样本大小,对非正态分布的敏感性较高,对小样本数据较为准确。
    • 使用场景:适用于小样本和大样本,特别适用于小样本的正态性检验。
  2. D'Agostino检验

    • 特点:结合了偏度和峰度信息,对中等样本数据的正态性检验较为准确。
    • 使用场景:适用于中等样本,可以检测数据的偏态和峰度,对正态性的判断更加全面。
  3. Shapiro-Francia检验

    • 特点:使用W'统计量,特别适用于大样本,对正态性的判断较为准确。
    • 使用场景:适用于大样本,相对于Shapiro-Wilk检验,在大样本下更快速且准确。
  4. Ryan-Joiner检验

    • 特点:基于观察数据的偏度和峰度,对偏态和厚尾分布的数据更敏感。
    • 使用场景:适用于偏态和厚尾分布的数据,可以捕捉到数据分布的更多特征。

正态分布的拟合优度检验方法:

  1. Kolmogorov-Smirnov检验

    • 特点:通过比较观察数据与理论正态分布的累积分布函数,适用于大样本,但对尾部的拟合相对较弱。
    • 使用场景:适用于大样本,一般用于初步判断数据是否符合正态分布。
  2. Anderson-Darling检验

    • 特点:对尾部分布较为敏感,适用于各种样本大小,对非正态分布的敏感性较高。
    • 使用场景:适用于各种样本大小,特别适用于对尾部分布拟合的敏感性要求较高的场景。
  3. Cramér-von Mises检验

    • 特点:考虑了所有分布区域的差异,对整体分布拟合的敏感性较高。
    • 使用场景:适用于各种样本大小,用于全面评估数据与理论正态分布之间的拟合度。
  4. D'Agostino's K-squared检验

    • 特点:是D'Agostino检验的一种变体,结合了偏度和峰度信息。
    • 使用场景:适用于中等样本,对数据的整体分布特征进行评估。

这些方法各自有其特点和适用范围。在选择方法时,需要根据样本大小、数据分布的特性以及研究问题的需求进行权衡和选择。通常,为了提高结果的可靠性,可以综合使用多种方法来进行正态性检验。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

yolov8 opencv模型部署(C++版)

yolov8 opencv模型部署&#xff08;C 版&#xff09; 使用opencv推理yolov8模型&#xff0c;仅依赖opencv&#xff0c;无需其他库&#xff0c;以yolov8s为例子&#xff0c;注意&#xff1a; 使用opencv4.8.0 &#xff01;使用opencv4.8.0 &#xff01;使用opencv4.8.0 &#…

有时候,使用 clang -g test.c 编译出可执行文件后,发现 gdb a.out 进行调试无法读取符号信息,为什么?

经过测试&#xff0c;gdb 并不是和所有版本的 llvm/clang 都兼容的 当 gdb 版本为 9.2 时&#xff0c;能支持 9.0.1-12 版本的 clang&#xff0c;但无法支持 16.0.6 版本的 clang 可以尝试使用 LLVM 专用的调试器 lldb 我尝试使用了 16.0.6 版本的 lldb 调试 16.0.6 的 clan…

string类的使用方式的介绍

目录 前言 1.什么是STL 2. STL的版本 3. STL的六大组件 4.STL的缺陷 5.string 5.1 为什么学习string类&#xff1f; 5.1.1 C语言中的字符串 5.2 标准库中的string类 5.3 string类的常用接口的使用 5.3.1 构造函数 5.3.2 string类对象的容量操作 5.3.3 string类对象…

Multiple CORS header ‘Access-Control-Allow-Origin‘ not allowed

今天在修改天天生鲜超市项目的时候&#xff0c;因为使用了前后端分离模式&#xff0c;前端通过网关统一转发请求到后端服务&#xff0c;但是第一次使用就遇到了问题&#xff0c;比如跨域问题&#xff1a; 但是&#xff0c;其实网关里是有配置跨域的&#xff0c;只是忘了把前端项…

画CMB天图使用Planck配色方案

使用Planck的配色方案&#xff1a; 全天图&#xff1a; 或者方形图&#xff1a; 使用下面设置即可&#xff1a; import pspy, pixell from pspy.so_config import DEFAULT_DATA_DIR pixell.colorize.mpl_setdefault("planck")此方法不会改变matplotlib默认配色方案…

虚拟机安装 centos

title: 虚拟机安装 centos createTime: 2020-12-13 12:00:27 updateTime: 2020-12-13 12:00:27 categories: linux tags: 虚拟机安装 centos 路线图 主机(宿主机) —> centos --> docker --> docker 镜像 --> docker 容器 — docker 服务 1.前期准备 一台 主机 或…

分类预测 | Matlab实现SSA-CNN-SVM麻雀算法优化卷积支持向量机分类预测

分类预测 | Matlab实现SSA-CNN-SVM麻雀算法优化卷积支持向量机分类预测 目录 分类预测 | Matlab实现SSA-CNN-SVM麻雀算法优化卷积支持向量机分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现SSA-CNN-SVM麻雀算法优化卷积支持向量机分类预测&#xff0…

TensorFlow入门(一、环境搭建)

一、下载安装Anaconda 下载地址:http://www.anaconda.comhttp://www.anaconda.com 下载完成后运行exe进行安装 二、下载cuda 下载地址:http://developer.nvidia.com/cuda-downloadshttp://developer.nvidia.com/cuda-downloads 下载完成后运行exe进行安装 安装后winR cmd进…

JAVA面经整理(5)

创建线程池不是说现用先创建&#xff0c;而是要是可以复用线程池中的线程&#xff0c;就很好地避免了大量用户态和内核态的交互&#xff0c;不需要频繁的创建和销毁线程 一)什么是池化技术&#xff1f;什么是线程池&#xff1f; 1)池化技术是提前准备好一些资源&#xff0c;在…

[React] 性能优化相关 (一)

文章目录 1.React.memo2.useMemo3.useCallback4.useTransition5.useDeferredValue 1.React.memo 当父组件被重新渲染的时候&#xff0c;也会触发子组件的重新渲染&#xff0c;这样就多出了无意义的性能开销。如果子组件的状态没有发生变化&#xff0c;则子组件是不需要被重新渲…

华为智能企业上网行为管理安全解决方案(1)

华为智能企业上网行为管理安全解决方案&#xff08;1&#xff09; 课程地址方案背景需求分析企业上网行为概述企业上网行为安全风险分析企业上网行为管理需求分析 方案设计组网架构设备选型设备简介行为管理要点分析方案功能概述 课程地址 本方案相关课程资源已在华为O3社区发…

网络协议--概述

1.2 分层 网络协议通常分不同层次进行开发&#xff0c;每一层分别负责不同的通信功能。一个协议族&#xff0c;比如TCP/IP&#xff0c;是一组不同层次上的多个协议的组合。TCP/IP通常被认为是一个四层协议系统&#xff0c;如图1-1所示。 每一层负责不同的功能&#xff1a; 1.…

C++(string类)

本节目标&#xff1a; 1、为什么要学习string类 2.标准库中的string类 3.vs和g下string结构说明 1.为什么学习string类 1.1 c语言中的字符串 C 语言中&#xff0c;字符串是以 \0 结尾的一些字符的集合&#xff0c;为了操作方便&#xff0c; C 标准库中提供了一些 str系列的…

基于java的鲜花销售系统/网上花店

摘 要 本毕业设计的内容是设计并且实现一个基于Spring Boot框架的驿城鲜花销售系统。它是在Windows下&#xff0c;以MYSQL为数据库开发平台&#xff0c;Tomcat网络信息服务作为应用服务器。驿城鲜花销售系统的功能已基本实现&#xff0c;主要包括首页、个人中心、用户管理、鲜…

【算法挨揍日记】day10——704. 二分查找、34. 在排序数组中查找元素的第一个和最后一个位置

704. 二分查找 704. 二分查找 题目描述&#xff1a; 给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返回下标&#xff0c;否则返回 -1。 解题思路&…

【VIM】初步认识VIM-2

2-6 Vim 如何搜索替换_哔哩哔哩_bilibili 1-6行将self改成this 精确替换quack单词为交

linux系统与应用

Windows中的硬盘和盘符的关系&#xff1b; 硬盘通常为一块到两块&#xff1b;数量与盘符没有直接关系&#xff1b;一块硬盘可以分为多个盘符&#xff0c;如c,d,e,f,g等&#xff1b;当然理论上也可以一块硬盘只有一个盘符&#xff1b;学习linux时&#xff0c;最好使用固态硬盘&a…

如何使用jenkins、ant、selenium、testng搭建自动化测试框架

如果在你的理解中自动化测试就是在eclipse里面讲webdriver的包引入&#xff0c;然后写一些测试脚本&#xff0c;这就是你所说的自动化测试&#xff0c;其实这个还不能算是真正的自动化测试&#xff0c;你见过每次需要运行的时候还需要打开eclipse然后去选择运行文件吗&#xff…

毕业设计选题uniapp+springboot新闻资讯小程序源码 开题 lw 调试

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人七年开发经验&#xff0c;擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等&#xff0c;大家有这一块的问题可以一起交流&#xff01; &#x1f495;&…

JavaScript——APIs

复习&#xff1a; splice() 方法用于添加或删除数组中的元素。 **注意&#xff1a;**这种方法会改变原始数组。 删除数组&#xff1a; splice(起始位置&#xff0c; 删除的个数) 比如&#xff1a;1 let arr [red, green, blue] arr.splice(1,1) // 删除green元素 consol…