• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D收藏吧

假设检验之单样本检验

数据分析 Terry 5年前 (2018-05-21) 1401次浏览 已收录 0个评论

一、描述统计分析

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
dataSer=pd.Series([15.6,16.2,22.5,20.5,16.4,
                   19.4,16.6,17.9,12.7,13.9])
sample_mean=dataSer.mean()
sample_std=dataSer.std()
print('样本平均值',sample_mean,'单位:ppm')
print('样本标准差',sample_std,'单位:ppm')
样本平均值 17.169999999999998 单位:ppm
样本标准差 2.9814426038413018 单位:ppm
import seaborn as sns
sns.distplot(dataSer)
假设检验之单样本检验
#1 手动计算标准误差 =样本标准差/(n的开方)
n=10
se=sample_std/(np.sqrt(n))
# 2计算t值
pop_mean=20
t=(sample_mean-pop_mean)/se
print('标准误差',se)
print('t=',t)
#查表t对应的的概率p=0.0149
标准误差 0.9428149341201592
t= -3.001649525885985
#2 自动计算
from scipy import stats
t,p=stats.ttest_1samp(dataSer,pop_mean)
print('t=',t)
print('双尾检验的p=',p)
t= -3.001649525885985
双尾检验的p= 0.014916414248897527
#单尾检验的值
p_oneTail=p/2
print('单尾检验p=',p_oneTail)
单尾检验p= 0.0074582071244487635
#显著水平=5%
alpha=0.05

结论

if(t<0 and p_oneTail<alpha):
    print('拒绝零假设')
else:
    print('接受零假设')
拒绝零假设

置信区间

t_ci=2.262
#使用scipy计算标准误差
se=stats.sem(dataSer)
#置信区间上限
a=sample_mean - t_ci * se
#置信区间下限
b=sample_mean + t_ci * se
print('单个平均值的置信区间,95置信水平 CI=(%f,%f)' % (a,b))
单个平均值的置信区间,95置信水平 CI=(15.037353,19.302647)

效应量

#效应量:差异指标Cohen's d

d=(sample_mean - pop_mean) / sample_std

#效应量:相关度指标R2

#样本大小
n=10
#自由度
df=n-1
R2=(t*t)/(t*t+df)

print('d=',d)
print('R2=',R2)
d= -0.9492049239364257
R2= 0.5002748453994631

相关文章:


作者Terry , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:假设检验之单样本检验
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址