Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It seems to work as described in the article:

    require 'rubygems'
    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

    puts ci_lower_bound(60, 100, 0.10)   # => 0.517809505446319
    puts ci_lower_bound(500, 1000, 0.10) # => 0.474027691168875
    puts ci_lower_bound(50, 100, 0.10)   # => 0.418847795168265
The top ranked result has 60 positives out of 100, and beats 500 out of 1000 - almost 10 times as many positive votes.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: