Python 假设检验实例 | 学习笔记

简介: 快速学习 Python 假设检验实例

开发者学堂课程【人工智能必备基础:概率论与数理统计:Python 假设检验实例】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/545/detail/7452


Python 假设检验实例

内容介绍

一. 数据集下载

二. 导入数据

三. 画出分布图

四. 正态检验

 

一.数据集下载

数据集下载地址: https://ww2.amstat.org/publications/ise/ise data archive.htm

数据集描述: http://ww 2.amstat.org/publications/ise/datase ts/normtem p.txt

包括 130 条记录,我们主要利用体温和性别来进行实验

 

二.导入数据

import pandas as pd

import pylab

import math

import numpy as np

import matplotlib.pyplot as plt%matplotlib inline

import numpy as np

from scipy.stats import norm

import scipy.stats

import warnings

warnings.filterwarnings("ignore")

df=pd.read csv('normtemp.txt’,sep=’',names = ['Temperature', Gender','Heart Rate'])

df.describe()

image.png

df.head()

image.png

(所导入的数据)

 

三.画出分布图

observed temperatures=df['Temperature'].sort_values()//找到 Temperature 列并排序

bin_val = np.arange(start= observed temperatures.min(), stop= observed temperatures.max(), step =.05)

mu, std = np. mean(observed temperatures),np.std(observed temperatures)//计算均值和标准差

p=norm.pdf(observedtemperatures, mu, std)//画出正态分布图

plt.hist(observed temperatures,bins =bin_val, normed=True, stacked=True)

plt.plot(observed temperatures,p,color='red")

plt.xticks(np.arange(95.75,101.25,0.25),rotation=90) plt.xlabel('Human BodyrTemperature Distributions') plt.xlabel(human body temperature)

plt.show()

print('Average (Mu):'+ str(mu)+’/’'Standard Deviation:' +str(s td))

所得正态分布图

image.png

 

四.正态检验

x=observed temperatures

#Shapiro-Wilk Test: https://en.wikipedia.org/wiki/Shapiro%E2%80%93Wilk test shapiro test, shapirop=scipy.statsshapiro(x)

print("Shapiro-Wilk Stat:",shapiro test,"Shapiro-Wilk p-Value:", shapiro p)

k2,p=scipystats.normaltest(observed_temperatures) print(p:,p)

#Another method to determining normality is through Quantile-Quantile Plots scipy.stats.probplot(observed temperatures,dist=norm,plot=pylab)

pylab.show()

两种方法所得 p 值 Shapiro-Wilk Stat:0.9865769743919373 Shapiro-Wilk p-Value: 02331680953502655 p:0258747986349

image.png

蓝点和红线基本重合

三种方法都可以得出所导入的数据符合正态分布

画出 ecdf

def ecdf(data):

#Compute ECDF

n=len(data)

x=np.sort(data)

y=np.arange(1,n+1)/n

return x,y

# Compute empirical mean and standard deviation

# Number of samples

n= len(df['Temperature'])

# Sample mean

mu=np.mean(df['Temperature'])

# Sample standard deviation

std=npstd(df[Temperature'])

print('Mean temperature: ', mu, 'with standard deviation of +/-', std)

#Random sampling of the data based off of the mean of the data.

normalized sample=np.random.normal(mu, std,size=10000) x_temperature, y_temperature=ecdf(df['Temperature']) normalized_x,normalizedy=ecdf(normalized_sample)

image.png

黄色的点和蓝色的线基本吻合也可以确定所导入数据符合正态分布

做出假设检验

1.有学者提出 98.6 是人类的平均体温,我们该这样认为吗?

在这里我们选择 t 检验,因为我们只能计算样本的标准差

from scipy import stats

CW_mu=98.6

stats.ttest_lsamp(df['Temperature'],Cw_mu, axis=0)Ttest_IsampResult(statistic=-5.4548232923640771,pvalue=2.410632041561008le-07)

进行 t 检验

T-Stat-5.454p-value 近乎 0 了.我们该拒绝这样的假设

2.男性和女性的体温有明显差异吗

两独立样本 t 检验 HO :没有明显差异 H1 :有明显差异

female_temp=df.Temperature[df.Gender == 2] male_temp=df.Temperature[dfGender == 1]

mean female_temp=np.mean(femaletemp)

mean male temp=npmean(male_temp)

print('Average female body temperature='+str(mean female_temp))

print( Average male body temperature='+str(mean male temp))

# Compute independent t-test

stats.ttest_ind(female_temp,male_temp,axis=0)//传入两列数据

Average female body temperature=9839384615384616 Average male body temperature = 981046153846154

Ttest_indResult(statistic=2.2854345381654984, pvalue=002393188312240236)

由于 P 值 =0024<005,我们需要拒绝原假设,我们有 %95 的自信认为是有差异的!

相关文章
|
7月前
|
算法 Python
Apriori算法的Python实例演示
经过运行,你会看到一些集合出现,每个集合的支持度也会给出。这些集合就是你想要的,经常一起被购买的商品组合。不要忘记,`min_support`参数将决定频繁项集的数量和大小,你可以根据自己的需要进行更改。
304 18
|
11月前
|
前端开发 搜索推荐 编译器
【01】python开发之实例开发讲解-如何获取影视网站中经过保护后的视频-用python如何下载无法下载的视频资源含m3u8-python插件之dlp-举例几种-详解优雅草央千澈
【01】python开发之实例开发讲解-如何获取影视网站中经过保护后的视频-用python如何下载无法下载的视频资源含m3u8-python插件之dlp-举例几种-详解优雅草央千澈
627 34
【01】python开发之实例开发讲解-如何获取影视网站中经过保护后的视频-用python如何下载无法下载的视频资源含m3u8-python插件之dlp-举例几种-详解优雅草央千澈
|
11月前
|
人工智能 编译器 Python
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
269 0
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
1214 5
|
Python
SciPy 教程 之 Scipy 显著性检验 7
SciPy 教程之 Scipy 显著性检验第7部分,介绍显著性检验的基本概念及其在 SciPy 中的应用。显著性检验用于评估样本数据与假设之间的差异是否由随机因素引起。SciPy 的 `scipy.stats` 模块提供了执行显著性检验的功能,包括 KS 检验等方法,用于检测数据是否符合特定分布。示例代码展示了如何使用 KS 检验验证一组数据是否符合正态分布。
121 2
|
Python
SciPy 教程 之 Scipy 显著性检验 9
SciPy 教程之 Scipy 显著性检验第9部分,介绍了显著性检验的基本概念、作用及原理,通过样本信息判断假设是否成立。着重讲解了使用scipy.stats模块进行显著性检验的方法,包括正态性检验中的偏度和峰度计算,以及如何利用normaltest()函数评估数据是否符合正态分布。示例代码展示了如何计算一组随机数的偏度和峰度。
143 1
|
BI Python
SciPy 教程 之 Scipy 显著性检验 8
本教程介绍SciPy中显著性检验的应用,包括如何利用scipy.stats模块进行显著性检验,以判断样本与总体假设间的差异是否显著。通过示例代码展示了如何使用describe()函数获取数组的统计描述信息,如观测次数、最小最大值、均值、方差等。
154 1
|
Python
SciPy 教程 之 Scipy 显著性检验 3
本教程介绍Scipy显著性检验,包括其基本概念、原理及应用。显著性检验用于判断样本与总体假设间的差异是否显著,是统计学中的重要工具。Scipy通过`scipy.stats`模块提供了相关功能,支持双边检验等方法。
153 1
|
Python
SciPy 教程 之 Scipy 显著性检验 1
本教程介绍Scipy显著性检验,包括统计假设、零假设和备择假设等概念,以及如何使用scipy.stats模块进行显著性检验,以判断样本与总体假设间是否存在显著差异。
144 0
|
测试技术 API 数据安全/隐私保护
Python连接到Jira实例、登录、查询、修改和创建bug
通过使用Python和Jira的REST API,可以方便地连接到Jira实例并进行各种操作,包括查询、修改和创建Bug。`jira`库提供了简洁的接口,使得这些操作变得简单易行。无论是自动化测试还是开发工作流的集成,这些方法都可以极大地提高效率和准确性。希望通过本文的介绍,您能够更好地理解和应用这些技术。
1204 0

推荐镜像

更多