数据分析中的统计检验方法 您所在的位置:网站首页 罪恶黑名单女主角父亲 数据分析中的统计检验方法

数据分析中的统计检验方法

2024-07-02 05:28| 来源: 网络整理| 查看: 265

数据的种类

我们都知道,一般数据可以分为两类,即定量数据(数值型数据)和定性数据(非数值型数据),定性数据很好理解,例如人的性别,姓名这些都是定性数据。定量数据可以分为以下几种:

定类数据 表现为类别,但不区分顺序,是由定类尺度计量形成的。一般可以从非数值型数据中编码转换而来,数值本身没有意义,只是为了区分类别做出的数值型标识,比如1表示男性,0表示女性。定类数据无法比较大小,运算符也无意义。

定序数据 表现为类别,但有顺序,是由定序尺度计量形成的。运算符也没有意义,例如比赛中的排名,不能说第一名到第二名之前的差距与第二名到第三名之间的差距相等。

定距数据 表现为数值,可进行加、减运算,是由定距尺度计量形成的。定距数据的特征是没有绝对的零点,例如温度,不能说10摄氏度的一倍是20摄氏度。因此乘、除法对于定距数据来说也是没有意义的。

定比数据 表现为数值,可进行加、减、乘、除运算,是由定比尺度计量形成的。定比数据存在绝对的零点。例如价格,100元的一倍就是200元。

T检验

T检验(T-test)主要是为了比较数据样本之间是否具有显著性的差异。或者是否能从样本推论到整体,例如有某个班的学习成绩的数据,想推论该班上男女生的学习成绩差异大,或者根据数据推论出,整个学校的男女生学习成绩差异都大,需要用到卡方检验。一般用于定量数据的检测(定类数据采用卡方检验),T检验的前提条件是假设样本服从或者近似服从正态分布,T检验是一种参数检验方法(假定总体的分布已知)。 针对不同的场景,主要有以下三种检验方法:

独立样本的T检验 主要用于定量数据和定类数据的差异关系研究,例如有一个班的学生数据,如果学生的成绩服从正太分布,想要研究升高和成绩的关系,就需要用到该方法,如果不服从正态分布,可采用MannWhitney检验。单一样本的T检验 主要用于检验某单一的定量数据差异,例如一个班的成绩是否显著大于70分。同样需要满足正态分布的假设,若不满足可采用单样本Wilcoxon检验。配对T检验 检验样本中配对数据的差异性,例如一个班上男、女生的成是否显著差异,不满足正态分布的话,可采用Wilcoxon检验。

T检验主要通过样本均值的差异进行检验,统计学上以“总体间没差别”计算显著性水平H0,拒绝原假设H0的最小显著性水平称为检验的p值.,来检验假设的结果。例如,假设一个班上男女生的成绩不存在差异,显著性水平为0.05,可理解为只有5%的概率会出现“男女生差异显著”的情况,计算出的检验p值若小于0.05,则可以通过原假设。反之拒绝原假设。

此外,两个独立样本的T检验,通常需要先进行F检验(方差齐次检验),检验两个独立样本的方差是否相同,若两总体方差相等,则直接用t检验,若不等,可采用t’检验或变量变换或秩和检验等方法。也就是说进行两独立样本的T检验时,需首先验证两样本的方差是否相同。

python的机器学习工具包scipy中,有统计分析模块stats,其中就有T检验函数:

from scipy import stats #单一样本的t检验,检验单一样本是否与给定的均值popmean差异显著的函数,第一个参数为给定的样本,第二个函数为给定的均值popmean,可以以列表的形式传输多个单一样本和均值。 stats.ttest_1samp(a, popmean, axis=0, nan_policy='propagate') #独立样本的T检验,检验两个样本的均值差异,该检验方法假定了样本的通过了F检验,即两个独立样本的方差相同 stats.ttest_ind(a, b, axis=0, equal_var=True, nan_policy='propagate') #检验两个样本的均值差异(同上),输出的参数两个样本的统计量,包括均值,标准差,和样本大小 stats.ttest_ind_from_stats(mean1, std1, nobs1, mean2, std2, nobs2, equal_var=True) #配对T检验,检测两个样本的均值差异,输入的参数是样本的向量 stats.ttest_rel(a, b, axis=0, nan_policy='propagate') F检验

F检验(F-test),最常用的别名叫做联合假设检验(英语:joint hypotheses test),此外也称方差比率检验、方差齐性检验。它是一种在零假设(null hypothesis, H0)之下,统计值服从F-分布的检验。其通常是用来分析用了超过一个参数的统计模型,以判断该模型中的全部或一部分参数是否适合用来估计母体。 其计算过程如下: 在这里插入图片描述 在这里插入图片描述 计算得到的F值,再与对应F分布表查询,若大于表中的值,则接受原假设(两样本的方差相同),否则拒绝原假设。 图来源:百度百科 stats模块中虽然没有f检验的函数,但是却有着f分布的生成函数,可以利用其进行f检验:

from scipy.stats import f F = np.var(a) / np.var(b) df1 = len(a) - 1 df2 = len(b) - 1 p_value = 1 - 2 * abs(0.5 - f.cdf(F, df1, df2))

也可以引入sklearn进行f检验

from sklearn.feature_selection import f_classif f_class, pvalue = f_classif(X,y) print([i for i,p in enumerate(pvalue) if p


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有