Risoluzione analitica del campionamento con o senza sostituzione dopo il binomio di Poisson / Negativo


8

Versione breve

Sto cercando di risolvere analiticamente / approssimare la probabilità composita che deriva da estrazioni indipendenti di Poisson e da un ulteriore campionamento con o senza sostituzione (non mi interessa davvero quale). Voglio usare la probabilità con MCMC (Stan), quindi ho bisogno della soluzione solo fino a un termine costante. In definitiva, voglio modellare un processo in cui i sorteggi iniziali provengono da neg. distribuzione binomiale, ma penso che sarò in grado di arrivarci con una soluzione per il caso Poisson.

È possibile che la soluzione non sia fattibile (non capisco abbastanza la matematica per essere in grado di dire se si tratta di un problema semplice o molto difficile). Sono quindi interessato anche ad approssimazioni, risultati negativi o intuizione del motivo per cui il problema è probabilmente intrattabile (ad esempio il confronto con un problema difficile noto). I collegamenti a documenti / teoremi / trucchi utili che mi aiuteranno ad andare avanti sono buone risposte anche se la loro connessione al problema in questione non è stata completamente risolta.

Dichiarazione formale

Più formalmente, prima viene disegnato in modo indipendente e quindi elementi a caso da tutto per ottenere . Vale a dire che disegno palline colorate da un'urna in cui la quantità di palline di colore è disegnata da . Qui, viene assunto noto e corretto e condizioniamo su . Tecnicamente il campionamento viene eseguito senza sostituzione, ma supponendo che il campionamento con sostituzione non dovrebbe essere un grosso problema.Y=(y1,...,yN),ynPois(λn)kYZ=(z1,...,zN)knPois(λn)knynk

Ho provato due approcci da risolvere per il campionamento senza sostituzione (poiché questo sembrava essere il caso più semplice a causa di alcuni termini di annullamento), ma mi sono bloccato con entrambi. La probabilità durante il campionamento senza sostituzione è:

P(Z=(z1,...,zN)|Λ=(λ1,...,λN))=Y;n:ynzn(n=1N(ynzn)(n=1Nynk)n=1NPoisson(yn|λn))P(nynk|Λ)

EDIT: la sezione "soluzioni tentate è stata rimossa in quanto la soluzione nella risposta non si basa su di esse (ed è molto meglio)

Risposte:


3

Il caso senza sostituzione

Se si dispone di variabili distribuite indipendenti di Poissonn

YiPois(λi)

e condizione su

j=inYj=K

poi

{Yi}Multinom(K,(λij=1nλj))

Quindi potresti riempire la tua urna con volte palline colorate come prima disegnando il valore per il totale (che è il taglio distribuito di Poisson dalla condizione ) e poi riempi l'urna con palline secondo la distribuzione multinomiale.nYiKKkK

Questo riempimento dell'urna con palle, secondo una distribuzione multinomiale, equivale a disegnare per ogni palla indipendentemente il colore dalla distribuzione categoriale. Quindi puoi considerare le prime palle che sono state aggiunte all'urna come definizione del campione casuale (quando questo campione viene disegnato senza sostituzione) e la distribuzione per questo è solo un altro vettore distribuito multinomiale: Kk{Zi}

{Zi}Multinom(k,(λij=1nλj))

simulazione

##### simulating sample process for 3 variables #######


# settings
set.seed(1)
k = 10
lambda = c(4, 4, 4)
trials = 1000000

# observed counts table
Ocounts = array(0, dim = c(k+1, k+1, k+1))

for (i in c(1:trials)) {
  # draw poisson with limit sum(n) >= k
  repeat {
    Y = rpois(3,lambda)
    if (sum(Y) >= k) {break}
  }
  # setup urn
  urn <- c(rep(1, Y[1]), rep(2, Y[2]), rep(3, Y[3]))
  # draw from urn
  s <- sample(urn, k, replace=0)
  Z = c(sum(s==1),sum(s==2),sum(s==3))
  Ocounts[Z[1]+1, Z[2]+1, Z[3]+1] = Ocounts[Z[1]+1, Z[2]+1, Z[3]+1] + 1
}



# comparison
observed = rep(0, 0.5*k*(k+1))
expected = rep(0, 0.5*k*(k+1))   
t = 1

for (z1 in c(0:k)) {
  for (z2 in c(0:(k-z1))) {  
    z3 = k-z1-z2 
    observed[t] = Ocounts[z1+1, z2+1, z3+1]
    expected[t] = trials*dmultinom(c(z1, z2, z3), prob=lambda)
    t = t+1
  }
}

plot(observed,expected)
x2 <- sum((observed-expected)^2/expected)
pvalue <- 1-pchisq(x2, 66-1)

risultati

> # results from chi-sq test
> x2
[1] 75.49286
> pvalue
[1] 0.1754805

Binomio negativo

Gli argomenti funzionerebbero allo stesso modo nel caso di una distribuzione binomiale negativa che si traduce ( in determinate condizioni ) in una distribuzione multinomiale di Dirichlet.

Di seguito è riportato un esempio di simulazione

##### simulating sample process for 3 variables #######

# dirichlet multinomial for vectors of size 3
ddirmultinom =  function(x1,x2,x3,p1,p2,p3) {
  (factorial(x1+x2+x3)*gamma(p1+p2+p3)/gamma(x1+x2+x3+p1+p2+p3))/
  (factorial(x1)*gamma(p1)/gamma(x1+p1))/
  (factorial(x2)*gamma(p2)/gamma(x2+p2))/
  (factorial(x3)*gamma(p3)/gamma(x3+p3))
}

# settings
set.seed(1)
k = 10
theta = 1
lambda = c(4,4,4)
trials = 1000000

# calculating negative binomials pars
means = lambda
vars = lambda*(1+theta)

ps = (vars-means)/(vars)
rs = means^2/(vars-means)


# observed counts table
Ocounts = array(0, dim = c(k+1,k+1,k+1))

for (i in c(1:trials)) {
  # draw poisson with limit sum(n) >= k
  repeat {
    Y = rnbinom(3,rs,ps)
    if (sum(Y) >= k) {break}
  }
  # setup urn
  urn <- c(rep(1,Y[1]),rep(2,Y[2]),rep(3,Y[3]))
  # draw from urn
  s <- sample(urn,k,replace=0)
  Z = c(sum(s==1),sum(s==2),sum(s==3))
  Ocounts[Z[1]+1,Z[2]+1,Z[3]+1] = Ocounts[Z[1]+1,Z[2]+1,Z[3]+1] + 1
}



# comparison
observed = rep(0,0.5*k*(k+1))
expected = rep(0,0.5*k*(k+1))   
t = 1

for (z1 in c(0:k)) {
  for (z2 in c(0:(k-z1))) {  
    z3 = k-z1-z2 
    observed[t]=Ocounts[z1+1,z2+1,z3+1]
    expected[t]=trials*ddirmultinom(z1,z2,z3,lambda[1]/theta,lambda[2]/theta,lambda[3]/theta)
    t = t+1
  }
}

plot(observed,expected)
x2 <- sum((observed-expected)^2/expected)
pvalue <- 1-pchisq(x2,66-1)

# results from chi-sq test
x2
pvalue

1
Grazie per la risposta. Ho già provato questo approccio e ho due problemi a) non vedo perché il condizionamento della somma è lo stesso del ricampionamento (matematicamente) eb) i miei (similmente limitati) dati simulati da Poisson + ricampionamento non potrebbero essere adatti con distribuzione multinomiale. Potresti approfondire il motivo per cui condizionamento e ricampionamento sarebbero gli stessi?
Martin Modrák,

Oh, a ulteriori letture, penso di vedere il tuo punto. Forse ho appena fatto uno stupido errore con le simulazioni, andrò a controllare.
Martin Modrák,

Uso due passaggi. 1) riempire l'urna con palline colorate disegnando da distribuzioni indipendenti di Poisson, equivale a riempire l'urna disegnando un totale dalla distribuzione di Poisson e quindi l' da una distribuzione multinomiale. 2) trarre un sottoinsieme di palline da un'urna piena di palline colorate i cui numeri sono definiti da una distribuzione multinomiale, equivale a una distribuzione multiniomiale di anoter (intuizione, puoi vedere l'urna come riempita per il colore di ogni pallina la distribuzione categorica). YiYiYi=KYi
Sesto Empirico

Sì, c'era un bug nel mio codice di simulazione :-) Grazie per l'aiuto! Hai ragione e capisco anche il passo nel tuo ragionamento che non avevo visto in precedenza. Sto cercando di capire perché la stessa relazione non vale per neg. distribuzione multinomiale binomiale e di Dirichlet. (supponendo che le variabili NB abbiano fattori di Fano costanti, condizionando sulla loro somma ottengo DM) - perché "il campionamento senza sostituzione dal multinomiale" è multinomiale, ma "il campionamento senza sostituzione dal DM" non è DM (questo ragionamento è corretto secondo te? )
Martin Modrák il

1
Risulta che ho anche incasinato la seconda simulazione. Sembra funzionare anche per il caso DM.
Martin Modrák,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.