Softpedia
 


LINUX CATEGORIES:



GLOBAL PAGES >>
NEWS ARCHIVE >>
SOFTPEDIA REVIEWS >>
MEET THE EDITORS >>
WEEK'S BEST
  • Linux Kernel 3.9.6 / 3....
  • Linux Kernel 3.0.82 LTS...
  • KDE Software Compilatio...
  • PulseAudio 4.0
  • Wireshark 1.10.0
  • NetworkManager 0.9.8.2
  • LibreOffice 3.6.6 / 4.0...
  • SystemRescueCd 3.7.0
  • Linux Kernel 3.10 RC6
  • Ubuntu Tweak 0.8.5
  • Home > Linux > Programming > Libraries

    Statistics::ROC 0.04

    Download button

    No screenshots available
    Downloads: 434  View global page NEW!  Tell us about an update
    User Rating:
    Rated by:
    NOT RATED
    0 user(s)
    Developer:

    License / Price:

    Last Updated:

    Category:
    Hans A. Kestler | More programs
    Perl Artistic License / FREE
    May 23rd, 2007, 10:05 GMT
    ROOT / Programming / Libraries

     Read user reviews (0)  Refer to a friend  Subscribe

    Statistics::ROC description

    Statistics::ROC is a Perl module with receiver-operator-characteristic (ROC) curves with nonparametric confidence bounds.

    Statistics::ROC is a Perl module with receiver-operator-characteristic (ROC) curves with nonparametric confidence bounds.

    SYNOPSIS

    use Statistics::ROC;

    my ($y) = loggamma($x);
    my ($y) = betain($x, $p, $q, $beta);
    my ($y) = Betain($x, $p, $q);
    my ($y) = xinbta($p, $q, $beta, $alpha);
    my ($y) = Xinbta($p, $q, $alpha);
    my (@rk) = rank($type, @r);
    my (@ROC) = roc($model_type,$conf,@val_grp);

    This program determines the ROC curve and its nonparametric confidence bounds for data categorized into two groups. A ROC curve shows the relationship of probability of false alarm (x-axis) to probability of detection (y-axis) for a certain test. Expressed in medical terms: the probability of a positive test, given no disease to the probability of a positive test, given disease. The ROC curve may be used to determine an optimal cutoff point for the test.
    The main function is roc(). The other exported functions are used by roc(), but might be useful for other nonparametric statistical procedures.

    loggamma

    This procedure evaluates the natural logarithm of gamma(x) for all x>0, accurate to 10 decimal places. Stirlings formula is used for the central polynomial part of the procedure. For x=0 a value of 743.746924740801 will be returned: this is loggamma(9.9999999999E-324).

    betain

    Computes incomplete beta function ratio

    Remarks:
    Complete beta function: B(p,q)=gamma(p)*gamma(q)/gamma(p+q)
    log(B(p,q))=ln(gamma(p))+ln(gamma(q))-ln(gamma(p+q))

    Incomplete beta function ratio:
    I_x(p,q)=1/B(p,q) * int_0^x t^{p-1}*(1-t)^{q-1} dt

    --> log(B(p,q)) has to be supplied to calculate I_x(p,q)
    log denotes the natural logarithm
    $beta = log(B(p,q))
    $x = x
    $p = p
    $q = q
    The subroutine returns I_x(p,q). If an error occurs a negative value
    {-1,-2} is returned.

    Betain

    Computes the incomplete beta function by calling loggamma() and betain().

    xinbta

    Computes inverse of incomplete beta function ratio

    Remarks:

    Complete beta function: B(p,q)=gamma(p)*gamma(q)/gamma(p+q)
    log(B(p,q))=ln(gamma(p))+ln(gamma(q))-ln(gamma(p+q))

    Incomplete beta function ratio:
    alpha = I_x(p,q) = 1/B(p,q) * int_0^x t^{p-1}*(1-t)^{q-1} dt

    --> log(B(p,q)) has to be supplied to calculate I_x(p,q)
    log denotes the natural logarithm
    $beta = log(B(p,q))
    $alpha= I_x(p,q)
    $p = p
    $q = q
    The subroutine returns x. If an error occurs a negative value {-1,-2,-3}
    is returned.

    Xinbta

    Computes the inverse of the incomplete beta function by calling loggamma() and xinbta().

    rank

    Computes the ranks of the values specified as the second argument (an array). Returns a vector of ranks corresponding to the input vector. Different types of ranking are possible ('high', 'low', 'mean'), and are specified as first argument. These differ in the way ties of the input vector, i.e. identical values, are treated:

    high:

    replace ranks of identical values with their highest rank

    low:

    replace ranks of identical values with their lowest rank

    mean:

    replace ranks of identical values with the mean of their ranks

    roc

    Determines the ROC curve and its nonparametric confidence bounds. The ROC curve shows the relationship of "probability of false alarm" (x-axis) to "probability of detection" (y-axis) for a certain test. Or in medical terms: the "probability of a positive test, given no disease" to the "probability of a positive test, given disease". The ROC curve may be used to determine an "optimal" cutoff point for the test.

    The routine takes three arguments:

    (1) type of model: 'decrease' or 'increase', this states the assumption that a higher ('increase') value of the data tends to be an indicator of a positive test result or for the model 'decrease' a lower value.
    (2) two-sided confidence interval (usually 0.95 is chosen).
    (3) the data stored as a list-of-lists: each entry in this list consits of an "value / true group" pair, i.e. value / disease present. Group values are from {0,1}. 0 stands for disease (or signal) not present (prior knowledge) and 1 for disease (or signal) present (prior knowledge). Example: @s=([2, 0], [12.5, 1], [3, 0], [10, 1], [9.5, 0], [9, 1]); Notice the small overlap of the groups. The optimal cutoff point to separate the two groups would be between 9 and 9.5 if the criterion of optimality is to maximize the probability of detection and simultaneously minimize the probability of false alarm.

    Returns a list-of-lists with the three curves: @ROC=([@lower_b], [@roc], [@upper_b]) each of the curves is again a list-of-lists with each entry consisting of one (x,y) pair.

    Examples:

    $,=" ";
    print loggamma(10), "n";
    print Xinbta(3,4,Betain(.6,3,4)),"n";

    @e=(0.7, 0.7, 0.9, 0.6, 1.0, 1.1, 1,.7,.6);
    print rank('low',@e),"n";
    print rank('high',@e),"n";
    print rank('mean',@e),"n";

    @var_grp=([1.5,0],[1.4,0],[1.4,0],[1.3,0],[1.2,0],[1,0],[0.8,0],
    [1.1,1],[1,1],[1,1],[0.9,1],[0.7,1],[0.7,1],[0.6,1]);
    @curves=roc('decrease',0.95,@var_grp);
    print "$curves[0][2][0] $curves[0][2][1] n";

    Requirements:

    · Perl



    Product's homepage

    Requirements:

    · Perl

      


    TAGS:

    receiver-operator-characteristic curves | ROC statistics | Perl module | Statistics::ROC | receiver | operator

    Go to top

    WindowsGamesDriversMacLinuxScriptsMobileHandheldNews

    SUBMIT PROGRAM   |   ADVERTISE   |   GET HELP   |   SEND US FEEDBACK   |   RSS FEEDS   |   UPDATE YOUR SOFTWARE   |   ROMANIAN FORUM