function graph(){window.open('rocgr.html','ROCgraph','toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=500,height=400');}<!--end.f.graph-->function calc(){var nlev = 1*0;var xfpf = new Array(10);var xtpf = new Array(10);var xfpp = new Array(10);var xtpp = new Array(10);var tell = "Results:\r";var topfp = 1*0;var toptp = 1*0;if(document.fpp.elements[0].value==""){for (var i=0; i<10; i++) {if(document.fpf.elements[i].value!=""){nlev++}}<!--end.for-->for (var i=0; i<nlev; i++) {topfp+=document.fpf.elements[i].value*1;toptp+= document.tpf.elements[i].value*1;xfpf[i] = document.fpf.elements[i].value*1;xtpf[i] = document.tpf.elements[i].value*1;xfpp[i] = topfp;xtpp[i] = toptp;}<!--end.for-->for (var i=0; i<nlev; i++) {xfpp[i] = Math.round((xfpp[i]/topfp)*10000)/10000;document.fpp.elements[i].value = xfpp[i];xtpp[i] = Math.round((xtpp[i]/toptp)*10000)/10000;document.tpp.elements[i].value = xtpp[i];}<!--end.for-->}else{for (var i=0; i<10; i++) {if(document.fpp.elements[i].value!=""){nlev++}}<!--end.for-->for (var i=0; i<nlev; i++) {xfpp[i] = eval(document.fpp.elements[i].value);xtpp[i] = eval(document.tpp.elements[i].value);document.fpp.elements[i].value = Math.round(xfpp[i]*10000)/10000;document.tpp.elements[i].value = Math.round(xtpp[i]*10000)/10000;}<!--end.for-->topfp = "unspecified";toptp = "unspecified";}<!--end.if.else-->var pry = new Array();var sumdsq = 1*0;var holdsq = 200000000000;var t1 = 1*0;var t2 = 1*1;for (var i=0; i<50; i++) {t1 = t1+.01*1;sumdsq = 1*0;for (var j=0; j<nlev-1; j++) {pry[j] = (t1*Math.log(xfpp[j]))+t2;pry[j] = xtpp[j]-pry[j];sumdsq+=pry[j]*pry[j]*1000;}<!--end.for.j-->if(sumdsq<holdsq){holdsq=sumdsq}else{t1-=.01;break}}<!--end.for.i-->for (var i=0; i<50; i++) {t2 = t2-.01;sumdsq = 1*0;for (var j=0; j<nlev-1; j++) {pry[j] = (t1*Math.log(xfpp[j]))+t2;pry[j] = xtpp[j]-pry[j];sumdsq+=pry[j]*pry[j]*1000;}<!--end.for.j-->if(sumdsq<holdsq){holdsq=sumdsq}else{t2+=.01;break}}<!--end.for.i-->var sumob = 1*0;var sumex = 1*0;var sumsqob = 1*0;var sumsqex = 1*0;var sumobex = 1*0;var r = 1*0;for (var i=0; i<nlev-1; i++) {pry[i] = (t1*Math.log(xfpp[i]))+t2;sumex+=pry[i]*1;sumsqex+=pry[i]*pry[i];sumob+=xtpp[i]*1;sumsqob+=xtpp[i]*xtpp[i];sumobex+=pry[i]*xtpp[i];}<!--end.for-->sumobex = sumobex-((sumex*sumob)/(nlev-1));sumsqob = sumsqob-((sumob*sumob)/(nlev-1));sumsqex = sumsqex-((sumex*sumex)/(nlev-1));r = sumobex/Math.sqrt(sumsqob*sumsqex);r = Math.round(r*r*10000)/10000;t1 = Math.round(t1*100)/100;t2 = Math.round(t2*100)/100;document.grph.elements[0].value = t1;document.grph.elements[2].value = t2;var kk = 1*0;var area = 1*0;for (var i=0; i<99; i++) {kk+=.01*1;area+= (t1*Math.log(kk))+t2;}<!--end.for-->area = area/99;area = Math.round(area*10000)/10000;tell+="\rNumber of actually negative cases = "+topfp+"\rNumber of actually positive cases = "+toptp+"\r\rWith:\rx = false positive rates (1-specificity)\r      ";for (var i=0; i<nlev-1; i++) {tell+=Math.round(xfpp[i]*10000)/10000+"   ";}<!--end.for-->tell+="\ry = true positive rates (sensitivity)\r      ";for (var i=0; i<nlev-1; i++) {tell+=Math.round(xtpp[i]*10000)/10000+"   ";}<!--end.for-->tell+="\r\rFitted curve:  y = "+t1+"Ln(x) + "+t2+"\rR^2 = "+r+"\rArea under curve = "+area;tell+="\r\rEstimated ROC curve with\r  Column 1 = false positive rates (1-specificity)\r  Column 2 = true positive rates (sensitivity)\r\r";var count = 1*0;tell+="<pre>\r\r";for (var i=0; i<19; i++) {count+=.05*1;tell+=Math.round(count*100)/100+"     \t"+ Math.round((t1*(Math.log(count))+t2)*10000)/10000+"\r";}<!--end.for-->tell+="\r\r\r\r\r\r\r</pre>";document.tell.elements[0].value = tell;if(nlev<4){document.tell.elements[0].value = "You must have at least 4 diagnostic levels for this procedure to make any sense.";}}<!--end.f.calc-->function wipe() {for (var i=0; i<10; i++) {document.level.elements[i].value = i+1*1;document.fpf.elements[i].value = "";document.tpf.elements[i].value = "";document.fpp.elements[i].value = "";document.tpp.elements[i].value = "";}document.tell.elements[0].value = "Results:";document.grph.elements[0].value = "";document.grph.elements[2].value = "";}<!--end.f.wipe-->function display1(){wipe();document.fpf.elements[0].value = 1*1;document.fpf.elements[1].value = 17*1;document.fpf.elements[2].value = 36*1;document.fpf.elements[3].value = 39*1;document.tpf.elements[0].value = 18*1;document.tpf.elements[1].value = 7*1;document.tpf.elements[2].value = 4*1;document.tpf.elements[3].value = 3*1;}function display2(){wipe();document.fpp.elements[0].value = .0108*1;document.fpp.elements[1].value = .1935*1;document.fpp.elements[2].value = .5806*1;document.fpp.elements[3].value = 1*1;document.tpp.elements[0].value = .5625*1;document.tpp.elements[1].value = .7813*1;document.tpp.elements[2].value = .9063*1;document.tpp.elements[3].value = 1*1;}function display3(){wipe();document.fpp.elements[0].value = "1/93";document.fpp.elements[1].value = "18/93";document.fpp.elements[2].value = "54/93";document.fpp.elements[3].value = "93/93";document.tpp.elements[0].value = "18/32";document.tpp.elements[1].value = "25/32";document.tpp.elements[2].value = "29/32";document.tpp.elements[3].value = "32/32";}function unwipe(){var date = new Date();var aa = '<BODY BGCOLOR="#FFFFFF" linkColor="010785" vlinkColor="010785"><font face="verdana, arial"><b><FONT COLOR="010785">VassarStats Printable Report<BR>Simple ROC Curve Analysis</FONT></b><br>'+date+'<HR>';var spql = document.tell.elements[0].value;spql = spql.split("\r");var spdl = aa;for (var i=0; i<spql.length; i++) {spdl+=spql[i]+"<BR>";}document.open();document.write(spdl);document.close();}