= Confidence intervals for proportions using SPSS syntax = {{{ * ============================================================= . * File: CI_for_proportion.SPS . * Date: 19-Nov-2012 . * Author: Bruce Weaver, bweaver@lakeheadu.ca . * ============================================================= . * Get confidence interval for a binomial proportion using: - Wald method - Adjusted Wald method (Agresti & Coull, 1998) - Wilson score method (identical to Ghosh's 1979 method) - Jeffreys method . * The data used here are from Table I in Newcombe (1998), Statistics in Medicine, Vol 17, 857-872. DATA LIST LIST /x(f8.0) n(f8.0) confid(f5.3) . BEGIN DATA. 81 263 .95 15 148 .95 0 20 .95 1 29 .95 81 263 .90 15 148 .90 0 20 .90 1 29 .90 81 263 .99 15 148 .99 0 20 .99 1 29 .99 16 48 .95 16 48 .99 END DATA. compute alpha = 1 - confid. compute p = x/n. compute q = 1-p. compute z = probit(1-alpha/2). * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ . * Wald method (i.e., the usual normal approximation). compute #se = SQRT(p*q/n). compute Lower1 = p - z*#se. if Lower1 LT 0 Lower1 = 0. compute Upper1 = p + z*#se. if Upper1 GT 1 Upper1 = 1. * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ . * Adjusted Wald method due to Agresti & Coull (1998). compute #p = (x + z**2/2) / (n + z**2). compute #q = 1 - #p. compute #se = SQRT(#p*#q/(n+z**2)). compute Lower2 = #p - z*#se. if Lower2 LT 0 Lower2 = 0. compute Upper2 = #p + z*#se. if Upper2 GT 1 Upper2 = 1. * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ . * Wilson score method (Method 3 in Newcombe, 1998) . * Code adapted from Robert Newcombe's code posted here: http://archive.uwcm.ac.uk/uwcm/ms/Robert2.html . * The method of Ghosh (1979), as described in Glass & Hopkins * (1996, p 326) is identical to Wilson's method. * Glass & Hopkins describe it as the "method of choice for all values of p and n" . COMPUTE #x1 = 2*n*p+z**2 . COMPUTE #x2 = z*(z**2+4*n*p*(1-p))**0.5 . COMPUTE #x3 = 2*(n+z**2) . COMPUTE Lower3 = (#x1 - #x2) / #x3 . COMPUTE Upper3 = (#x1 + #x2) / #x3 . * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ . * Jeffreys method shown on the IBM-SPSS website at * http://www-01.ibm.com/support/docview.wss?uid=swg21474963 . compute Lower4 = idf.beta(alpha/2,x+.5,n-x+.5). compute Upper4 = idf.beta(1-alpha/2,x+.5,n-x+.5). * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ . * Format variables and list the results of all methods . formats p q Lower1 to Upper4 (f5.4). sort cases by p confid. list var x n confid p Lower1 to Upper4 . * Method 1: Wald method (i.e., the usual normal approximation) . * Method 2: Adjusted Wald method (using z**2/2 and z**2 rather than 2 and 4). * Method 3: Wilson score method (from Newcombe paper), identical to Ghosh (1979). * Method 4: Jeffreys method (http://www-01.ibm.com/support/docview.wss?uid=swg21474963). * Data from Newcombe (1998), Table I. variable labels x "Successes" n "Trials" p "p(Success)" confid "Confidence Level" Lower1 "Wald: Lower" Upper1 "Wald: Upper" Lower2 "Adj Wald: Lower" Upper2 "Adj Wald: Upper" Lower3 "Wilson score/Ghosh: Lower" Upper3 "Wilson score/Ghosh: Upper" Lower4 "Jeffreys: Lower" Upper4 "Jeffreys: Upper" . SUMMARIZE /TABLES=x n p confid Lower1 Upper1 Lower2 Upper2 Lower3 Upper3 Lower4 Upper4 /FORMAT=VALIDLIST NOCASENUM TOTAL /TITLE='Confidence Intervals for Binomial Proportions' /MISSING=VARIABLE /CELLS=NONE. * ============================================================= . }}}