Sprechen wir über die Sensitivität (die wir mit ), die Spezifität ist ähnlich. Das Folgende ist ein frequentistischer Ansatz; Es wäre großartig, wenn einer der Bayesianer hier eine andere Antwort hinzufügen könnte, um eine alternative Vorgehensweise zu diskutieren.p
Angenommen, Sie haben krebskranke Personen eingestellt. Wenden Sie Ihren Biomarker-Test auf jeden an, sodass Sie eine Folge von Nullen und Einsen erhalten, die wir aufrufen . Die Einträge von haben eine Bernoulli-Verteilung mit Erfolgswahrscheinlichkeit . Die Schätzung von ist . Hoffentlich ist "groß" und Sie können die Genauigkeit Ihrer Schätzung anhand eines Konfidenzintervalls für beurteilen . nx
x
ppp^= ∑ x / np^p
Ihre Frage besagt, dass Sie wissen möchten, wie groß sein sollte. Um dies zu beantworten, müssen Sie in der Biomarker-Literatur nachlesen, wie groß "groß" ist und wie gering die Empfindlichkeit ist, die Sie aufgrund von Stichprobenfehlern tolerieren können. Angenommen, Sie entscheiden, dass ein Biomarker "gut" ist, wenn seine Empfindlichkeit größer als (was eigentlich nicht so gut ist), und Sie möchten, dass groß genug ist, damit eine 90% ige Chance besteht, eine Empfindlichkeit von zu erkennen . Angenommen, Sie möchten Ihr Signifikanzniveau auf . np = 0,5np = 0,57α = 0,05
Es gibt mindestens zwei Ansätze - Analyse und Simulation. Das pwr
Paket in ist R
bereits vorhanden, um bei diesem Entwurf zu helfen - Sie müssen es zuerst installieren. Als nächstes benötigen Sie eine Effektgröße, dann ist die gewünschte Funktion pwr.p.test
.
library(pwr)
h1 <- ES.h(0.57, 0.5)
pwr.p.test(h = h1, n = NULL, sig.level = 0.05, power = 0.9, alt = "greater")
proportion power calculation for binomial distribution (arc...
h = 0.1404614
n = 434.0651
sig.level = 0.05
power = 0.9
alternative = greater
Sie benötigen also ungefähr krebskranke Personen, um eine Empfindlichkeit von mit einer Leistung von wenn Ihr Signifikanzniveau beträgt . Ich habe auch den Simulationsansatz ausprobiert und er gibt eine ähnliche Antwort. Wenn die wahre Empfindlichkeit höher als (Ihr Biomarker ist besser), brauchen Sie natürlich weniger Leute, um sie zu erkennen.4350,570,900,050,57
Sobald Sie Ihre Daten erhalten haben, können Sie den Test folgendermaßen ausführen (ich werde die Daten aus Gründen der Argumentation simulieren).
n <- 435
sens <- 0.57
x <- rbinom(n, size = 1, prob = sens)
binom.test(sum(x), n, p = 0.5, alt = "greater")
Exact binomial test
data: sum(x) and n
number of successes = 247, number of trials = 435,
p-value = 0.002681
alternative hypothesis: true probability of success is greater than 0.5
95 percent confidence interval:
0.527342 1.000000
sample estimates:
probability of success
0.5678161
Die geschätzte Empfindlichkeit beträgt . Was wirklich zählt, ist das Konfidenzintervall für das in diesem Fall beträgt .0,568p[ 0.527 , 1 ]
BEARBEITEN: Wenn Ihnen der Simulationsansatz besser gefällt, können Sie dies folgendermaßen tun: einstellen
n <- 435
sens <- 0.57
nSim <- 1000
und lass runTest
sein
runTest <- function(){
x <- rbinom(1, size = n, prob = sens)
tmp <- binom.test(x, n, p = 0.5, alt = "greater")
tmp$p.value < 0.05
}
Die Schätzung der Macht ist also
mean(replicate(nSim, runTest()))
[1] 0.887