Calculation for LD (IE only)

Input Data (put numbers or percentages into box bellow)

BB Bb bb
AA
Aa
aa

Total n =   

Results

pAB= pAb=

paB= pab=

phi=

EM Algorithm

(1) Javascript Function 

    function estimateit(n22,n21,n20,n12,n11,n10,n02,n01,n00){
    //EM Algorithm

    var p11, p10, p01, p00, phi;
    var newp11, newp10, newp01, newp00;

    p11=0; p10=0; p01=0; p00=0;
    newp11=0.5; newp10=0.5; newp01=0.5; newp00=0.5;

    while (Math.abs(p11-newp11)+Math.abs(p10-newp10)+Math.abs(p01-newp01)+Math.abs(p00-newp00)>1.e-8){
        p11=newp11; p10=newp10; p01=newp01; p00=newp00;

        //E-step
        phi=p11*p00/(p11*p00+p10*p01);

        //M-step
        newp11=(2*n22+(n21+n12)+phi*n11)/2/n;
        newp10=(2*n20+(n21+n10)+(1-phi)*n11)/2/n;
        newp01=(2*n02+(n01+n12)+(1-phi)*n11)/2/n;
        newp00=(2*n00+(n10+n01)+phi*n11)/2/n;

    }
    retun(0);
    }
    

(2) MATLAB Function 

    function [p11, p10, p01, p00, phi]=estimateit(n22,n21,n20,n12,n11,n10,n02,n01,n00)
    n=n22+n21+n20+n12+n11+n10+n02+n01+n00;
    p11=0; p10=0; p01=0; p00=0;
    newp11=0.5; newp10=0.5; newp01=0.5; newp00=0.5;

    while (abs(p11-newp11)+abs(p10-newp10)+abs(p01-newp01)+abs(p00-newp00)>1.e-8)

        p11=newp11; p10=newp10; p01=newp01; p00=newp00;

        %E-step
        phi=p11*p00/(p11*p00+p10*p01);

        %M-step
        newp11=(2*n22+(n21+n12)+phi*n11)/2/n;
        newp10=(2*n20+(n21+n10)+(1-phi)*n11)/2/n;
        newp01=(2*n02+(n01+n12)+(1-phi)*n11)/2/n;
        newp00=(2*n00+(n10+n01)+phi*n11)/2/n;

    end

    

University of Florida | College of Medicine | CLAS Statistics | IFAS Statistics | Biostatistics

Please report problems to Chang-Xing Ma
Last update made Jan 20, 2005.