关键词搜索

源码搜索 ×
×

Python笔记-假设检验之单样本T检验

发布2022-02-14浏览2572次

详情内容

概念

假设某个数据的均值为u,实际抽样时离u越近说明假设的这个均值越合理,越远,就说明越不合理。

这里又有个p-value的概念,代表实际抽样的结果与假设的差异程度。值越大意味着越无差异。实际中我们会自己设置一个阈值,如0.05,当计算出来的p-value大于这个0.05时,就满足我们的需求,这个0.05叫显著性水平。

单样本T检验:检验单个样本的平均值是否等于目标值;

Python代码

如下场景,一串数据,他的增长率是否是0.1,显著性水平为0.5,也就是p-value大于0.5说明检验单个样本的平均值等于目标值;

如下代码:

  1. import statsmodels.api as sm
  2. valueList = [0.169747191462884, 0.165484359308337, 0.141358295556684, 0.0631967134074211, 0.101527686160212]
  3. if __name__ == '__main__':
  4. d = sm.stats.DescrStatsW(valueList)
  5. print('t检验= %6.4f,p-value=%6.4f, df=%s' % d.ttest_mean(0.10))
  6. pass

运行截图如下:

 其中来看下ttest_mean这个函数

  1. def ttest_mean(self, value=0, alternative="two-sided"):
  2. """ttest of Null hypothesis that mean is equal to value.
  3. The alternative hypothesis H1 is defined by the following
  4. - 'two-sided': H1: mean not equal to value
  5. - 'larger' : H1: mean larger than value
  6. - 'smaller' : H1: mean smaller than value
  7. Parameters
  8. ----------
  9. value : float or array
  10. the hypothesized value for the mean
  11. alternative : str
  12. The alternative hypothesis, H1, has to be one of the following:
  13. - 'two-sided': H1: mean not equal to value (default)
  14. - 'larger' : H1: mean larger than value
  15. - 'smaller' : H1: mean smaller than value
  16. Returns
  17. -------
  18. tstat : float
  19. test statistic
  20. pvalue : float
  21. pvalue of the t-test
  22. df : int or float
  23. """
  24. # TODO: check direction with R, smaller=less, larger=greater
  25. tstat = (self.mean - value) / self.std_mean
  26. dof = self.sum_weights - 1
  27. # TODO: use outsourced
  28. if alternative == "two-sided":
  29. pvalue = stats.t.sf(np.abs(tstat), dof) * 2
  30. elif alternative == "larger":
  31. pvalue = stats.t.sf(tstat, dof)
  32. elif alternative == "smaller":
  33. pvalue = stats.t.cdf(tstat, dof)
  34. return tstat, pvalue, dof

需要注意以下几点:

①ttest_mean有2个参数,一个是value,一般传array进去,第二个参数有3个值,分别是:

  1. "two-sided": 不等与value;(默认)
  2. "larger": 大于value;
  3. "smaller": 小于value;

②返回值有3个参数:

  1. tstat : float :t检验值,越大说明越合理
  2. pvalue : float :p-value值,和设置的显著水平比较,证明这个传入的参数value是否合理;
  3. df : int or float :上面的数据类型是什么float还是int,保留几位小数;

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载