Objective-C Wilson Evaluation Interval Implementation

I am looking for an objective-c library or just functions that can handle the calculation of the Wilson rating interval described here:

http://www.evanmiller.org/how-not-to-sort-by-average-rating.html

For reference, here is a Ruby implementation from the same source:

require 'statistics2' def ci_lower_bound(pos, n, power) if n == 0 return 0 end z = Statistics2.pnormaldist(1-power/2) phat = 1.0*pos/n (phat + z*z/(2*n) - z * Math.sqrt((phat*(1-phat)+z*z/(4*n))/n))/(1+z*z/n) end 
0
source share
1 answer

Assuming the implementation for pnormaldist listed here is correct (I copied it verbatim):

 double pnormaldist(double qn) { double b[] = {1.570796288, 0.03706987906, -0.8364353589e-3, -0.2250947176e-3, 0.6841218299e-5, 0.5824238515e-5, -0.104527497e-5, 0.8360937017e-7, -0.3231081277e-8, 0.3657763036e-10, 0.6936233982e-12}; if(qn < 0.0 || 1.0 < qn) return 0.0; if(qn == 0.5) return 0.0; double w1 = qn; if(qn > 0.5) w1 = 1.0 - w1; double w3 = -log(4.0 * w1 * (1.0 - w1)); w1 = b[0]; int i=1; for(;i<11;i++) w1 += b[i] * pow(w3,i); if(qn > 0.5) return sqrt(w1*w3); return -sqrt(w1*w3); } double ci_lower_bound(int pos, int n, double power) { if(n==0) return 0.0; double z = pnormaldist(1-power/2); double phat = 1.0*pos/n; return (phat + z*z/(2*n) - z * sqrt((phat*(1-phat)+z*z/(4*n))/n))/(1+z*z/n); } 
+1
source

All Articles