Obsidian | Level 7

## what that code does mean?

``````DATA covprob;
p = .5;
q = 1-p;
z=abs(probit(.025));
zz=z*z;
do n = 10 to 500;
w = zz / (2 * n);
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;
``````
4 REPLIES 4
Super User

## 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?

Opal | Level 21

## 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

## Re: what that code does mean?

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

Obsidian | Level 7

## 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
Discussion stats
• 4 replies
• 906 views
• 0 likes
• 3 in conversation