Pular para o conteúdo principal
Documentos
Compartir
LinkedIn
Facebook
Twitter
Copy
Gerenciamento de dados em REntrada de dados em RGráficos em RDocumentação RInterface REstatísticas em R

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:

  1. tamanho da amostra
  2. tamanho do efeito
  3. nível de significância = P(erro do tipo I) = probabilidade de encontrar um efeito que não existe
  4. 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 d

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 f

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.

cohen f2

Cohen f2 alternativo

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 h

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 w

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)

curvas de tamanho de amostra