As variáveis binomiais são geralmente criadas pela soma de variáveis independentes de Bernoulli. Vamos ver se podemos começar com um par de variáveis Bernoulli correlacionadas e fazer a mesma coisa.( X, Y)
Suponhamos que é um Bernoulli variável (isto é, e ) e é um Bernoulli variável. Para determinar sua distribuição conjunta, precisamos especificar todas as quatro combinações de resultados. Escrevendo podemos facilmente descobrir o resto a partir dos axiomas da probabilidade:( p ) Pr ( X = 1 ) = pX( P )Pr ( X= 1 ) = pY ( q ) Pr ( ( X , Y ) = ( 0 , 0 ) ) = a , Pr ( ( X , Y ) = ( 1 , 0 ) ) = 1 - q - a ,Pr ( X= 0 ) = 1 - pY( q)
Pr ( ( X, Y) = ( 0 , 0 ) ) = a ,
Pr ( ( X, Y) = ( 1 , 0 ) ) = 1 - q- um ,Pr ( ( X, Y) = ( 0 , 1 ) ) = 1 - p - a ,Pr ( ( X, Y) = ( 1 , 1 ) ) = a + p + q- 1
Ao inserir isso na fórmula do coeficiente de correlação e resolver, obtemosρ
a = ( 1 - p ) ( 1 - q) + ρ p q( 1 - p ) ( 1 - q)-------------√.(1)
Desde que todas as quatro probabilidades não sejam negativas, isso fornecerá uma distribuição conjunta válida - e essa solução parametriza todas as distribuições bivariadas de Bernoulli. (Quando , existe uma solução para todas as correlações matematicamente significativas entre e ) Quando somamos dessas variáveis, a correlação permanece a mesma - mas agora as distribuições marginais são Binomial e Binomial , conforme desejado.- 1 1 np = q- 11n( n , q )( n , p )( n , q)
Exemplo
Seja , , , e gostaríamos que a correlação fosse . A solução para é (e as outras probabilidades estão em torno de , e ). Aqui está um gráfico de realizações da distribuição conjunta:p = 1 / 3 q = 3 / 4 ρ = - 4 / 5 ( 1 ) um = 0,00336735n = 10p = 1 / 3q= 3 / 4ρ = - 4 / 5( 1 )a = 0,003367350,2470,6630,0871000
As linhas vermelhas indicam as médias da amostra e a linha pontilhada é a linha de regressão. Todos estão próximos dos valores pretendidos. Os pontos foram aleatoriamente alterados nesta imagem para resolver as sobreposições: afinal, as distribuições binomiais produzem apenas valores integrais, portanto haverá uma grande quantidade de plotagem.
Uma maneira de gerar essas variáveis é amostrar vezes de com as probabilidades escolhidas e depois converter cada em , cada em , cada em e cada em . Soma os resultados (como vetores) para obter uma realização de .{ 1 , 2 , 3 , 4 } 1 ( 0 , 0 ) 2 ( 1 , 0 ) 3 ( 0 , 1 ) 4 ( 1 , 1 ) ( X , Y )n{ 1 , 2 , 3 , 4 }1( 0 , 0 )2( 1 , 0 )3( 0 , 1 )4( 1 , 1 )( X, Y)
Código
Aqui está uma R
implementação.
#
# Compute Pr(0,0) from rho, p=Pr(X=1), and q=Pr(Y=1).
#
a <- function(rho, p, q) {
rho * sqrt(p*q*(1-p)*(1-q)) + (1-p)*(1-q)
}
#
# Specify the parameters.
#
n <- 10
p <- 1/3
q <- 3/4
rho <- -4/5
#
# Compute the four probabilities for the joint distribution.
#
a.0 <- a(rho, p, q)
prob <- c(`(0,0)`=a.0, `(1,0)`=1-q-a.0, `(0,1)`=1-p-a.0, `(1,1)`=a.0+p+q-1)
if (min(prob) < 0) {
print(prob)
stop("Error: a probability is negative.")
}
#
# Illustrate generation of correlated Binomial variables.
#
set.seed(17)
n.sim <- 1000
u <- sample.int(4, n.sim * n, replace=TRUE, prob=prob)
y <- floor((u-1)/2)
x <- 1 - u %% 2
x <- colSums(matrix(x, nrow=n)) # Sum in groups of `n`
y <- colSums(matrix(y, nrow=n)) # Sum in groups of `n`
#
# Plot the empirical bivariate distribution.
#
plot(x+rnorm(length(x), sd=1/8), y+rnorm(length(y), sd=1/8),
pch=19, cex=1/2, col="#00000010",
xlab="X", ylab="Y",
main=paste("Correlation is", signif(cor(x,y), 3)))
abline(v=mean(x), h=mean(y), col="Red")
abline(lm(y ~ x), lwd=2, lty=3)