如何用PROC FREQ为每个地区生成比例及对应置信区间?
解决方法
问题核心是你的代码未按地区变量分组处理,导致proc freq默认对全量数据计算,仅输出单组置信区间。要实现每个地区一行输出比例和置信区间,按以下步骤调整:
- 先按地区变量排序数据集
假设你的地区变量名为region,先对数据集排序(proc freq的by语句要求数据集已按分组变量排序):
proc sort data=a; by region; run;
- 修改
proc freq代码,添加分组逻辑
在代码中加入by region;实现按地区分组分析,同时明确指定输出需要的统计量:
proc freq data=a; by region; /* 按地区分组计算 */ tables &var / binomial; weight kalvikt; title '各地区少数民族居住比例及置信区间'; output out=a1 binomial(p=lowercl uppercl); /* 指定输出比例、置信区间上下限 */ run;
- 输出数据集说明
生成的a1数据集会按地区逐行记录结果,关键变量:
region:地区标识P:该地区少数民族居住比例估计值LOWERCL:置信区间下限UPPERCL:置信区间上限
内容的提问来源于stack exchange,提问作者Magnus
相关产品推荐
相关产品推荐

