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: 17,780

Re: what that code does mean?

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,641

Re: what that code does mean?

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: 17,780

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?

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
  • 270 views
  • 0 likes
  • 3 in conversation