[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法构建的单样本率置信区间可表示为:
\]
优点:以点估计为中心,对称分布
缺点:(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 法(连续性校正)
\]
优点:(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的常数被称为估计因子\(\phi\)。
Agresti和Coull提出了\(\phi\)的两种形式,\(\phi =\frac{1}{2}z_{\alpha/2}^2\)和\(\phi = 2\),前者称为ADDZ2校正法,后者称为ADD4校正法,SAS中仅提供ADDZ2校正法,当\(\alpha = 0.05\)时,\(z_{\alpha/2}\)接近2,此时ADDZ2校正法与ADD4校正法近似。
当\(\phi = 2\)时(ADD4校正法),其实际含义是样本成功率和失败例数分别加2,即总样本量加4。
\]
其中\(\tilde{p} = \frac{n_1 + \frac{1}{2}z_{\alpha/2}^2}{n + z_{\alpha/2}^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\)可表示为:
\left( \hat{p} + \frac{z_{\alpha/2}^2}{2n} \pm z_{\alpha/2} \sqrt{\frac{\hat{p}(1-\hat{p}) + \frac{1}{4n}z_{\alpha/2}^2}{n}} \right)
\]
优点:(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法连续性校正构建的置信区间可表示为:
\]
代码:
proc freq data = test;
tables out /nopercent nocol norow nocum binomial(level = "阳性" cl = wilson(correct));
weight weight;
run;
6. Jeffreys法
Jeffreys法构建的置信区间表示如下:
\]
\]
代码:
proc freq data = test;
tables out /nopercent nocol norow nocum binomial(level = "阳性" cl = jeffreys);
weight weight;
run;
7. 似然比法
似然比法通过逆推似然比检验构造置信区间,零假设下似然比检验统计量可表示为:
\]
使检验统计量\(L(p_0)\)落在接受域内的所有\(p_0\)组成的区间即为似然比法的置信区间:\(\{p_0: L(p_0) < \chi_{1,\alpha}^2\}\),PROC FREQ通过迭代计算寻找置信限。
代码:
proc freq data = test;
tables out /nopercent nocol norow nocum binomial(level = "阳性" cl = likelihoodratio);
weight weight;
run;
8. Logit法
基于Logit变换 \(Y = \ln(\frac{\hat{p}}{1 - \hat{p}})\),\(Y\) 的近似置信区间用以下公式计算:
\]
\]
\(p\) 的置信区间可表示为:
\]
\]
代码:
proc freq data = test;
tables out /nopercent nocol norow nocum binomial(level = "阳性" cl = likelihoodratio);
weight weight;
run;
9. Clopper-Pearson法
基于二项分布构建的置信区间方法,使得精确置信限满足以下方程:
\]
\]
PROC FREQ 使用 \(F\) 分布计算Clopper-Pearson置信限,公式如下:
\]
\]
代码:
proc freq data = test;
tables out /nopercent nocol norow nocum binomial(level = "阳性" cl = likelihoodratio);
weight weight;
run;
10. Mid-P法
Mid-P 精确置信限满足以下方程:
\]
\]
代码:
proc freq data = test;
tables out /nopercent nocol norow nocum binomial(level = "阳性" cl = midp);
weight weight;
run;
11. Blaker法
通过对双侧 Blaker 精确检验逆推来构建置信区间,使检验统计量\(B(p_0, n_1)\)落在接受域内的所有\(p_0\)组成的区间称为Blaker置信区间:\(\{ p_0: B(p_0, n_1) > \alpha \}\)
其中:
\]
\]
代码:
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.
最新文章
- AVAudioPlayer
- 解决域名DNS解析的故障
- iOS类的继承关系
- [Oracle] 参数修改小结
- 解决ScrollView嵌套ListView和GridView冲突的方法
- 【巧妙预处理系列+离散化处理】【uva1382】Distant Galaxy
- 具体解释HTML中的window对象和document对象
- 详解zkw算法解决最小费用流问题
- javascript抛物投栏(抛物线实践)
- [LeetCode] K Empty Slots K个空槽
- CRM客户关系管理系统(一)
- linux 防火墙操作
- 1840: Jack Straws
- Ubuntu14.04+ROS 启动本地摄像头
- Golang:sync.Map
- [原][openstack-pike][controller node][issue-2][glance] Could not parse rfc1738 URL from string &#39;mysql+pymysql=http://glance:glance@controller/glance&#39;
- C++ 常用设计模式(学习笔记)
- 2018年2月19日我的java学习
- html的初了解(更新中&#183;&#183;&#183;)
- 【CF878D】Magic Breeding bitset
热门文章
- 第12组 Alpha冲刺 (1/6)
- updatexml和extractvalue函数报错注入
- [源码解析] PyTorch分布式(6) -------- DistributedDataParallel -- 初始化&;store
- 数字逻辑实践2->;Verilog编写规范
- 深度剖析Spring Boot自动装配机制实现原理
- CSS动画--让div动起来
- Codeforces 547D - Mike and Fish(欧拉回路)
- 论文解读(SDNE)《Structural Deep Network Embedding》
- 取gridview中textbox的值【C#】
- 2 — springboot的原理