例:鸢尾花的平均花瓣长度为3.5cm,这种说法正确吗?
可以根据假设检验的步骤,进行解决。
/设置原假设与备择假设:
原假设:μ = μ0 = 3.5cm(说法正确)
备择假设:μ ≠ μ0 ≠ 3.5cm(说法不正确)
设置显著性水平:
α = 0.05
根据问题选择假设检验的方式:
鸢尾花数据呈正态分布,但总体标准差未知,故选择t检验。
计算统计量,并通过统计量获取P值。
import pandas as pd
from sklearn.datasets import load_iris
import numpy as np
from scipy import stats
iris = load_iris()
# print(iris)
data = pd.DataFrame(iris.data, columns=['sepal_length','sepal_width','petal_length','petal_width'])
# data.to_csv('iris.csv')
#计算样本均值、标准差
mean = data['petal_length'].mean()
std = data['petal_length'].std()
print('样本均值:',mean)
print('样本标准差:',std)
#计算t统计量
t = (mean-3.5)/(std/np.sqrt(len(data['petal_length'])))
print('t统计量:', t)
#计算p值
#df:自由度,即变量可以自由取值的个数
p = 2*stats.t.sf(abs(t), df=len(data['petal_length'])-1)
print('P-Value值:', p)
样本均值: 3.7580000000000005
样本标准差: 1.7652982332594662
t统计量: 1.7899761687043318
P-Value值: 0.07548856490783705