Loading [MathJax]/jax/output/CommonHTML/jax.js
2021-12-11 23:57阅读: 7335评论: 0推荐: 0

[PROC FREQ] 单组率置信区间的计算

本文链接:https://www.cnblogs.com/snoopy1866/p/15674999.html
利用PROC FREQ过程中的binomial语句可以很方便地计算单组率置信区间,SAS提供了9种(不包括校正法)计算单组率置信区间的方法,现列举如下:
首先准备示例数据:

data test;
    input out $ weight;
cards;
阳性 95
阴性 5
;
run;

1. Wald 法

基于Wald法构建的单组率的置信区间应用非常广泛,且Wald在结构上有着以点估计为中心对称分布的天然优势,基于Wald法构建的单样本率置信区间可表示为:

p±zα/2p(1p)n

优点:以点估计为中心,对称分布
缺点:(1)Overshoot: 置信区间可能超过[0,1]范围(2)Degeneracy: 区间宽度可能为0(p=0或1时)(3)覆盖率差
代码:

proc freq data = test;
    tables out /nopercent nocol norow nocum binomial(level = "阳性" cl = wald);
    weight weight;
run;



2. Wald 法(连续性校正)

p±(zα/2p(1p)n+12n)

优点:(1)可避免区间宽度可能为0的情况(2)覆盖率较Wald法有所改善
缺点:(1)结果偏保守(2)更容易发生置信区间超过[0,1]范围的情况
代码:

proc freq data = test;
    tables out /nopercent nocol norow nocum binomial(level = "阳性" cl = wald(correct));
    weight weight;
run;



3. Agresti-Coull

Agresti-Coull法的主要思路是选择一个大于0的常数作为pseudo-frequency,在计算样本量的时候对点估计进行校正,目的是使点估计尽量向中央(0.5)靠拢,这个大于零0的常数被称为估计因子ϕ
Agresti和Coull提出了ϕ的两种形式,ϕ=12z2α/2ϕ=2,前者称为ADDZ2校正法,后者称为ADD4校正法,SAS中仅提供ADDZ2校正法,当α=0.05时,zα/2接近2,此时ADDZ2校正法与ADD4校正法近似。
ϕ=2时(ADD4校正法),其实际含义是样本成功例数和失败例数分别加2,即总样本量加4。

˜p±˜p(1˜p)n+z2α/2

其中˜p=n1+12z2α/2n+z2α/2
优点:(1)downward spikes现象略有改善(downward spikes:当率在极端情况下,置信区间覆盖率急剧下滑
缺点:(1)牺牲了置信区间宽度
代码:

proc freq data = test;
    tables out /nopercent nocol norow nocum binomial(level = "阳性" cl = agresticoull);
    weight weight;
run;



4. Wilson Score法

Wilson Score法作为Wald法的替代,应用十分广泛,是目前学界公认的在非极端率情况下的最佳置信区间构建方法。
基于Wilson Score法构建的置信区间可表示为:

|pˆp|=zα/2p(1p)n

p可表示为:

11+1nz2α/2(ˆp+z2α/22n±zα/2ˆp(1ˆp)+14nz2α/2n)

优点:(1)被认为是moderate proportion(率不接近0或1)的最佳方法
缺点:(1)存在downward spikes现象
代码:

proc freq data = test;
    tables out /nopercent nocol norow nocum binomial(level = "阳性" cl = wilson);
    weight weight;
run;



5. Wilson Score法(连续性校正)

基于Wilson Score法连续性校正构建的置信区间可表示为:

|pˆp|12n=zα/2p(1p)n

代码:

proc freq data = test;
    tables out /nopercent nocol norow nocum binomial(level = "阳性" cl = wilson(correct));
    weight weight;
run;



6. Jeffreys法

Jeffreys法构建的置信区间表示如下:

L=Beta(α2,n1+12,nn1+12)

U=Beta(1α2,n1+12,nn1+12)

代码:

proc freq data = test;
    tables out /nopercent nocol norow nocum binomial(level = "阳性" cl = jeffreys);
    weight weight;
run;



7. 似然比法

似然比法通过逆推似然比检验构造置信区间,零假设下似然比检验统计量可表示为:

L(p0)=2(n1lnˆpp0+(nn1)ln1ˆp1p0)

使检验统计量L(p0)落在接受域内的所有p0组成的区间即为似然比法的置信区间:{p0:L(p0)<χ21,α},PROC FREQ通过迭代计算寻找置信限。
代码:

proc freq data = test;
    tables out /nopercent nocol norow nocum binomial(level = "阳性" cl = likelihoodratio);
    weight weight;
run;



8. Logit法

基于Logit变换 Y=ln(ˆp1ˆp)Y 的近似置信区间用以下公式计算:

YL=lnˆp1ˆpzα/2nn1(nn1)

YU=lnˆp1ˆp+zα/2nn1(nn1)

p 的置信区间可表示为:

PL=exp(YL1+exp(YL))

PU=exp(YU1+exp(YU))

代码:

proc freq data = test;
    tables out /nopercent nocol norow nocum binomial(level = "阳性" cl = logit);
    weight weight;
run;



9. Clopper-Pearson法

基于二项分布构建的置信区间方法,使得精确置信限满足以下方程:

nx=n1(nx)PxL(1PL)nx=α2

n1x=0(nx)PxU(1PU)nx=α2

PROC FREQ 使用 F 分布计算Clopper-Pearson置信限,公式如下:

PL=[1+nn1+1n1F(α2,2n1,2(nn1+1))]1

PU=[1+nn1(n1+1)F(1α2,2(n1+1),2(nn1))]1

代码:

proc freq data = test;
    tables out /nopercent nocol norow nocum binomial(level = "阳性" cl = clopperpearson);
    weight weight;
run;



10. Mid-P法

Mid-P 精确置信限满足以下方程:

nx=n1+1(nx)PxL(1PL)nx+12(nn1)Pn1L(1PL)nn1=α2

n11x=0(nx)PxU(1PU)nx+12(nn1)Pn1U(1PU)nn1=α2

代码:

proc freq data = test;
    tables out /nopercent nocol norow nocum binomial(level = "阳性" cl = midp);
    weight weight;
run;



11. Blaker法

通过对双侧 Blaker 精确检验逆推来构建置信区间,使检验统计量B(p0,n1)落在接受域内的所有p0组成的区间称为Blaker置信区间:{p0:B(p0,n1)>α}
其中:

B(p0,n1)=Prob(γ(p0,X)γ(p0,n1)|p0)

γ(p0,n1)=min(Prob(Xn1|p0),Prob(Xn1|p0))

代码:

proc freq data = test;
    tables out /nopercent nocol norow nocum binomial(level = "阳性" cl = blaker);
    weight weight;
run;



最后,将以上9种方法同时展示(wald 和 wilson 仅展示校正法):

proc freq data = test;
    tables out /nopercent nocol norow 
                nocum binomial(level = "阳性"
                               cl = (wald(correct)  agresticoull    wilson(correct)
                                     jeffreys       likelihoodratio logit
                                     clopperpearson midp            blaker));
    weight weight;
run;




参考文献:徐莹. 一种新的单样本率的置信区间估计方法[D].南方医科大学,2019.

本文作者:Snoopy1866

本文链接:https://www.cnblogs.com/snoopy1866/p/15674999.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Snoopy1866  阅读(7335)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 晚安喵 艾索
  2. 2 宝贝别哭 玖肆仟
  3. 3 嘿咻狂想曲 艾索
晚安喵 - 艾索
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.