第一节 假设检验原理及python实现

假设检验原理:https://baike.baidu.com/item/%E5%81%87%E8%AE%BE%E6%A3%80%E9%AA%8C/638320

原假设H0:一般是我们不希望成立的情况

备择假设H1:意义在于当原假设被拒绝时供采用

检验水准:常用α表示,指检验假设H0本来成立,却拒绝H0的概率大小,常用α=0.05

 

单样本t检验

1 import pandas as pd
2 from statsmodels.stats import weightstats as ws
3 
4 ccss = pd.read_excel(r"E:\360Downloads\Software\tableau\CCSS_Sample.xlsx")
5 
6 des = ws.DescrStatsW(ccss.query("s0=='广州' & time==200704").index1)
des.mean  # 计算均数
97.16472701710536
des.tconfint_mean()  # 计算均数的95%可信区间
(93.03590418536487, 101.29354984884586)
des.ttest_mean(100)  # 计算单样本双侧t检验,-1.3625667518512996 t值, 0.17611075148299993 p值,99 自由度
(-1.3625667518512996, 0.17611075148299993, 99.0)
des.ttest_mean(100, 'smaller')  # 单样本t检验,需要指定比均值大还是小
(-1.3625667518512996, 0.08805537574149996, 99.0)

两样本t检验
# 两样本t检验,即两样本是否来自同一个总体
d1 = ws.DescrStatsW(ccss.index1[ccss.s7=='未婚'])
d2 = ws.DescrStatsW(ccss.index1[ccss.s7=='已婚'])
comp = ws.CompareMeans(d1, d2)
comp.ttest_ind()
(2.4052613760094634, 0.01632072178933914, 1131.0)
comp.ttest_ind(usevar="unequal")  # 如果方差不齐
(2.4669071564965956, 0.013870360692359867, 690.0875759383671)
comp.ttost_ind(0, 3)  # 检查均值差等于和等于3,第一个0.5731764533402571,将两组中p值较大的作为总的p值
(0.5731764533402571,
 ((2.4052613760094634, 0.00816036089466957, 1131.0),
  (0.18450919322007547, 0.5731764533402571, 1131.0)))
comp.tconfint_diff()  # 均值差的可信区间
(0.5987129330356953, 5.899791658291523)

配对t检验
# 配对t检验,比较同一个对象在实验前后,或者同一个对象在不同时间阶段的测量结果;将受试对象按情况相近者配对(或者自身配对),分别给予不同处理
ccss_p = pd.read_excel(r"E:\360Downloads\Software\tableau\CCSS_Sample.xlsx",sheet_name='CCSS_pair')
des = ws.DescrStatsW(ccss_p.index1 - ccss_p.index1n)
des.ttest_mean()
(1.1616334792419984, 0.24856144386191056, 87.0)
posted @ 2020-04-06 23:04  kog_maw  阅读(499)  评论(0编辑  收藏  举报