Fallstudium 5 - Soluzioni
Dr Giorgio Pioda
14 gennaio 2019
FS 5
drugcheck <- read.delim("~/Scuola/SSMT/TAB-TRM/R2018/TAB3/fs5/fs5_data/drugcheck.txt") innovation <- read.delim("~/Scuola/SSMT/TAB-TRM/R2018/TAB3/fs5/fs5_data/innovation.txt") mueller <- read.delim("~/Scuola/SSMT/TAB-TRM/R2018/TAB3/fs5/fs5_data/mueller_grezzi.txt")Kappa di Coen semplice
Qui sotto un cofronto tra test rapidi per la detezione degli stupefacenti nelle urine1 lkappa(drugcheck)
## [1] 0.9677412
Creazione di una tabella a doppia entrata
tabella<-xtabs(~Drug_Control+DrugCheck,data=drugcheck)
Estrazione di una sottotabella 2x2
bzd.t<-grep("BZD",drugcheck$Drug_Control) bzd.df<-data.frame(drugcheck[bzd.t,])
bzd.tab<-xtabs(~Drug_Control+DrugCheck,data=bzd.df,drop.unused.level=TRUE) kable(bzd.tab)
BZDN BZDP
BZDN 16 2
BZDP 5 26
Si esplori il ruolo dell’opzione essenziale “drop.unused.level=TRUE” provando a non usarla È necessario poi trasporre la matrice per avere i dati gold standard sulle colonne.
bzd.tabt<-t(bzd.tab) kable(bzd.tabt)
BZDN BZDP
BZDN 16 5
BZDP 2 26
Con questa matrice si possono calcolare i valori di sensibilità, specificità, valore predittivo positivo e negativo 1Lavoro di diploma di Mara Despotovic, 2011, per gentile concessione
FS 5 Fallstudium 5 Soluzioni
tramite l’uso del pacchetto epiR epi.tests(bzd.tabt)
## Outcome + Outcome - Total
## Test + 16 5 21
## Test - 2 26 28
## Total 18 31 49
##
## Point estimates and 95 % CIs:
## ---## Apparent prevalence 0.43 (0.29, 0.58)
## True prevalence 0.37 (0.23, 0.52)
## Sensitivity 0.89 (0.65, 0.99)
## Specificity 0.84 (0.66, 0.95)
## Positive predictive value 0.76 (0.53, 0.92) ## Negative predictive value 0.93 (0.76, 0.99) ## Positive likelihood ratio 5.51 (2.43, 12.50) ## Negative likelihood ratio 0.13 (0.04, 0.49) ##
---Gli intervalli di confidenza su questi dati sono ampi in quanto il dataset è veramente di dimensione ridotto. Moltiplicando per 10 tutti i dati si può vedere che se le proporzioni fossero mantenute gli intervalli ottenuti sarebbero molto più piccoli
bzd.mult<-10*bzd.tabt epi.tests(bzd.mult)
## Outcome + Outcome - Total
## Test + 160 50 210
## Test - 20 260 280
## Total 180 310 490
##
## Point estimates and 95 % CIs:
## ---## Apparent prevalence 0.43 (0.38, 0.47)
## True prevalence 0.37 (0.32, 0.41)
## Sensitivity 0.89 (0.83, 0.93)
## Specificity 0.84 (0.79, 0.88)
## Positive predictive value 0.76 (0.70, 0.82) ## Negative predictive value 0.93 (0.89, 0.96) ## Positive likelihood ratio 5.51 (4.25, 7.14) ## Negative likelihood ratio 0.13 (0.09, 0.20) ##
---Kappa di Coen su tabelle nxn calcolate sul confronto tra metodo manuale e automatizzato di lettura dei pap test2. Gli intervalli di confidenza vengono calcolati con il metodo di ricampionamento bootstrap (la soluzione
analitica per il calcolo degli i.c. non è agibile in questo caso) pap.t<-xtabs(~IMAGER+MANUALE,data=mueller)
lkappa.boot <- function(data,x) {lkappa(data[x,],type="Cohen")} res <- boot(mueller,lkappa.boot,1000)
quantile(res$t,c(0.025,0.975))
## 2.5% 97.5%
## 0.9010234 0.9407270
Quando i dati di concordanza hanno una gradazione definita gli elementi fuori dalla diagonale ottengono 2Lavoro di diploma di Mueller, 2010, per gentile concessione.
FS 5 Fallstudium 5 Soluzioni
un peso diverso a dipendenza da quanto sono distanti dalla diagonale stessa. Quelli più vicini danno una riduzionedella concordanza minore di quelli molto lontani. Questo viene fatto con l’opzione “type=weighted”. Un esempio di questo utilizzo qui sotto con una lettura di stick colorimetrici per la presenza dei batteri nelle urine3
Bact <- read.csv("~/Scuola/SSMT/TAB-TRM/R2018/TAB3/fs5/Bact.csv", sep=";") lkappa(Bact[,3:4],type="weighted",weights="squared")
## [1] 0.6938306
lkappa.boot <- function(data,x) {lkappa(data[x,], type="weighted", weights="squared")} res <- boot(Bact[,3:4],lkappa.boot,1000)
quantile(res$t,c(0.025,0.975))
## 2.5% 97.5%
## 0.4973147 0.8085033 boot.ci(res,type="bca")
## BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS ## Based on 1000 bootstrap replicates
##
## CALL :
## boot.ci(boot.out = res, type = "bca") ##
## Intervals : ## Level BCa
## 95% ( 0.5173, 0.8198 )
## Calculations and Intervals on Original Scale
3Dati lavoro di diploma di Sandra Damiano, 2017, per gentile concessione.