机器学习预备知识
目录卡方检验卡方检验的主要用途卡方检验的基本原理卡方统计量卡方检验的statsmodels实现配对卡方检验相关分析关联性分析概述什么是相关分析关联性分析各种相关系数统计图/统计表在相关分析中的重要性相关系数的计算原理常用术语针对两连续变量的相关Pearson相关系数Spearman秩相关系数相关分析的Python实现RR与ORRR(Relative Risk)——相对危险度OR(Odds Ratio)——优势比代码实现卡方检验注意在统计分析阶段的假设检验中也提及到了卡方检验那是针对单个总体方差的检验本章中的卡方检验是针对分类变量的比较。卡方检验的主要用途两个率或两个构成比比较的卡方检验多个率或多个构成比比较的卡方检验分类资料的相关分析卡方检验的基本原理H~0~:观察频数与期望频数没有差别其原理为考察基于H~0~的理论频数分布和实际频数分布间的差异大小据此求出相应的P值案例所有受访家庭会按照家庭年收入被分为低收入家庭和高收入家庭两类现希望考察不同收入级别的家庭其轿车拥有率是否相同基于H~0~成立即观察频数和期望频数无差别也就是两组变量家庭收入级别与是否拥有轿车相互不产生影响两组变量不相关如果检验P值很高则接受H~0~如果检验P值很低则检验不通过观察频数和期望频数有差别两组变量相关。卡方统计量卡方统计量的计算公式χ2∑(A−E)2E其中A为实际频数E为期望频数理论频数。卡方统计量的理解当观察频数与期望频数完全一致时卡方值为0观察频数与期望频数越接近两者之间的差异越小卡方值越小观察频数与期望频数差异越大卡方值越大卡方值的大小也和自由度有关卡方检验的statsmodels实现案例所有受访家庭会按照家庭年收入被分为低收入家庭和高收入家庭两类现希望考察不同收入级别的家庭其轿车拥有率是否相同statsmodels中首先需要建立对应的列联表对象class statsmodels.stats.contingency_tables.Table( table shift_zeros True : 如果有单元格频数为0则所有单元格频数一律0.5防止计算溢出 )Table类的方法:test_nominal_association() 无序分类行、列变量的独立性检验配对卡方检验McNemars检验配对卡方检验用于分析两个相关率的变化是否有统计学意义案例用A、B两种方法检查已确诊的某种疾病患者140名A法检出91名(65%)B法检出77名(55%)A、B两法一致的检出56名(40%)问哪种方法阳性检出率更高分析思路H~0~:两种方法阳性检出率无差别即b单元格c单元格对同一个体分别有两次不同的测量并最终构成了两组数据因此研究框架是自身配对设计求出各对的差值然后考察样本中差值的分布是否按照H~0~假设的情况对称分布主对角线上的样本两种检验方法的结论相同非主对角线上的单元格才携带检验方法的差异信息根据H~0~得到b、c两格的理论数均为(bc)/2,对应的配对检验统计量经过化简后是χ2(b−c)2bc一般在 b c 40 时需用确切概率法进行检验或者进行校正代码实现statsmodels.stats.contingency_tables中常用的配对卡方的分析使用tbl.SquareTable 用于分析行列变量类别相同的对称结构方表近似结果tbl.mcnemar 用于分析配对四格表确切概率结果用SquareTable类分析import numpy as np import statsmodels.stats.contingency_tables as tbl # 必须为方阵结构数据 table tbl.SquareTable(np.array([[56, 35], [21, 28]])) print(table.summary()) # 打印汇总信息 print(table.symmetry()) # 只打印symmetry用mcnemar类分析import statsmodels.stats.contingency_tables as tbl table tbl.mcnemar(pd.DataFrame([[56, 35], [21, 28]])) print(table.pvalue) # 确切概率结果相关分析关联性分析概述什么是相关分析关联性分析相关分析是用于考察变量间数量关系密切程度的分析方法例如身高与体重的关系几乎所有涉及到多个变量的假设检验方法都可以被看作是这些变量间的关联性分析t检验分组变量与连续因变量间的关联性分析卡方检验行、列分类变量间的关联性分析聚类分析案例(case)间的关联性分析多变量回归因变量和一组自变量间的关联性分析各种相关系数连续 vs 连续Pearson相关系数双变量正态分布Spearman秩相关系数不符合双变量正态分布有序 vs 有序Gamma系数、肯德尔相关系数等例如医生级别与治疗效果的相关关系也可使用Spearman秩相关系数无序 vs 无序列联系数等例如民族与职业的关系基于卡方统计量进一步推导而来无方向 0~1OR/RR:一类特殊的关联强度指标连续 vs 分类Eta(本质上是方差解释度即连续变量的离散度有多少可以被另外的分类指标所解释)统计图/统计表在相关分析中的重要性连续变量用散点图先确认关联趋势是否为直线分类变量分组条图、马赛克图分组百分条图等工具相关系数的计算原理常用术语针对两连续变量的相关直线相关两变量呈线性共同增大或者呈线性一增一减的情况曲线相关两变量存在相关趋势但是为各种可能的曲线趋势正相关与负相关如果A变量增加时B变量也增加则为正相关如果A变量增加时B变量减小则为负相关完全相关完全正相关完全负相关零相关自变量的变化,不会影响因变量的变化Pearson相关系数计算公式ρ(X,Y)cov(X,Y)σXσYE(XY)−E(X)E(Y)σXσY公式理解标准差代表变量的离散程度信息量大小协方差Cov(X,Y)代表各变量共同携带的信息量大小相关系数代表两个变量总信息量中的共同部分占比相关系数ρ的取值范围-1 ρ 1其正负反映了相关的方向|ρ|越接近于1说明相关性越好|ρ|越接近于0说明相关性越差Pearson相关系数的检验H~0~:两变量间无直线相关关系ρ0检验方法t检验tr−0sr,dfn−2Pearson相关系数的适用条件必须是线性相关的情形可以先绘制散点图观察一下针对两连续变量的相关系数极端值对相关系数的计算影响极大因此要慎重考虑和使用要求相应的变量呈双变量正态分布近似也可以Spearman秩相关系数不服从正态分布的变量、分类或等级变量之间的关联性可采用Spearman秩相关系数Spearman提出首先对数据做秩变换然后再计算两组秩间的直线相关系数秩变换分析思想相关分析的Python实现相关分析作为比较简单的方法在statsmodels中并未作进一步的完善因此主要使用scipy实现两个连续变量且符合双变量正态分布Pearson相关系数scipy.stats.kendalltau(a, b) # 肯德尔相关系数 scipy.stats.spearmanr(a, b) # 斯皮尔曼秩相关系数scipy.stats.pearsonr(a, b)两个连续变量不符合双变量正态分布Spearman秩相关系数scipy.stats.spearmanr(a, b)两个有序变量Kendalls TauSpearman秩相关系数scipy.stats.kendalltau(a, b) # 肯德尔相关系数 scipy.stats.spearmanr(a, b) # 斯皮尔曼秩相关系数RR与ORRR(Relative Risk)——相对危险度表示两种情况下发病密度或者说发病概率之比P~t~实验组人群反应阳性概率P~c~对照组人群反应阳性概率RRPtPca/ntc/nc如果RR 1说明相应的自变量取值增加会导致个体发病/死亡风险增加若干倍例如吸烟者的发病概率是非吸烟者的5倍RR在医学中得到了极为广泛的应用RR的计算条件比较苛刻观察周期长OR(Odds Ratio)——优势比为下列两种比例之比反应阳性人群中实验因素有无的比例 a/b反应阴性人群中实验因素有无的比例 c/dORa/bc/d例如某疾病病例中吸烟/非吸烟者的比例是非病例中吸烟/非吸烟者比例的3倍OR可以间接反映关联强度但是理解上比较困难发病概率较低时OR往往近似的在按照RR的含义进行解释和使用代码实现scipy的实现方式scipy.stats.fisher_exact()中可以计算OR值相应的检验P值则是确切概率法的P值OR, P ss.fisher_exact(pd.crosstab(home.Ts9, home.O1))statsmodels的实现方式import numpy as np import statsmodels.stats.contingency_tables as tbl # 这里必须使用np.array函数进行数组转换否则后续计算会出问题 table tbl.Table2x2(np.array(pd.crosstab(home.Ts9, home.O1))) print(table.oddsratio) # OR值 print(table.summary()) # 汇总信息
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2562068.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!