Mit spørgsmål har at gøre med forholdet mellem alfa og beta og deres definitioner i statistikker.
alpha = type I-fejlrate = signifikansniveau under overvejelse af, at NULL-hypotesen er korrekt
Beta = type II-fejlrate
Hvis alfa sænkes (specificitet øges som alpha = 1- specificitet ), beta øges (følsomhed / effekt falder som beta = 1 – følsomhed / effekt)
Hvordan påvirker en ændring i alfa beta? Er der et lineært forhold eller ej? Er forholdet alfa / beta altid det samme, med andre ord er forholdsspecificiteten / følsomheden altid den samme? Hvis ja, betyder det, at ved at bruge en bonferroni-korrektion skifter vi bare til lavere følsomhed og højere specificitet, men vi ændrer ikke følsomhed / specificitetsforhold. Er det korrekt at sige det?
Opdatering (sagsspecifikt spørgsmål):
For et givet eksperimentelt design kører vi 5 lineære modeller på dataene. Vi har en ægte positiv hastighed (følsomhed / styrke) på 0,8 og en ægte negativ hastighed (specificitet) på 0,7. (Lad os forestille os, at vi ved, hvad der skal være positivt, og hvad ikke.). Hvis vi nu korrigerer signifikansniveauet ved hjælp af Bonferroni til 0,05 / 5 = 0,01. Kan vi numerisk estimere den resulterende sande positive hastighed (følsomhed / effekt) og sand Negativ sats (specificitet)?
Mange tak for din hjælp.
Svar
$ \ alpha $ og $ \ beta $ er relaterede. Jeg prøver at illustrere pointen med en diagnostisk test. Lad os sige, at du har en diagnostisk test, der måler niveauet af en blodmarkør. Det vides, at folk, der har en bestemt sygdom, har lavere niveauer af denne markør sammenlignet med raske mennesker. Det er med det samme klart, at du skal beslutte en cutoff værdi, under hvilken en person er klassificeret som “syg”, mens mennesker med værdier over denne cutoff menes at være sunde. Det er dog meget sandsynligt, at fordelingen af blodmarkøren varierer betydeligt, selv inden for syge og raske mennesker. Nogle raske personer kan have meget lave blodmarkørniveauer, selvom de er helt raske. Og nogle syge mennesker har høje niveauer af blodmarkøren, selvom de har sygdommen.
Der er fire muligheder, der kan forekomme:
- en syg person identificeres korrekt som syg (sandt positiv = TP)
- en syg person falsk klassificeres som sund (falsk negativ = FN)
- en sund person identificeres korrekt som sund (sandt negativ = TN)
- en sund person er falskt klassificeret som syg (falsk positiv = FP)
Disse muligheder kan illustreres med en 2×2 tabel :
Sick Healthy Test positive TP FP Test negative FN TN
$ \ alpha $ angiver den falske positive hastighed, som er $ \ alpha = FP / (FP + TN) $. $ \ beta $ er den falske negative sats, som er $ \ beta = FN / (TP + FN) $. Jeg skrev et simpelt R
script for at illustrere situationen grafisk.
alphabeta <- function(mean.sick=100, sd.sick=10, mean.healthy=130, sd.healthy=10, cutoff=120, n=10000, side="below", do.plot=TRUE) { popsick <- rnorm(n, mean=mean.sick, sd=sd.sick) pophealthy <- rnorm(n, mean=mean.healthy, sd=sd.healthy) if ( side == "below" ) { truepos <- length(popsick[popsick <= cutoff]) falsepos <- length(pophealthy[pophealthy <= cutoff]) trueneg <- length(pophealthy[pophealthy > cutoff]) falseneg <- length(popsick[popsick > cutoff]) } else if ( side == "above" ) { truepos <- length(popsick[popsick >= cutoff]) falsepos <- length(pophealthy[pophealthy >= cutoff]) trueneg <- length(pophealthy[pophealthy < cutoff]) falseneg <- length(popsick[popsick < cutoff]) } twotable <- matrix(c(truepos, falsepos, falseneg, trueneg), 2, 2, byrow=T) rownames(twotable) <- c("Test positive", "Test negative") colnames(twotable) <- c("Sick", "Healthy") spec <- twotable[2,2]/(twotable[2,2] + twotable[1,2]) alpha <- 1 - spec sens <- pow <- twotable[1,1]/(twotable[1,1] + twotable[2,1]) beta <- 1 - sens pos.pred <- twotable[1,1]/(twotable[1,1] + twotable[1,2]) neg.pred <- twotable[2,2]/(twotable[2,2] + twotable[2,1]) if ( do.plot == TRUE ) { dsick <- density(popsick) dhealthy <- density(pophealthy) par(mar=c(5.5, 4, 0.5, 0.5)) plot(range(c(dsick$x, dhealthy$x)), range(c(c(dsick$y, dhealthy$y))), type = "n", xlab="", ylab="", axes=FALSE) box() axis(1, at=mean(pophealthy), lab=substitute(mu[H[0]]~paste("=",m, sep=""), list(m=mean.healthy)), cex.axis=1.5,tck=0.02) axis(1, at=mean(popsick), lab=substitute(mu[H[1]]~paste("=",m, sep=""), list(m=mean.sick)), cex.axis=1.5, tck=0.02) axis(1, at=cutoff, lab=substitute(italic(paste("Cutoff=",coff, sep="")), list(coff=cutoff)), pos=-0.004, tick=FALSE, cex.axis=1.25) lines(dhealthy, col = "steelblue", lwd=2) if ( side == "below" ) { polygon(c(cutoff, dhealthy$x[dhealthy$x<=cutoff], cutoff), c(0, dhealthy$y[dhealthy$x<=cutoff],0), col = "grey65") } else if ( side == "above" ) { polygon(c(cutoff, dhealthy$x[dhealthy$x>=cutoff], cutoff), c(0, dhealthy$y[dhealthy$x>=cutoff],0), col = "grey65") } lines(dsick, col = "red", lwd=2) if ( side == "below" ) { polygon(c(cutoff,dsick$x[dsick$x>cutoff],cutoff),c(0,dsick$y[dsick$x>cutoff],0) , col="grey90") } else if ( side == "above" ) { polygon(c(cutoff,dsick$x[dsick$x<=cutoff],cutoff),c(0,dsick$y[dsick$x<=cutoff],0) , col="grey90") } legend("topleft", legend=(c(as.expression(substitute(alpha~paste("=", a), list(a=round(alpha,3)))), as.expression(substitute(beta~paste("=", b), list(b=round(beta,3)))))), fill=c("grey65", "grey90"), cex=1.2, bty="n") abline(v=mean(popsick), lty=3) abline(v=mean(pophealthy), lty=3) abline(v=cutoff, lty=1, lwd=1.5) abline(h=0) } #list(specificity=spec, sensitivity=sens, alpha=alpha, beta=beta, power=pow, positiv.predictive=pos.pred, negative.predictive=neg.pred) c(alpha, beta) }
Lad os se på et eksempel. Vi antager, at middelniveauet for blodmarkøren blandt de syge mennesker er 100 med en standardafvigelse på 10. Blandt de raske mennesker er det gennemsnitlige blodniveau 140 med en standardafvigelse på 15. Klinikeren sætter cutoff til 120.
alphabeta(mean.sick=100, sd.sick=10, mean.healthy=140, sd.healthy=15, cutoff=120, n=100000, do.plot=TRUE, side="below") Sick Healthy Test positive 9764 901 Test negative 236 9099
Du ser, at den skyggefulde områder er i et forhold til hinanden. I dette tilfælde er $ \ alpha = 901 / (901+ 9099) \ ca. 0,09 $ og $ \ beta = 236 / (236 + 9764) \ ca. 0,024 $. Men hvad sker der, hvis kliniker havde indstillet afskæringen forskelligt? Lad os sætte den lidt lavere, til 105 og se hvad der sker.
Sick Healthy Test positive 6909 90 Test negative 3091 9910
Vores $ \ alpha $ er meget lav nu, fordi næsten ingen raske mennesker diagnosticeres som syge. Men vores $ \ beta $ er steget, fordi syge mennesker med et højt blodmarkørniveau nu falsk er klassificeret som sunde.
Lad os endelig se, hvordan $ \ alpha $ og $ \ beta $ ændrer sig for forskellige cutoffs:
cutoffs <- seq(0, 200, by=0.1) cutoff.grid <- expand.grid(cutoffs) plot.frame <- apply(cutoff.grid, MARGIN=1, FUN=alphabeta, mean.sick=100, sd.sick=10, mean.healthy=140, sd.healthy=15, n=100000, do.plot=FALSE, side="below") plot(plot.frame[1,]~cutoffs, type="l", las=1, xlab="Cutoff value", ylab="Alpha/Beta", lwd=2, cex.axis=1.5, cex.lab=1.2) lines(plot.frame[2,]~cutoffs, col="steelblue", lty=2, lwd=2) legend("topleft", legend=c(expression(alpha), expression(beta)), lwd=c(2,2),lty=c(1,2), col=c("black", "steelblue"), bty="n", cex=1.2)
Dig kan straks se, at forholdet mellem $ \ alpha $ og $ \ beta $ ikke er konstant. Hvad der også er meget vigtigt er effektstørrelsen. I dette tilfælde vil dette være forskellen på midlerne til blodmarkørniveauer blandt syge og raske mennesker. Jo større forskel, jo lettere kan de to grupper adskilles med en afskæring:
Her har vi en ” perfekt “test i den forstand, at afskæringen på 150 diskriminerer de syge fra de sunde.
Bonferroni-justeringer
Bonferroni-justeringer reducerer $ \ alpha $ -fejlen, men puster type II-fejlen ($ \ beta $) .Dette betyder, at fejlen med at tage en falsk negativ beslutning øges, mens falske positive minimeres. Derfor kaldes Bonferroni-justeringen ofte konservativ. I ovenstående grafer skal du bemærke, hvordan $ \ beta $ steg, da vi sænkede cutoff fra 120 til 105: det steg fra $ 0,02 $ til $ 0,31 $. Samtidig $ \ alpha $ faldt fra $ 0,09 $ til $ 0,01 $.
Kommentarer
- @COOLSerdash Wow dejligt svar! Tak. I dit eksempel valget af signifikant niveau kan gøres på kendte fordelinger. I biologi kan du for eksempel ikke kende fordelingen af din afhængige variabel, hvis behandlingen har en effekt. Med andre ord ved at vælge et signifikansniveau vælger du False Positive Rate, men du har næsten ingen idé hvordan den falske negative sats er indstillet. Da du faktisk ikke har nogen idé om, hvordan de sande positive og negative satser indstilles. Er det korrekt?
- @ Remi.b Tak. Jeg tror, du er korrekt. Normalt, du vælger bare $ \ alpha $ som et signifikansniveau eller foretager en effektberegning før (ved at antage antagelser om effektstørrelsen, $ \ alpha $ a nd power ($ 1- \ beta $). Men du ' har ret: du kan kontrollere $ \ alpha $ ved at vælge den, men $ \ beta $ er ofte ukendt. Dette papir er et meget godt udgangspunkt for $ p $ -værdier, og hvad $ \ alpha $ niveauer virkelig betyder.
Svar
For andre i fremtiden:
I estimering af prøvestørrelse beregnes Ztotal ved at tilføje Z svarende til alfa og Z svarende til effekt (1-beta). Så matematisk, hvis prøvestørrelsen holdes konstant, betyder det at øge Z for alpha, at du reducerer Z for effekt med den samme mængde, f.eks. Hvis du øger Zalpha fra 0,05 til 0,1, reduceres Zpower med 0,05.
Forskellen er Z for alfa er to-halet, mens Z for beta er 1-halet. Så mens Z-værdien ændres med det samme beløb, men sandsynligheden%, som denne Z-værdi svarer til, ændres ikke med den samme mængde.
Eksempel:
5% alfa ( 95% konfidens) med 80% effekt (20% beta) giver den samme stikprøvestørrelse som
20% alfa (80% konfidens) med 93,6% effekt (6,4% beta) snarere end den 95% effekt vi ville have, hvis forholdet var 1: 1.
Svar
Der er ingen generel sammenhæng mellem alfa og beta.
Alt afhænger af din test, tag det enkle eksempel:
(Wikipedia)
I dagligdags brug type I kan fejl opfattes som “at dømme en uskyldig person” og type II-fejl “at lade en skyldig gå fri”.
En jury kan være alvorlig: ingen type II-fejl, en type IA-jury kan være “venlig”: ingen type I men en type II A-jury kan være normalt: noget type I og noget type II En jury kan være perfekt: ingen fejl
I praksis er der to antagonisteffekter:
Når kvaliteten af testen stiger, t ype I og type II-fejl falder indtil et eller andet tidspunkt. Når en jury forbedrer sig, har han en tendens til at give bedre vurdering af både uskyldige og skyldige mennesker.
Efter et tidspunkt vises det underliggende problem i opbygningen af testen. Type I eller II er vigtigere for den, der kører testen. Med juryeksemplet er type I-fejl vigtigere, så lovprocessen er bygget for at undgå type I. Hvis der er tvivl, er personen fri. Intuitivt førte dette til en vækst i type II-fejl.
Med hensyn til Bonferroni:
(Wikipedia igen)
Bonferroni-korrektion styrer kun sandsynligheden for falske positive. Korrektionen koster normalt prisen for at øge sandsynligheden for at producere falske negativer og dermed reducere den statistiske styrke. Når man tester et stort antal hypoteser, kan dette resultere i store kritiske værdier.
Kommentarer
- Tak for dit svar, Det er nyttigt, men stadig noget er ikke klart for mig. Jeg opdaterede mit indlæg og tilføjede et nyt spørgsmål.