LISTAGEM DO PROGRAMA

Um Programa para o Cálculo da Acurácia, Especificidade e Sensibilidade de Testes Médicos
Renato M.E. Sabbatini



CLS:PRINT "Calculadora de Estatisticas de Desempenho de Testes Medicos"
PRINT "(c) 1995 Renato M.E. Sabbatini, PhD"
PRINT "Nucleo de Informatica Biomedica da UNICAMP":PRINT
f$="###.### "
LINE INPUT "Titulo do experimento: ";titulo$ : IF titulo$="" THEN STOP
LINE INPUT "Nome do teste: ";nome$
LINE INPUT "Nome da variavel testada: ";variavel$
INPUT "Numero de tabelas 2x2: ",numero : IF numero=0 THEN STOP
INPUT "Imprimir resultados (S/N)";impr$ : impr$=UCASE$(LEFT$(impr$,1))
IF impr$="S" THEN
LPRINT titulo$:LPRINT nome$ : LPRINT "Variavel testada: ";variavel$
LPRINT "------------------------------------------------------------"
LPRINT "Acurac Sensib Especif Eficac Predit+ Predit- Qui2 Signif"
LPRINT "------------------------------------------------------------"
END IF
FOR i=1 TO numero
COLOR 15,1
CLS:PRINT titulo$:PRINT "Tabela ";i:PRINT
PRINT " ";variavel$
PRINT " REAL TOTAL"
PRINT "---------------------------------------------"
PRINT " - +
PRINT "---------------------------------------------"
PRINT " -
PRINT "---------------------------------------------"
PRINT " +
PRINT "---------------------------------------------"
PRINT " TOTAL
PRINT "---------------------------------------------"
LOCATE 09,17:LINE INPUT d$ : LOCATE 09,33:LINE INPUT c$
LOCATE 11,17:LINE INPUT b$ : LOCATE 11,33:LINE INPUT a$
a=VAL(a$):b=VAL(b$):c=VAL(c$):d=VAL(d$):n=a+b+c+d
q=n*(a*d-b*c)^2/((a+b)*(c+d)*(a+c)*(b+d))
LOCATE 09,43:PRINT USING "###";c+d
LOCATE 11,43:PRINT USING "###";a+b
LOCATE 13,16:PRINT USING "###";d+b
LOCATE 13,32:PRINT USING "###";a+c
LOCATE 13,43:PRINT USING "###";n
LOCATE 16,01:PRINT "Acuracidade : ";USING f$;(a+d)/n*100
LOCATE 17,01:PRINT "Sensibilidade : ";USING f$;a/(a+c)*100
LOCATE 18,01:PRINT "Especificidade : ";USING f$;d/(b+d)*100
LOCATE 19,01:PRINT "Eficacia : ";USING f$;(a/(a+c)+d/(b+d))/2*100
LOCATE 20,01:PRINT "Preditividade+ : ";USING f$;b/(a+b)*100
LOCATE 21,01:PRINT "Preditividade- : ";USING f$;d/(c+d)*100
LOCATE 16,40:PRINT "Qui-quadrado : ";USING f$;q
LOCATE 17,40:PRINT "Significancia : ";
IF q>>6.35 THEN
p$="p<<0,01"
ELSEIF q>>3.62 THEN
p$="p<<0.05"
ELSE
p$="p>>0.05"
END IF
PRINT p$
LOCATE 18,40:PRINT "Graus de liberdade: 1"
IF impr$="S" THEN
LPRINT USING f$;(a+d)/n*100;a/(a+c)*100;d/(b+d)*100;(a/(a+c)+d/(b+d))/2*100; _
b/(a+b)*100;d/(c+d)*100;q;" ";p$
END IF
WHILE INKEY$="":LOCATE 22,70:PRINT "[ENTER]":WEND
NEXT i
IF impr$="S" THEN
LPRINT "------------------------------------------------------------"
LPRINT CHR$(12)
END IF
END

Voltar ao artigo

Copyright (c) 1995 Renato M.E. Sabbatini