数据挖掘基础之统计学的假设检验实验

本博客根据非常好的excel资料而编写,使用python语言操作,预计使用一周的时间更新完成。需要《非常好的excel资料》word文档,欢迎发邮件给1982500361@qq.com,免费发放。这篇博客对应《非常好的excel资料》里的第3章节。

1.假设检验实验

1.1 单个正态总体均值μ的检验

1.1.1 方差已知时μ的U检验

①题目及数据
在这里插入图片描述
外地一良种作物,其1000m2产量(单位:kg)服从N(800, 〖50〗^2),引入本地试种,收获时任取5块地,其1000m2产量分别是800,850,780,900,820(kg),假定引种后1000m2产量X也服从正态分布,试问::
(1)若方差未变,本地平均产量μ与原产地的平均产量μ0=800kg 有无显著变化
(2)本地平均产量μ是否比原产地的平均产量μ0=800kg高.
(3)本地平均产量μ是否比原产地的平均产量μ0=800kg低.
U检验值:(样本平均亩产量-原产地总平均产量)/(总方差/样本数)
可以看出U检验值小于临界值(双侧),所以本地平均产量μ是否比原产地的平均产量μ0=800kg无显著变化
U检验值小于临界值(右侧),所以本地平均产量μ是否比原产地的平均产量μ0=800kg高
U检验值大于临界值(右侧),所以本地平均产量μ是否比原产地的平均产量μ0=800kg低
② 对于(1)问python代码如下:

def VarisknforU(a,m1,mn,stdn,n):
    u=(m1-mn)/(stdn/np.sqrt(n))
    uall=stats.norm.ppf(1-a/2) 
    print('u的检验值:',u)
    print('临界值(双侧)',uall)
    if(u<uall):
        print('无显著变化')
    else:
        print('有显著变化')

结果图
在这里插入图片描述
④ 对于(2)问python代码如下:

def VarisknforUright(a,m1,mn,stdn,n):
    u=(m1-mn)/(stdn/np.sqrt(n))
    uall=stats.norm.ppf(1-a) 
    print('u的检验值:',u)
    print('临界值(右侧)',uall)
    if(u<uall):
        print('高于')
    else:
        print('不高于')

结果图
在这里插入图片描述
⑤对于(3)问python代码:

def VarisknforUleft(a,m1,mn,stdn,n):
    u=(m1-mn)/(stdn/np.sqrt(n))
    uall=stats.norm.ppf(a) 
    print('u的检验值:',u)
    print('临界值(左侧)',uall)
    if(u<uall):
        print('低于')
    else:
        print('不低于')

结果图
在这里插入图片描述

1.1.2 方差未知时t的U检验

①题目:样本的数据为在这里插入图片描述 ,该引擎制造商宣称引擎的平均速度高于250 km/h,请问样本数据在显著性水平为0.025时,是否和他的声明抵触。

② python代码如下

def Varisnoforright(a,m1,mn,stdn,n):
    u=(m1-mn)/(stdn/np.sqrt(n))
    uall=t.ppf(1-a,n-1)
    print('检验值:',u)
    print('临界值',uall)
    if(u<uall):
        print('高于')
    else:
        print('不高于')

结果图
在这里插入图片描述

1.2 两个正态总体参数的假设检验

1.21 方差相等但未知时,求u1-u2的检验

①题目:判别磷肥对玉米产量有无显著影响
实验假设:H_0:u_1=u_2 ,u_(1 )>u_2
因为3.034>1.73 ,所以拒绝原假设,即有显著影响
②python代码

ins321=pd.read_csv('D:\ins321.csv',encoding= 'gbk')
a = ins321['实验区1']
b = ins321['实验区2']
ttest_ind(a,b)

结果图
在这里插入图片描述
因为0.0071386<0.05,所以拒绝原假设,即均值差异不显著

1.22 方差1和2已知u_1-u_2的U检测

python代码

import pandas as pd
ins322=pd.read_csv('D:\ins322.csv',encoding='gbk',dtype={'code':int})
ins322
ins3221=ins322['第一组']
ins3222 = ins322['第二组']
m2 = ins3222.mean()
m1 = ins3221.mean()
def U_test3(*args):
    import numpy as np
    from scipy import stats 
    tails, mean1, var1, n1, mean2, var2, n2 = [i for i in args]
    segma_combine = np.sqrt(var1 / n1 + var2 / n2)  # 需要先计算x1-x2的均方,即合并均方
    u = abs(mean1 - mean2) / segma_combine
    if tails == 2:
        p = (1 - stats.norm.cdf(u, 0, 1)) * 2
    if tails == 1:
        p = 1 - stats.norm.cdf(u, 0, 1)
    if p < 0.01:
        print('extremely significant!')
    elif p < 0.05:
        print('significant!')
    else:
        print('unsignificant!')
    print('u_value: %.6f,p_value: %.6f' % (u, p))
    return [u, p]

执行代码

U_test3(2, m1,57 , 10, m2, 53, 10)

结果图
在这里插入图片描述

1.23 两个正态总体的方差齐性的F检验

在这里插入图片描述
0.144119<5.118597,所以拒绝原假设,即方差不齐
python操作如下
在这里插入图片描述
0.424569>0.05,所以拒绝原假设

1.3 备注

1、原假设(又称零假设),是假定总体参数未发生变化,备择假设(又称对立假设),是假定总体参数发生变化。
2、因为原假设假定总体参数未发生变化,而备择假设假定总体参数发生了变化,所以,“=”总体在原假设上
3、如果备择假设为总体发生了特定方向的变化,则备择假设去”=”,为双侧方向,假设检验为双侧检验(又称双尾检验);如果备择假设为总体参数沿某一方向发生了变化,则备择假设含有”>”或“<”符号,备择假设为单向,假设检验为单侧检验(又称单尾检验),单侧检验又可进一步分为左侧单尾检验和右侧单尾检验。根据备择假设的表述,假设检验的方向可以区分为:
  (a) 备择假设 H1:θ=θ0为双侧假设,相应的假设检验称为双侧检验。
  (b) 备择假设 H1:θ<θ0为左向假设,相应的假设检验称为左侧检验。
© 备择假设 H1:θ>θ0 为右侧假设,相应的假设检验称为右侧检验。
4、备择假设是我们想真正检验的假设

上一篇博客:区间估计的练习题
下一篇博客:拟合优度检验

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值