BookmarkSubscribeRSS Feed
elopomorph
Calcite | Level 5

I created SAS code using proc SQL to calculate a weighted mean by year.  My SAS code is below.  My weight variable is called bwght and I weight the variable called CPUE for each year.  This code produces the weighted mean by year and calls it bwghtedAverage.  However, I can't figure out how I an get proc sql to also provide me with the 95% confidence intervals for this mean.  Any help would be greatly appreciated.   

proc sql;

   title 'Weighted Averages';

   select Year, sum(CPUE*bwght)/sum(bwght) as bwghtedAverage

       from (select Year, CPUE,

                   case

                      when bwght gt 0 then bwght

                      else 0

                   end as bwght

               from CPUEdat)

      group by Year /*major_area_code*/;

quit;

4 REPLIES 4
Reeza
Super User

You'd have to do the manual calculations using the formula. Why not use proc means instead?

elopomorph
Calcite | Level 5

I don't know how to do a weighted average in proc means.  Can you provide an example? 

Reeza
Super User

Here's a good example of how and looking at the vardef option as well. 

Base SAS(R) 9.2 Procedures Guide

You'll still need to deal with the 0 or negative weights somehow before the proc.

Ksharp
Super User

And don't forget   proc univariate

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 4 replies
  • 5151 views
  • 0 likes
  • 3 in conversation