【问题标题】:Proc Tabulate, Weighting categorical variableProc Tabulate,加权分类变量
【发布时间】:2016-01-20 11:19:58
【问题描述】:

我最近才意识到,当您在 SAS 中使用 proc tabulate 时,如果您使用的是分类变量,则 WEIGHT 不起作用!有没有办法解决这个问题?

说明:配偶、子女、父母是二元变量(1表示同住,0表示不同住)

这是我的代码:

PROC TABULATE
DATA=censusrounds;

    CLASS spouse;
    CLASS parent;
    CLASS SEX;
    CLASS AGEGROUP;
    CLASS child;
    CLASS sample;

    TABLE sample*SEX*AGEGROUP,
        RowPctN*(spouse parent child);
    ;
    WEIGHT PERWT;

RUN;

【问题讨论】:

  • 看起来您可能正在使用 IPUMS 数据。您确定需要使用 PERWT 作为加权因子而不是分析变量本身吗? IPUMS 文档建议后者。 PERWT 是预先加权的人数。

标签: sas


【解决方案1】:

我认为您需要将 PerWt 添加为 var 才能使用 weight 选项调用它。我在下面模拟了您的数据并尝试了几种不同的方法。

data censusrounds;
infile datalines delimiter=',';
input spouse child parent sex agegroup $ sample rowpctN perwt;
datalines;
1, 0, 0, 0, a, 5, .6, .20
0, 1, 0, 0, a, 5, .5, .30
0, 0, 1, 0, a, 5, .4, .25
1, 0, 0, 1, a, 5, .3, .10
0, 1, 0, 1, a, 5, .2, .15
;
run;
PROC tabulate
DATA=censusrounds;

CLASS spouse parent SEX AGEGROUP child sample;
var rowpctN perwt;

TABLE sample*SEX*AGEGROUP,
    RowPctN*(spouse parent child);
;
WEIGHT PERWT;

RUN;

【讨论】:

  • 嗯...这对我不起作用。也许我的数据中的权重有问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多