Porozmawiajmy o wrażliwości (którą oznaczymy przez ), specyficzność jest podobna. Oto podejście częste; Byłoby wspaniale, gdyby jeden z Bayesian mógł dodać kolejną odpowiedź, aby omówić alternatywny sposób rozwiązania tego problemu.p
Załóżmy, że zwerbowałeś osób chorych na raka. Do każdego z nich zastosujesz test biomarkera, aby uzyskać ciąg zer i jedynek, które nazwiemy . Wpisy będą miały rozkład Bernoulliego z prawdopodobieństwem sukcesu p . Oszacowanie p wynosi P = Σ x / n . Mam nadzieję, że p jest „duży”, a można ocenić precyzję swojej oszacowania poprzez przedziału ufności dla p . nx
x
ppp^= ∑ x / np^p
np = 0,5np = 0,57α = 0,05
Istnieją co najmniej dwa podejścia - analityczne i symulacyjne. pwr
Pakiet w R
już istnieje, aby pomóc w tym projekcie - trzeba go najpierw zainstalować. Następnie potrzebujesz rozmiaru efektu, a następnie pożądaną funkcją jest 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
4350.570.900.050.57
Gdy zdobędziesz swoje dane, sposobem na uruchomienie testu jest (symuluję dane ze względu na argument).
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
0.568p[0.527,1]
EDYCJA: Jeśli bardziej podoba ci się podejście do symulacji, możesz to zrobić w następujący sposób: ustaw
n <- 435
sens <- 0.57
nSim <- 1000
i niech runTest
będzie
runTest <- function(){
x <- rbinom(1, size = n, prob = sens)
tmp <- binom.test(x, n, p = 0.5, alt = "greater")
tmp$p.value < 0.05
}
więc oszacowanie mocy jest
mean(replicate(nSim, runTest()))
[1] 0.887