结合实例,直观理解正态分布、卡方分布、t分布、F分布和对应的Z检验、卡方检验、t检验、F检验

news2024/9/22 1:37:29

1 正态分布与Z检验

1.1 理论

Z检验的目的是为了验证:已知一个总体服从均值\mu,方差\sigma的正态分布,现在有一些样本,这些样本所代表的总体的均值是否为\mu

则构建一个统计量Z,

Z=\frac{\bar{X}-\mu}{\sigma/\sqrt{n}} (1)

式中,\bar{X}为样本均值,\mu为总体均值,\sigma为总体方差,n为样本数量。

若零假设(null hypothesis)成立,即:样本所代表的总体的均值为\mu,则Z服从N(0, 1)。换一种说法就是统计量Z落在下图所示的标准正态分布概率密度函数的大概率区间,也就是白色区域所对应的横轴范围。

 若Z落在阴影范围所对应的横轴区域,则假设不成立,阴影范围的选取与给定的显著性水平有关。

1.2 应用

工厂老板宣称生产的零件符合正态分布N(\mu, \sigma),质检部门抽检了100个样本,那么这些样本所代表的全部零件的均值,是否跟老板所说的正态分布均值一致。这个问题就可以通过Z检验验证,计算样本均值,将样本均值和样本数量代入式(1),看Z值落在横轴的什么区域,白色区域检验合格,黑色区域检验不合格。

2 卡方分布和卡方检验

2.1 自由度的概念

在讲卡方分布前,先要理解样本的自由度。举例说明:一个列表中有10个数字,我告诉你,这10个数字你可以随便写,那么这个列表中10个数字都是“自由的”,有10个自由度。如果我告诉你,这个列表的平均值是5,那么你前9个值你可以随便写,第10个数是固定的,因为必须满足我给定的平均值,这样一来,这个列表的自由度就是9了。

上面是一维的情况,如果推广到二维,看下面这个例子。

化妆不化妆总数
100
100
总数90110

你调查了男生、女生各100人的化妆情况,上面四个空着的格子里,你只能随便写一个,剩下的三个必须根据总数来计算,所以这个例子中,四个空着的格子是4个样本,但是只有一个样本是“自由”的,所以自由度为1。自由度的计算公式:(行数 - 1)*(列数 - 1)

 更加详细的自由度解释,参见这边文章:用可视化思维解读统计自由度 - 简书

2.2 卡方分布

卡方分布定义如下

 2.3 卡方检验

卡方检验的目的是为了验证。两个事物之间是否有关系,还是拿自由度那里提到的男女化妆比例的例子来讲。现在想研究男女性别和是否化妆,这两件事是否相关。

假定不相关(这个就是零假设),也就是说,化妆和不化妆的人群中,男女所占的比例是相同的。在零假设中,样本的标准值就是下面这样:

化妆不化妆总数
4555100
4555100
总数90110

 随机抽样的样本结果如下

化妆不化妆总数
X1X2100
X3X4100
总数90110

 X1、X2、X3、X4为4个抽样样本,其数值分别为5、95、85、15。

构建如下式所示的一个统计量

\chi^{2}=\sum_{i=1}^{k}\frac{(X_{i}-T_{i})^{2}}{T_{i}}  (2)

式中,X_{i} 表示第i个样本,T_{i} 表示第i个样本所对应的零假设值,k为样本数量

如果零假设成立,这个统计量服从自由度为n的卡方分布,化妆问题中,自由度为1,即自由度为1的卡方分布。

把样本数据代入式(2),发现其值落在了卡方分布的概率密度函数的小概率区间(与Z检验的原理类似),所以拒绝原假设。

2.4 卡方检验与卡方分布的关系

有读者看到这里会有疑问,为什么式(2)所构建的统计量服从卡方分布?

因为X_{i} 服从正态分布,\frac{X_{i}-T_i}{\sqrt{T_{i}}}也服从正态分布(正态分布的样本减去常数再除一个常数还服从正态分布),所以那个统计量就服从卡方分布啦,就是卡方分布的定义嘛!

这里再说明一个问题,为什么X_{i} 是服从正态分布的?

原假设中男性化妆和不化妆啊的概率为50%,那么100个男性中化妆的男性数量就满足正态分布了,就像扔硬币的正反面,下面的python代码直观给出了图像

import random
import matplotlib.pyplot as plt
import pandas as pd


plt.rcParams['font.sans-serif'] = ['SimHei']  # 防止中文标签乱码,还有通过导入字体文件的方法
plt.rcParams['axes.unicode_minus'] = False


def toss():
    # 1正面朝上
    return random.randint(0, 1)


def toss_100_times():
    # 掷100次硬币正面朝上的次数
    times = 0
    for i in range(100):
        times += toss()

    return times


if __name__ == "__main__":
    result = []
    for i in range(1000):
        result.append(toss_100_times())

    count = pd.value_counts(result)
    count = pd.DataFrame(count)
    count = count.sort_index(ascending=True)

    labels = list(count.index)
    data = list(count.iloc[:, 0])

    plt.bar(range(len(data)), data)
    plt.xticks(range(len(data)), labels)
    plt.xlabel("100次投掷中正面朝上的硬币数")
    plt.ylabel("频次")
    plt.show()

    print("done")

 

3 t分布和t检验

3.1 t分布

 3.2 t检验

t检验一方面可以理解为Z检验的扩展。Z检验中,要求总体方差已知,但是现实中往往未知。这种情况下,通过样本方差,来构造符合t分布的统计量,如式(3)所示,进行t检验。

t=\frac{\bar{x}-\mu}{s/\sqrt{n}}

式中,\bar{x}为样本均值,\mu为总体均值,s为样本方差,n为样本数量。

为什么这个统计量符合t分布的定义?

  详细的证明参见t分布是干什么用,t分布与t检验有什么不同,t检验到底在检验什么东西? - 知乎

 t检验还有配对t检验、两样本t检验,这里不详述了。

4 F分布与F检验

4.1 F分布

4.2 F检验

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

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

相关文章

2023第10届生物发酵展3月30-4月1号山东济南开展,参观路线来了

2023第10届生物发酵展3月30-4月1号山东济南开展,参观路线来了!展会时间:2023年3月30日-4月1日展馆地址:山东国际会展中心(济南市槐荫区日照路1号)展馆:4号馆、5号馆BIO CHINA生物发酵展&#xf…

Python|每日一练|栈|递归|散列表|数组|回溯|单选记录:重排链表|编写Python程序实现素数处理的功能| 全排列

1、重排链表(栈,递归) 给定一个单链表 L 的头节点 head ,单链表 L 表示为: L0 → L1 → … → Ln-1 → Ln 请将其重新排列后变为: L0 → Ln → L1 → Ln-1 → L2 → Ln-2 → … 不能只是单纯的改变节点内…

vue中debug调试node_modules的代码

适用于想调试webpack-dev-server(第三方模块)里的代码,在代码里打印console.log无效的情况。 我用的idea,配置如下: 一、idea配置vue项目启动 1、 主入口js配置:node_modules\vue\cli-service\bin\vue-c…

wine学习笔记

目前 wine 版本为较为稳定的 8.0 版本,本文也是重点围绕 wine 8.0 安装、使用以及 wine 工具介绍等方面进行了学习和整理。 一、安装 wine 1. 如果你使用的是 64 位系统,需要先开启 32 bit 架构支持: $ sudo dpkg --add-architecture i386…

【Kubernetes】第四篇 - k8s 集群环境搭建

一,前言 前两篇,购买了 3 台阿里云服务器并完成了 ci-server 构建服务器的环境安装与配置; 三台服务器规划如下: 服务配置内网IP外网IP说明ci-server2c4g172.17.178.104182.92.4.158Jenkins Nexus Dockerk8s-master2c4g172.1…

Visual Studio 高级调试-Dump分析

Dumpdump指转储,一般用来创建进程快照。它可以在不停止应用的情况下,直接将模块列表、线程列表、堆栈信息、异常信息、句柄信息等所有内存信息保存下来,帮助开发者分析生产环境问题等。这篇博客主要介绍dotnet-dump的使用以及如何在Visual St…

SpringBoot2.x实战专题——SpringBoot2 多配置文件【开发环境、测试环境、生产环境】(内含教学视频+源代码)

SpringBoot2.x实战专题——SpringBoot2 多配置文件【开发环境、测试环境、生产环境】(内含教学视频源代码) 教学视频源代码下载链接地址:https://download.csdn.net/download/weixin_46411355/87463492 目录SpringBoot2.x实战专题——SpringBoot2 多配置文件【开发…

【MySQL】Java连接MySQL数据库(封装版只需会MySQL)

一、准备普通项目如果创建的是普通的Java项目,我们需要去maven仓库下载jdbc驱动包然导入项目中就能使用,具体步骤详见MySQL数据库之Java中如何使用数据库【JDBC编程】maven项目如果创建的项目是maven项目,我们只需在pom.xml文件里引入一组依赖…

适合初学者的超详细实用调试技巧(上)

我们日常写代码的时候,常常会遇到bug的情况,这个时候像我这样的初学者就会像无头苍蝇一样这里改改那里删删,为了根除这种情况,我最近系统学习了调试的技巧,我想要十分详细地讲解,所以大概不会一篇文章写完。…

Django入门与构建

文章目录Django入门与构建Django介绍conda切换环境(看需要)安装虚拟环境基于 virtualenv基于venvDjango项目构建Django项目安装:创建应用Django运行测试总结Django入门与构建 官网:https://www.djangoproject.com/ 博客:https://www.liujian…

Spring的IOC,注入问题,包括自动注入的条件和前提

1. 前言 Spring的核心技术IOC(Intorol of Converse控制反转)的实现途径是DI(dependency Insert依赖注入)。而依赖注入(DI)的实现方式又有两种,xml方式和注解方式。如下图所示: 什么是属性注入 属性注入就是在实例化对象时,同时向对象中的…

小米12s ultra,索尼xperia1 iv,数码相机 拍照对比

首先说明所有的测试结果和拍摄数据我放到百度网盘了(地址在结尾) 为什么做这个测试 我一直想知道现在的手机和相机差距有多大,到底差在哪儿? 先说结论: 1.1英寸的手机cmos(2022年) 6年前(2016)的入门款相机(m43画幅) 2.手机 不能换镜头,只能在特定的拍摄距离才能发挥出全…

网络安全-域名相关收集

网络安全-域名相关收集 前言 一,我也是初学者记录的笔记 二,可能有错误的地方,请谨慎 三,欢迎各路大神指教 四,任何文章仅作为学习使用 五,学习网络安全知识请勿适用于违法行为 学习网络安全知识请勿适用于…

【C#基础】C# 常用语句讲解

序号系列文章3【C#基础】C# 数据类型总结4【C#基础】C# 变量和常量的使用5【C#基础】C# 运算符总结文章目录前言语句概念1,迭代语句1.1 for 语句1.2 foreach 语句1.3 while 语句1.4 do 语句2,选择语句2.1,if 语句2.2,else 语句2.3…

Android 基础知识4-2.9 FrameLayout(帧布局)详解

一、FrameLayout(帧布局)概述 FrameLayout又称作帧布局,它相比于LinearLayout和RelativeLayout要简单很多,因为它的应用场景也少了很多。这种布局没有方便的定位方式,所有的控件都会默认摆放在布局的左上角。 示例1代…

算法队列与栈—Java版

队列、双向队列、栈 — ArrayDeque 使用双向队列ArrayDeque可以完成以上三种数据结构。队列的操作包括:入队、出队、返回队首元素、返回队尾元素、删除队首元素、删除队尾元素、判断空、返回队列长度。双向队列包括:首尾入队、首尾出队、返回首尾元素、…

【挣值分析】

名称解释 拼写解释PV计划费用,预估预算EV挣值,实际预估预算AC实际费用,实际花费CV成本偏差 (EV - AC)SV进度偏差(EV - PV)CPI成本绩效指数 (EV / AC)SPI进度绩效指数 &a…

【Kubernetes】【十】Pod详解 Pod介绍与配置

第五章 Pod详解 本章节将详细介绍Pod资源的各种配置(yaml)和原理。 Pod介绍 Pod结构 每个Pod中都可以包含一个或者多个容器,这些容器可以分为两类: 用户程序所在的容器,数量可多可少 Pause容器,这是每个…

Mybatis(4)之跟着老杜做一个简单的银行转账会话

这是个MVC项目,我不一定可以完整的实现这个项目,但力求把这个复现出来,尽量的复现细节。 第一步:创建数据库 表 创建表如下: 我们使用 int 是为了方便 然后采用 demcial,精确度较高 添加两个用户 然后…

JVM学习笔记二:运行时数据区概述及JVM线程

目录 概述 JVM各区域划分 JVM线程 线程的内存空间 JVM系统线程 概述 运行时数据区是JVM非常重要的组成部分,这一篇主要介绍运行时数据区各个区域的划分,以及JVM中的线程。 JVM各区域划分 学习JVM,必须牢记下图各个区域的分类&#xff…