BookmarkSubscribeRSS Feed
Hani
Calcite | Level 5

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

8 REPLIES 8
stat_sas
Ammonite | Level 13

For this you have to calculate your weight variable depending on stratification factors.

Hani
Calcite | Level 5

I would appreciate if you can just let me know briefly how, or refer me to any link. Thanks a lot.

ballardw
Super User

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;

stat_sas
Ammonite | Level 13

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

Hani
Calcite | Level 5

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?

Hani
Calcite | Level 5

Thanks to all, I think I will be able to figure it out from here.

Appreciate it.

Best

ballardw
Super User

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;

Reeza
Super User

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.

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

How to choose a machine learning algorithm

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.

Discussion stats
  • 8 replies
  • 1542 views
  • 0 likes
  • 4 in conversation