Dear all,
I am carrying out a national survey, with stratified sampling. To account for this, I am going to use the "proc surveyfreq", but I am wondering how to figure out the weights that I should use.
I would appreciate any feedback, help, links or anything that might help me figure it out.
Thanks in advance.
Best
For this you have to calculate your weight variable depending on stratification factors.
I would appreciate if you can just let me know briefly how, or refer me to any link. Thanks a lot.
Somewhere you need to have a description of your sample frame(population) and determine how many possible respondents there were. Use proc means or summary to count or sum as appropriate with a CLASS statement of your stratum variable.
Do the same thing with the sample data set.
Match/merge the two datasets by the stratum variable.
Calculate the weight for the strata as: SurveyWeight = populationtotal/sampletotal;
I think you have to adjust your sample counts based on census data. If you are taking gender and age_group as startification factors then use somthing like this.
if gender='M' and age_group='18-25' then wt=1.2;
if gender='F' and age_group='18-25' then wt=1.3;
wt is the weight variable
Thanks for the detailed response. Yes, it was a simple random sample within each strata. No, I didn't use the proc surveyselect. So, if I understand it correctly, the weight of the subjects in each strata will be the total population divided by the sample size from this strata?? Am I right?
Thanks to all, I think I will be able to figure it out from here.
Appreciate it.
Best
How did you generate your sample? Basically for each record within a strata your weight would be the inverse of the probability of select which is often population//samplesize assuming a simple random sample within each strata. If you did something else it gets more entertaining.
If you used Proc Surveyselect to generate the sample the weights would be in the resulting data by default.
After you have that weight per strata attach it to your data. Easiest might be:
proc sql;
create table weighteddata as
select a.*, b.Surveyweight
from surveydata as a left join weights as b
on a.stratum=b.stratum;
quit;
Assuming: surveydata is your response data set; weights has a variable Surveyweight calculated for each stratum;
your stratum variable is named stratum;
That isn't an easy statistical question. It depends on how the sample was chosen. I've seen an entire university course dedicated entirely on how to properly create samples and weights and the corresponding analysis, which all need to line up properly.
Consult a statistician or whomever determined the stratified sampling method.
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.
Use this tutorial as a handy guide to weigh the pros and cons of these commonly used machine learning algorithms.
Find more tutorials on the SAS Users YouTube channel.