Análise de potência em R
Visão geral
A análise de potência é um aspecto importante do projeto experimental. Ele nos permite determinar o tamanho da amostra necessário para detectar um efeito de um determinado tamanho com um determinado grau de confiança. Por outro lado, ele nos permite determinar a probabilidade de detectar um efeito de um determinado tamanho com um determinado nível de confiança, sob restrições de tamanho de amostra. Se a probabilidade for inaceitavelmente baixa, seria prudente alterar ou abandonar o experimento.
As quatro quantidades a seguir têm uma relação íntima:
- tamanho da amostra
- tamanho do efeito
- nível de significância = P(erro do tipo I) = probabilidade de encontrar um efeito que não existe
- poder = 1 - P(erro do tipo II) = probabilidade de encontrar um efeito que existe
Se você tiver três, poderá determinar o quarto.
Análise de potência em R
O pacote pwr, desenvolvido por Stéphane Champely, implementa a análise de potência conforme descrito por Cohen (!988)</a >. Algumas das funções mais importantes estão listadas abaixo.
função | cálculos de potência para |
pwr.2p.test | duas proporções (n igual) |
pwr.2p2n.test | duas proporções (n desigual) |
pwr.anova.test | ANOVA balanceada de uma via |
pwr.chisq.test | teste de qui-quadrado |
pwr.f2.test | modelo linear geral |
pwr.p.test | proporção (uma amostra) |
pwr.r.test | correlação |
pwr.t.test | Testes t (uma amostra, duas amostras, emparelhados) |
pwr.t2n.test | Teste t (duas amostras com n desigual) |
Para cada uma dessas funções, você insere três das quatro quantidades (tamanho do efeito, tamanho da amostra, nível de significância, potência) e a quarta é calculada.
O nível de significância padrão é 0,05. Portanto, para calcular o nível de significância, considerando o tamanho do efeito, o tamanho da amostra e a potência, use a opção "sig.level=NULL".
Especificar um tamanho de efeito pode ser uma tarefa difícil. As fórmulas ES e as sugestões de Cohen (baseadas em pesquisas de ciências sociais) são fornecidas abaixo. As sugestões de Cohen devem ser vistas apenas como diretrizes muito gerais. Você deve levar em conta sua própria experiência no assunto.
(Para explorar os intervalos de confiança e tirar conclusões a partir de amostras, experimente este curso interativo sobre os fundamentos da inferência.)</a >
Testes t
Para testes t, use as seguintes funções:
pwr.t.test(n = , d = , sig.level = , power = , type = c("two.sample", "one.sample", "paired"))</strong >
em que n é o tamanho da amostra, d é o tamanho do efeito e o tipo indica um teste t de duas amostras, um teste t de uma amostra ou um teste t pareado. Se você tiver tamanhos de amostra desiguais, use
pwr.t2n.test(n1 = , n2= , d = , sig.level =, power = )
em que n1 e n2 são os tamanhos das amostras.
Para testes t, o tamanho do efeito é avaliado como
Cohen sugere que os valores de d de 0,2, 0,5 e 0,8 representam tamanhos de efeito pequenos, médios e grandes, respectivamente.
Você pode especificar alternative="two.sided", "less" ou "greater" para indicar um teste bicaudal ou unicaudal. Um teste de duas caudas é o padrão.
ANOVA
Para uma análise de variância unidirecional, use
pwr.anova.test(k = , n = , f = , sig.level = , power = )
onde k é o número de grupos e n é o tamanho da amostra comum em cada grupo.
Para uma ANOVA unidirecional, o tamanho do efeito é medido por f, em que
Cohen sugere que os valores de f de 0,1, 0,25 e 0,4 representam tamanhos de efeito pequenos, médios e grandes, respectivamente.
Correlações
Para coeficientes de correlação, use
pwr.r.test(n = , r = , sig.level = , power = )
em que n é o tamanho da amostra e r é a correlação. Usamos o coeficiente de correlação da população como medida do tamanho do efeito. Cohen sugere que valores de r de 0,1, 0,3 e 0,5 representam tamanhos de efeito pequenos, médios e grandes, respectivamente.
Modelos lineares
Para modelos lineares (por exemplo, regressão múltipla), use
pwr.f2.test(u =, v = , f2 = , sig.level = , power = )
em que u e v são os graus de liberdade do numerador e do denominador. Usamos f2 como a medida do tamanho do efeito.
A primeira fórmula é adequada quando estamos avaliando o impacto de um conjunto de preditores em um resultado. A segunda fórmula é apropriada quando estamos avaliando o impacto de um conjunto de preditores acima e além de um segundo conjunto de preditores (ou covariáveis). Cohen sugere que os valores de f2 de 0,02, 0,15 e 0,35 representam tamanhos de efeito pequenos, médios e grandes.
Testes de proporções
Ao comparar duas proporções, use
pwr.2p.test(h = , n = , sig.level =, power = )
onde h é o tamanho do efeito e n é o tamanho da amostra comum em cada grupo.
Cohen sugere que os valores de h de 0,2, 0,5 e 0,8 representam tamanhos de efeito pequenos, médios e grandes, respectivamente.
Para n's desiguais, use
pwr.2p2n.test(h = , n1 = , n2 = , sig.level = , power = )
Para testar uma única proporção, use
pwr.p.test(h = , n = , sig.level = power = )
Para os testes de proporção de duas amostras e de uma amostra, você pode especificar alternative="two.sided", "less" ou "greater" para indicar um teste bicaudal ou unicaudal. Um teste de duas caudas é o padrão.
Testes de qui-quadrado
Para testes de qui-quadrado, use
pwr.chisq.test(w =, N = , df = , sig.level =, power = )
onde w é o tamanho do efeito, N é o tamanho total da amostra e df são os graus de liberdade. O tamanho do efeito w é definido como
Cohen sugere que os valores de w de 0,1, 0,3 e 0,5 representam tamanhos de efeito pequenos, médios e grandes, respectivamente.
Alguns exemplos
library(pwr)
# For a one-way ANOVA comparing 5 groups, calculate the
# sample size needed in each group to obtain a power of
# 0.80, when the effect size is moderate (0.25) and a
# significance level of 0.05 is employed.
pwr.anova.test(k=5,f=.25,sig.level=.05,power=.8)
# What is the power of a one-tailed t-test, with a
# significance level of 0.01, 25 people in each group,
# and an effect size equal to 0.75?
pwr.t.test(n=25,d=0.75,sig.level=.01,alternative="greater")
# Using a two-tailed test proportions, and assuming a
# significance level of 0.01 and a common sample size of
# 30 for each proportion, what effect size can be detected
# with a power of .75?
pwr.2p.test(n=30,sig.level=0.01,power=0.75)
Como criar gráficos de potência ou de tamanho da amostra
As funções do pacote pwr podem ser usadas para gerar gráficos de potência e tamanho da amostra.
# Plot sample size curves for detecting correlations of
# various sizes.
library(pwr)
# range of correlations
r <- seq(.1,.5,.01)
nr <- length(r)
# power values
p <- seq(.4,.9,.1)
np <- length(p)
# obtain sample sizes
samsize <- array(numeric(nr*np), dim=c(nr,np))
for (i in 1:np){
for (j in 1:nr){
result <- pwr.r.test(n = NULL, r = r[j],
sig.level = .05, power = p[i],
alternative = "two.sided")
samsize[j,i] <- ceiling(result$n)
}
}
# set up graph
xrange <- range(r)
yrange <- round(range(samsize))
colors <- rainbow(length(p))
plot(xrange, yrange, type="n",
xlab="Correlation Coefficient (r)",
ylab="Sample Size (n)" )
# add power curves
for (i in 1:np){
lines(r, samsize[,i], type="l", lwd=2, col=colors[i])
}
# add annotation (grid lines, title, legend)
abline(v=0, h=seq(0,yrange[2],50), lty=2, col="grey89")
abline(h=0, v=seq(xrange[1],xrange[2],.02), lty=2,
col="grey89")
title("Sample Size Estimation for Correlation Studies\n
Sig=0.05 (Two-tailed)")
legend("topright", title="Power",
as.character(p),
fill=colors)