统计学之正态分布检验

article/2025/1/4 0:40:58

统计学之正态分布检验

本次主要是对数据集数据进行正态分布检验,数据集地址为:http://jse.amstat.org/datasets/normtemp.dat.txt
主要包括三列数据,体温(F)、性别(1:男,2:女)、心率(次/分钟)
1.数据统计
本次没有直接下载数据,而是手动将数据存储到本地了,应该可以直接下载数据到本地或者直接读取链接中的数据,有兴趣的可以自己动手试试。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import requests
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats
##数据集http://jse.amstat.org/datasets/normtemp.dat.txt
data=pd.read_excel('F:\\temperature.xlsx')print(data.head(5))
L=data.ix[:,'体温'].values  #读取所有行中‘体温’那一列
##print(L)

得到前5行数据

        体温  性别  心率0  96.3   1  701  96.7   1  712  96.9   1  743  97.0   1  804  97.1   1  73

对温度数据的数据分布情况进行统计

print('平均值:',np.mean(L))
print('中位数:',np.median(L))
print('众数:',scipy.stats.mode(L))
print('标准差',np.std(L))
print('最大值',np.max(L))
print('最小值',np.min(L))
print('偏度:',scipy.stats.skew(L))
print('峰度',scipy.stats.kurtosis(L))

得到的结果为:

平均值: 98.24923076923078
中位数: 98.3
众数: ModeResult(mode=array([98.]), count=array([11]))
标准差 0.730357778905038
最大值 100.8
最小值 96.3
偏度: -0.004367976879198404
峰度 0.7049597854114715

2.数据展示
散点图

y=data.ix[:,'体温'].values  #读取‘体温’那一列
x=data.ix[:,'心率'].values  #读取‘心率'那一列
z=data.ix[:,'性别'].values  #读取‘性别'那一列
plt.scatter(x,y,c='r',label='temperature-heartrate')
plt.legend()
plt.xlabel(u"heartrate")
plt.ylabel(u"temperature")
plt.show()

在这里插入图片描述
直方图和密度函数

#绘制体温直方图和密度函数
df=pd.DataFrame(L_tm)
df.hist(bins=20,alpha=0.5,color='r')  #体温的直方图
df.plot(kind = 'kde', secondary_y=True)  #体温的密度函数
plt.legend()
plt.show()

直方图
在这里插入图片描述
密度函数
在这里插入图片描述
由直方图和密度函数可知体温基本符合正态分布。

2.正态分布检验
正态分布检验的方法有很多种,下面简单介绍几种。

(1)Shapiro-Wilk test
方法:scipy.stats.shapiro(x)
官方文档:SciPy v1.1.0 Reference Guide
参数:x - 待检验数据
返回:W - 统计数;p-value - p值

print('统计数和P-Value',scipy.stats.shapiro(L_tm))
统计数和P-Value (0.9865770936012268, 0.233174666762352)

P=0.23>0.05

(2)scipy.stats.kstest
方法:scipy.stats.kstest (rvs, cdf, args = ( ), N = 20, alternative =‘two-sided’, mode =‘approx’)
官方文档:SciPy v0.14.0 Reference Guide
参数:rvs - 待检验数据,可以是字符串、数组;
cdf - 需要设置的检验,这里设置为 norm,也就是正态性检验;
alternative - 设置单双尾检验,默认为 two-sided
返回:W - 统计数;p-value - p值

u=np.mean(L_tm)
std=np.std(L_tm)
print(scipy.stats.kstest (L_tm, 'norm', args = (u,std)))
KstestResult(statistic=0.06385348427883908, pvalue=0.6645320172840661)

3. Anderson-Darling test
方法:scipy.stats.anderson (x, dist =‘norm’ )
该方法是由 scipy.stats.kstest 改进而来的,可以做正态分布、指数分布、Logistic 分布、Gumbel 分布等多种分布检验。默认参数为 norm,即正态性检验。
官方文档:SciPy v1.1.0 Reference Guide
参数:x - 待检验数据;dist - 设置需要检验的分布类型
返回:statistic - 统计数;critical_values - 评判值;significance_level - 显著性水平

print(scipy.stats.anderson (L_tm, dist ='norm' ))
AndersonResult(statistic=0.5201038826714353, critical_values=array([0.56 , 0.637, 0.765, 0.892, 1.061]), significance_level=array([15. , 10. ,  5. ,  2.5,  1. ]))

(4)scipy.stats.normaltest
方法:scipy.stats.normaltest (a, axis=0)
官方文档:SciPy v0.14.0 Reference Guide
参数:a - 待检验数据;axis - 可设置为整数或置空,如果设置为 none,则待检验数据被当作单独的数据集来进行检验。该值默认为 0,即从 0 轴开始逐行进行检验。
返回:k2 - s^2 + k^2,s 为 skewtest 返回的 z-score,k 为 kurtosistest 返回的 z-score,即标准化值;p-value - p值

print(scipy.stats.normaltest (L_tm, axis=0))
NormaltestResult(statistic=2.703801433319236, pvalue=0.2587479863488212)

pvalue=0.26>0.05,因此体温服从正态分布


http://chatgpt.dhexx.cn/article/UOlUj0lp.shtml

相关文章

matlab 正态输入信号,用matlab或者spss做正态检验(转载)

2.5 总体分布正态性检验 进行参数估计和假设检验时,通常总是假定总体服从正态分布,虽然在许多情况下这个假定是合理的,但是当要以此为前提进行重要的参数估计或假设检验,或者人们对它有较大怀疑的时候,就确有必要对这个…

SPSS -正态检验

1. 检验方法1:KS检验(数值检验) 原假设是服从指定分布。 如果P值>0.05,说明结果更倾向于接受原假,即服从指定分布。具体参见https://editor.csdn.net/md/?articleId109822028 根据P值判断是否服从正态分布&…

正态检验 (Normality Test)——常见方法汇总与简述

前 言 在科学研究中,往往需要对数据进行差异性检验,而常用的参数检验需要数据服从正态分布,因此在决定是否采用参数检验之前需要先对数据进行正态性检验。这一步在任何统计学软件中(如SPSS、SAS、Origion、GraghPad等&#xff09…

正态性检验方法汇总

本文主要对正态性检验方法做了汇总,重点阐述了常用的正态性检验方法的使用场景及其在 R 或 Python 中的实现。 0.概述 正态分布在统计学中有着极为重要的地位,它是 χ 2 \chi^2 χ2分布、 t t t分布、 F F F分布的基础,也是许多统计方法的理…

python语言程序设计(MOOC 嵩天)第五章 学习笔记(0214)

第五章 函数和代码的复用 5.1 函数的定义与使用 5.1.1 函数的理解和定义 函数是一段代码的表示&#xff1a; 函数是IPO的实现 函数是一段代码的封装 ①特定功能、可重用的语句组 ②功能的抽象 #作用&#xff1a;降低编程难度、代码复用 def <函数名> ( <变量> )…

Python-3.函数和代码复用

一、函数的定义与使用 使用保留字def定义函数,lambda 定义匿名函数可选参数(赋初值)、可变参数(*b)、名称传递保留字 return 可以返回任意多个结果保留字 global 声明使用全局变量,一些隐式规则1.1 函数的理解与定义 函数是一段代码的表示 函数是一段具有特定功能的、可重用的…

python123练习5: 函数和代码复用 (第5周)

实例7:七段数码管绘制 ‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬ 描述 这是"实例"题,与课上讲解实…

北京理工大学:《Python语言程序设计》详细笔记

第一章&#xff1a;程序设计基本方法 计算机与程序设计 计算机是根据指令操作数据的设备计算机发展参照摩尔定律&#xff0c;表现为指数形式 编译和解释 计算机执行源程序两种方式&#xff1a;编译和解释编译&#xff1a;将源代码一次性转换成目标代码的过程。执行编译过程…

Python语言程序设计(嵩天)-第5周-函数和代码复用

目录&#xff1a; 5.1 函数的定义与使用5.2 实例7: 七段数码管绘制5.3 代码复用与函数递归5.4模块4: PyInstaller库的使用5.5实例8: 科赫雪花小包裹 导学 前课复习 数字类型及操作&#xff1a; 整数类型的无限范围及4种进制表示浮点数类型的近似无限范围、小尾数及科学计数…

练习5: 函数和代码复用

练习5: 函数和代码复用 1 .1实例7&#xff1a;七段数码管绘制 描述 这是"实例"题&#xff0c;与课上讲解实例相同&#xff0c;请作答检验学习效果。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬…

《python语言程序设计》笔记

《python语言程序设计》笔记 第一章 程序设计基本方法1.1基本知识1.2计算机编程1.3数据类型温度转换1.4课后习题1.5python123习题与测试第二章2.1turtle库(海龟库)2.1.1空间坐标体系2.1.2turtle角度坐标体系2.1.3RGB色彩体系2.2turtle程序语法元素分析2.2.1库引用和 import2.…

中国大学MOOCPython语言程序设计(北京理工大学)第5-6周学习笔记和课后练习

中国大学MOOCPython语言程序设计&#xff08;北京理工大学&#xff09;第5-6周学习笔记和课后练习 第5周 函数与代码复用5.1 函数的定义与使用5.2 实例7: 七段数码管绘制5.3 代码复用与函数递归汉诺塔问题 5.4 模块4: PyInstaller库的使用5.5 实例8: 科赫雪花小包裹任意累积斐波…

全国计算机等级考试二级Python(2021年9月)备考笔记 第五天

文章目录 Python语言程序设计-嵩天老师(MOOC)听课笔记 第5周知识点一函数的定义函数的调用函数的调用过程参数个数可选参数传递可变参数传递参数传递的两种方式函数的返回值局部变量和全局变量lambda函数lambda函数的应用 实例 七段数码管绘制问题分析举一反三 知识点二代码复用…

Python语言程序设计笔记

例&#xff1a;获得用户输入数字N&#xff0c;计算并输出从N开始的5个质数&#xff0c;单行输出 首先&#xff1a;定义函数判断一个数是否是质数&#xff0c;return True/False&#xff0c;注意return True的格式&#xff0c;不在for循环体中&#xff0c;在函数体中(循环的高…

Python——函数和代码复用(模块4:PyInstaller库的使用)(实例:七段数码管绘制科赫雪花小包裹)

前言 本篇主要介绍函数和代码复用&#xff0c;以七段数码管绘制为例&#xff0c;介绍函数的定义和使用。以科赫雪花小包裹为例&#xff0c;介绍PyInstaller库的使用。 &#xff08;从本篇开始&#xff0c;出现的一些库中函数介绍以及部分简单代码都将以图片形式呈现&#xff0…

Python语言程序设计第五章

第五章 函数和代码复用 方法论 -Python基本代码抽象即函数的使用方法 实践能力 -学会编写带有函数并复用代码的程度 5.1 函数的定义与使用 1、函数的理解与定义 函数是一段代码的表示 -函数是一段具有特定功能的、可重用的语句组 -函数是一种功能的抽象&#xff0c;一般函数…

创意画板延伸内容

在完成了创意画板的基础功能实现后&#xff0c;我们就可以通过画板来绘制一些有趣的图形了 1.平面山脉图 效果图如上 山脉图是由一个个山峰构成的&#xff0c;所以先绘制一个山峰 而山峰的绘制算法是&#xff1a;先确定两个点A B&#xff0c;然后获取A B的中间点P&#xff0…

Java第六课——画图板

Java第六课——画图板 这节课画一个画图板&#xff0c;可以画线画圆&#xff0c;还可以通过递归画出好看的图案如&#xff1a;谢尔宾斯基三角形&#xff0c;康托尔方形集&#xff0c;甚至立体图门格海绵。 首先创建一个窗体。定义一个类和一个方法。 public class Draw{publ…

分形理论中的分维解析

最近打算利用一段时间好好学习一下分形理论&#xff0c;也写一系列博客记录下自己的学习归纳情况。下面是这部分文章的目录&#xff1a; 一、分形理论的历史过程 二、分形理论的基础概念 三、分形理论的分维解析 四、分形理论的Hausdorff维数 五、分形理论的盒维数 六、分形理论…

python绘制n阶科赫曲线线段_分形几何中科赫雪花的绘制

目录分形几何在自然界中广泛存在(康托尔集、谢尔滨斯基三角形、门格海绵、龙形曲线、科赫曲线...),实际上分形几何是一种迭代的几何图形。本文主要讨论科赫曲线。 科赫曲线的绘制: import turtle def koch(size,n):#绘制科赫曲线含俩个参数,大小和阶数 if n == 0:#基线情…