小言_互联网的博客

python hypothesis testing

475人阅读  评论(0)

1. 单样本T检验

单样本T检验是检验: 样本均值 = 总体均值 ?

单样本T检验, 求出t,p值, 比较p值与α (α与样本量有关) 的大小;  当 p>α 时,接受原假设; p<α 时, 拒接原假设; 

其中, 原假设就是样本均值 = 总体均值(目标均值)

# 计算单样本T检验中的t值,p值 ; DescrStatsW(样本数据)
d1 = sm.stats.DescrStatsW(data.rate)
print("t值=%f,p值=%f,样本自由度=%f"%d1.ttest_mean(0.1)) # mean()输入单样本t检验中总体均值(即目标值)
# 这两列结果输出 t值,p值,样本自由度
# p值=0.003355 说明: 根据样本推测出 总体均值(即目标值)小于10%的概率是 0.003355/2 * 100%

即: sm.stats.DescrStatsW(样本数据).ttest_mean(总体均值/假设均值)

 

2. 两样本T检验

两样本T检验是用于检验 : 二分类样本对连续变量的样本是否有影响;     即: 二分类样本~连续变量样本;

原假设是: 无影响

求出t,p值, 比较p值与α (α与样本量有关) 的大小;  当 p>α 时,接受原假设; p<α 时, 拒接原假设; 

已知: 数据data中有两列, 分别是连续变量数据list1 和  二分类变量list2; 其中list2 中的 元素全是1或0

data1 =data[data['list2']==1]['list1']  # 提取出list2中1元素对应的list1中的所有元素
data0 =data[data['list2']==0]['list1']  # 

t_p_value_o = stats.stats.ttest_ind(data0,data1)
print(t_p_value_o)

 

 

3. 方差分析

方差分析用于检验多分类变量是否对连续变量有影响; 利用线性回归模型中的方差分析

给出数据表格 : data, list1是连续变量(因变量) ; list2, list3是多分类变量(自变量) ; 分类变量必须是数字

(1).单因素方差分析
# sm.stats.anova_lm()方差分析;  C(list2); C(变量)表示变量是分类变量, 如果不加C,则python 会默认变量是连续变量
  # 因变量y是list1, 自变量x是list2
import statsmodels.api as sm  # 用于方差分析
from statsmodels.formula.api import ols # ols线性回归模型

 

data = pd.read_csv("data.csv",skipinitialspace=True) # 要舍得skipinitialspace=True,否则计算多方差时出错
sm.stats.anova_lm(ols('lsit1 ~ C(list2)',data=data).fit())

(2). 多因素分析

sm.stats.anova_lm(   ols( ' lsit1 ~ C(list2)+C(list3)  ',data=data).fit()   )

sm.stats.anova_lm(ols('lsit1 ~ C(list2)+C(list3)  + C(list2)*C(list3) ',data=data).fit())

 


转载:https://blog.csdn.net/with_still_water/article/details/102569775
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场