知识点:假设检验
本周是统计学学习小组-第二期的第十周,我们这周的学习内容是【假设检验】,涉及到的二级知识点有两个,分别是:
1、基本概念:原假设、备择假设、两类错误、显著性水平、P值、单侧检验、双侧检验
2、假设检验的分类:一个总体参数的检验、总体均值的检验、总体比例的检验、总体方差的检验;两个总体参数的检验、两个总体均值之差的检验,两个总体比例之差的检验,两个总体方差比的检验
参考章节:统计学(贾俊平第七版)第八章
整理部分
原假设:检验的参数和假设的值一样
备选假设:检验的参数和假设的值不一样,与原假设互斥
两类错误(直接放图):
例题:由统计资料得知,1989年某地新生儿的平均体重为3 190克,现从1990年的新生儿中随机抽取100个,测得其平均体重为3210克,问1990年的新生儿与1989年相比,体重有无显著差异?
显著性水平:显著性水平是估计总体参数落在某一区间内,可能犯错误的概率,用α表示。α表示原假设为真时,拒绝原假设的概率。1-α 为置信度或置信水平,其表明了区间估计的可靠性 。
显著性与P值的区别:https://zhidao.baidu.com/question/433851099.html
1、定义不同
显著性水平:显著性水平是假设检验中的一个概念,是指当原假设为正确时人们却把它拒绝了的概率或风险。它是公认的小概率事件的概率值,必须在每一次统计检验之前确定,通常取α=0.05或α=0.01。这表明,当作出接受原假设的决定时,其正确的可能性(概率)为95%或99%。
P值:p值是指在一个概率模型中,统计摘要(如两组样本均值差)与实际观测数据相同,或甚至更大这一事件发生的概率。换言之,是检验假设零假设成立或表现更严重的可能性。p值若与选定显著性水平(0.05或0.01)相比更小,则零假设会被否定而不可接受。 然而这并不直接表明原假设正确。p值是一个服从正态分布的随机变量,在实际使用中因样本等各种因素存在不确定性。产生的结果可能会带来争议。
2、理解不同
显著性水平:显著性水平是在进行假设检验时事先确定一个可允许的作为判断界限的小概率标准。检验中,依据显著性水平大小把概率划分为二个区间,小于给定标准的概率区间称为拒绝区间,大于这个标准则为接受区间。 事件属于接受区间,原假设成立而无显著性差异;事件属于拒绝区间,拒绝原假设而认为有显著性差异。
P值:P值(P value)就是当原假设为真时所得到的样本观察结果或更极端结果出现的概率。如果P值很小,说明原假设情况的发生的概率很小,而如果出现了,根据小概率原理,我们就有理由拒绝原假设,P值越小,我们拒绝原假设的理由越充分。
总之,P值越小,表明结果越显著。但是检验的结果究竟是“显著的”、“中度显著的”还是“高度显著的”需要我们自己根据P值的大小和实际问题来解决。
3、结论不同
显著性水平是人为规定的(一般会取0.05,亦有0.01等其他值)。P值是根据实验结果计算得出的。两者并不一样。通过将计算出的P值和显著性水平比较可以确定是否应拒绝原假设,即假设检验。
记录实验的论文中似乎只给出实验数据算出的P值,显著性水平取0.05还是多少会让读者自行决定,即让读者去判断此次实验数据的P值是否足以得出拒绝原假设的结论。
实践部分:
本周是统计学学习小组-第二期的第十一周,我们这周的学习内容是假设检验实践,主要是使用python对我们上周学习的内容进行实践~ 数据链接:https://pan.baidu.com/s/1t4SKF6U2yyjT365FaE692A*
# -*- coding: utf-8 -*-
"""
Created on Wed Jan 15 18:56:41 2020
@author: sen
"""
import pandas as pd
import numpy as np
import os
from scipy import stats
os.chdir('F://Desktop//统计学第二期//第十周,第十一周')
data = pd.read_csv('test.csv')
'''
Gender:性别,1为男性,2为女性 ;Temperature:体温;HeartRate:心率;
'''
#数据探索
data.Temperature.describe()
# 1、人体体温的总体均值是否为98.6华氏度?
#mean 98.249231
# 2、人体的温度是否服从正态分布?
ks_test = stats.kstest(data['Temperature'], 'norm')
print('ks_test:',ks_test)
'''scipy.stats.kstest(K-S检验)
原假设:数据符合正态分布
输入数据,检验方法norm 正态分布
输出结果中第一个为统计量,
第二个为P值(注:统计量越接近0就越表明数据和标准正态分布拟合的越好,
如果P值大于显著性水平,通常是0.05,接受原假设,则判断样本的总体服从正态分布)
'''
#ks_test: KstestResult(statistic=1.0, pvalue=0.0)
#不是正态分布
mean = data.Temperature.mean()
std = data.Temperature.std()
print('均值为:%.2f,标准差为:%.2f' % (mean,std))
print('------')
# 计算均值,标准差
data_2 = data.Temperature
data_3=data_2.sort_values() # 重新排序
print(data_3.head())
data_3 = data_3.reset_index(drop = False) # 重新排序后,更新index
del data_3['index']
import matplotlib.pyplot as plt
fig = plt.figure(figsize = (10,6))
ax1 = fig.add_subplot(2,1,1) # 创建子图1
ax1.scatter(data_2.index, data_2.values)
plt.grid()
# 绘制数据分布图
#data_3.hist(alpha = 0.5)不同颜色
fig = plt.figure(figsize = (10,6))
ax2 = fig.add_subplot(2,1,2) # 创建子图2
data_3.hist(bins=30,ax = ax2)
#bins : integer or array_like, optional 这个参数指定bin(箱子)的个数
#这个例子中也就是横轴的数据个数
data_3.plot(kind = 'kde', secondary_y=True,ax = ax2)
plt.grid()
#3、人体体温中存在的异常数据是哪些?
# 箱线图看异常值
fig,axes = plt.subplots(1,3)
color = dict(boxes='DarkGreen', whiskers='DarkOrange',
medians='DarkBlue', caps='Red')
# boxes表示箱体,whisker表示触须线
# medians表示中位数,caps表示最大与最小值界限
data.plot(kind='box',ax=axes,subplots=True,title='Different boxplots',color=color,sym='r+')
# sym参数表示异常值标记的方式
axes[0].set_ylabel('values of Temperature')
axes[1].set_ylabel('values of gender')
axes[2].set_ylabel('values of HeartRate')
fig.subplots_adjust(wspace=1,hspace=1) # 调整子图之间的间距
fig.savefig('p2.png') # 将绘制的图片保存为p2.png
#4、男女体温是否存在明显差异?
data.boxplot(column='Temperature',by='Gender')
#5、体温与心率间的相关性(强?弱?中等?)
a = [random.randint(0, 100) for a in range(20)]
b = [random.randint(0, 100) for a in range(20)]
col_n = ['Temperature','HeartRate']
ab = pd.DataFrame(data,columns = col_n)
计算相关系数
ab.corr()
Temperature HeartRate
Temperature 1.000000 0.253656
HeartRate 0.253656 1.000000
#计算协方差
print(data.Temperature.cov(data.HeartRate))
1.3133810375670798
弱相关