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