가끔 비율에 대한 exact 신뢰구간을 구해야 할 때가 있습니다.
이런 식으로 proc freq로 구하면 됩니다.
proc freq은 0, 1중 0의 비율을 구합니다.
level='1'로 해야 1의 비율을 구해줍니다. 1이 숫자여도 '1'이라고 해야합니다.
그 exact ci에 해당되는 ods결과물 이름이 binomialcls이고요.
R에서는 아래와 같이 한줄이면 끝.
y=c(0,1,0,0,0,0,1,0)
binom.test(sum(y), length(y))$conf.int
----------------------------------
data prop;
input y @@;
datalines;
0 1 0 0 0 0 1 0
;
ods select none;
proc freq data=prop;
tables y / binomial (exact level='1') alpha=0.05;
ods output binomialcls=ci;
run;
ods select all;
proc print data=ci; run;
----------------------------------------
결과를 보면
비율 p=2/8=0.25이고
95% exact CI는 (0.03185403 , 0.65085579)
저 CI의 의미는 다음과 같습니다. 관찰된 1의 도수는 2죠. n,p인 이항분포에서
0.025 = Pr(Y<=2; n=8, p=0.65085579)
0.025 = Pr(Y>=2; n=8, p=0.03185403) = 1 - Pr(Y<2; p=0.03185403) = 1 - Pr(Y<=1; p=0.03185403)
R로 확인해보면
> pbinom(2,8,0.65085579)
[1] 0.025
> 1-pbinom(1,8,0.03185403)
[1] 0.02500001
첫댓글 배운 적이 없는 내용인데 잘 보고 갑니다.^^ 잘 지내시죠?
밑에 내용을 살짝 추가했습니다. 뭐 그럭저럭 지내고 있죠^^ 별일 없죠?
@안재형 네, 저도 뭐 그냥 그렇죠 ㅎㅎㅎ
R하고 SAS를 둘다 잘 아시니까 참 편하시겠네요.
모르는게 약입니다. 쉬운 방법이 있는데 쓸데없이 고생하고 있다는 생각에 좌절감만 듭니다^^