R语言机器学习入门——17

178 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第11天,点击查看活动详情

项目实操——功效分析

这节课程我们讨论一下,在数据分析的筹备阶段,我们应该选择多少样本,在一个分析中,如果样本数量过小,那么就算pvalue值非常小,非常显著,也是不可信的。

功效分析(power analysis)可以帮助在给定置信度的情况下,判断检测到给定效应值时所需的样本量,反过来,它也可以在给定置信度水平的情况下,计算在某样本量内能检测到给定效应值的概率。

功效分析的理论基础:

第一类错误:弃真,第二类错误:存伪

所以我们根据要检验的显著性水平、功效和效应值来推算所需要的样品数,R中利用pwr包来进行功效分析。

在pwr中包含了多种功效分析的函数,根据不同的假设检验选择不同的函数:

下面介绍线性回归功效分析的案例

F2=R2/1-R2,即模型解释度(模型方差平方和ssr)与平均数解释度(误差平方和sse)之比,F2效应值越大,样本越小;

V=n-u-1为误差自由度,与样本数和自变量个数相关,误差自由度越搞,说明样本越多,房差越大,F2效应值越小,即解释度越小。

U为自变量个数,与误差自由度正相关,即个数越多,所需的样本越多

Power功效,一般小于0.95,但差距不大,排除假阴性的水平之,power越大,v就越大

pwr.f2.test(u=3,sig.level = 0.05,power = 0.9,f2=0.0769)

结果表明,v=184.2426,也就是说假定显著性水平为0.05,在90%置信度的情况下,至少需要185个受试者才可以。

下面介绍方差分析功效分析的案例

假设现在两组样品做单因素方差分析,要达到0.9的功效,效应值为0.25,并选择0.05的显著性水平,那么每组需要多少样品量呢?可以使用pwr.anova.test()函数进行分析:

其中选项K是组的个数,n是各组的样本大小也就是我们要求的样本量,f是效应值,sig.level还是显著性水平,power为功效水平:

pwr.anova.test(k=2,f=0.25,sig.level = 0.05,power = 0.9)

最终求得n=85.03,所以每一组中至少要有86个样本