Eu queria saber se seria possível gerar variáveis binomiais aleatórias correlacionadas seguindo uma abordagem de transformação linear?
Abaixo, tentei algo simples em R e isso produz alguma correlação. Mas eu queria saber se existe uma maneira de fazer isso com princípios?
X1 = rbinom(1e4, 6, .5) ; X2 = rbinom(1e4, 6, .5) ; X3 = rbinom(1e4, 6, .5) ; a = .5
Y1 = X1 + (a*X2) ; Y2 = X2 + (a*X3) ## Y1 and Y2 are supposed to be correlated
cor(Y1, Y2)
r
correlation
binomial
random-generation
bernoulli-distribution
rnorouzian
fonte
fonte
copula
, que ajuda na geração de variáveis dependentes com margens fixas.Respostas:
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 ) = p Y ( q ) Pr ( ( X , Y ) = ( 0 , 0 ) ) = a , Pr ( ( X , Y ) = ( 1 , 0 ) ) = 1 - q - a ,Pr ( X= 0 ) = 1 - p Y ( q)
Ao inserir isso na fórmula do coeficiente de correlação e resolver, obtemosρ
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 - 1 1 n ( 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 = 10 p = 1 / 3 q= 3 / 4 ρ = - 4 / 5 ( 1 ) a = 0,00336735 0,247 0,663 0,087 1000
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.fonte