DATA Step, Macro, Functions and more

what that code does mean?

Reply
Contributor
Posts: 31

what that code does mean?

[ Edited ]

 

DATA covprob;
p = .5;
q = 1-p;
z=abs(probit(.025));
zz=z*z;
do n = 10 to 500;
w = zz / (2 * n);
rad = sqrt(2*w*p*q + w*w);
rt = (p + w + rad)/(1 +2*w);
lt = (p + w - rad)/(1 +2*w);
nhat_rt = floor(n*rt);
nhat_lt = ceil(n*lt - 1);
ncurl_rt = floor((n+4)*rt - 2);
ncurl_lt = ceil((n+4)*lt - 3);
p1 = probbnml(p, n, nhat_lt);
p2 = probbnml(p, n, nhat_rt);
cv_hat = p2 - p1;
p3 = probbnml(p, n, ncurl_lt);
p4 = probbnml(p, n, ncurl_rt);
cv_curl = p4 - p3;
output;
end;
keep n cv_hat cv_curl;
run;

 
 
PROC plot data = covprob;
plot cv_hat*n = '^';
plot cv_curl*n = '~';
run;
quit;
Super User
Posts: 19,850

Re: what that code does mean?

Posted in reply to bigban777

In what context? Is there a specific part you don't understand?

 

Are you looking for an explanation of a specific line?

Where did you find this code and what are you trying to do with it?

 

Respected Advisor
Posts: 4,930

Re: what that code does mean?

Posted in reply to bigban777

It looks like some sort of power analysis for (binomial) proportions.  But why reverse engineer this undocumented code? Understand the problem and write your own. And document it!

PG
Super User
Posts: 19,850

Re: what that code does mean?

If it is power analysis it's likely proc power  would likely be a better implementation as well Smiley Happy

Contributor
Posts: 31

Re: what that code does mean?

Posted in reply to bigban777
That part:
nhat_rt = floor(n*rt);
nhat_lt = ceil(n*lt - 1);
ncurl_rt = floor((n+4)*rt - 2);
ncurl_lt = ceil((n+4)*lt - 3);


Is it interval? Why it is subtracte -1, -3
Ask a Question
Discussion stats
  • 4 replies
  • 273 views
  • 0 likes
  • 3 in conversation