Deixei Y: =X1 1+ … +Xn. Observe que a distribuição de(X1 1, ... ,Xn) condicional em Y= té multinomial (exercício). Isso fornece uma maneira conceitualmente mais fácil de pensar sobre o problema - você temn caixas e jogar tbolas neles aleatoriamente. Qual é a probabilidade de quek estão vazias?
Bem, primeiro de tudo, existem nt maneiras de jogar o t bolas no n caixas sem restrições.
Agora fica um pouco mais complicado, mesmo que apenas contemos coisas. Existem maneiras de escolher as caixas que ficam vazias. Estamos, então, saiu com bolas para jogar no caixas restantes, de modo que cada caixa não está vazia. Você pode fazer isso por inclusão / exclusão, assim como na prova do número Stirling /math/550256/stirling-numbers-of-second-type .(nk)ktn−k
A combinação desses ingredientes fornece a probabilidade desejada,
, .
1nt(nk)∑j=0n−k(−1)n−k−j(n−kj)jt,
t≥n−kn≥k
Observe que não aparece na resposta.λ
Por interesse e como exercício rápido, codifiquei isso (pegando emprestada uma função de número Stirling que encontrei no Google) para ver como é a resposta:
##-- Stirling numbers of the 2nd kind
##-- (Abramowitz/Stegun: 24,1,4 (p. 824-5 ; Table 24.4, p.835)
##> S^{(m)}_n = number of ways of partitioning a set of $n$ elements into $m$
##> non-empty subsets
Stirling2 <- function(n,m)
{
## Purpose: Stirling Numbers of the 2-nd kind
## S^{(m)}_n = number of ways of partitioning a set of
## $n$ elements into $m$ non-empty subsets
## Author: Martin Maechler, Date: May 28 1992, 23:42
## ----------------------------------------------------------------
## Abramowitz/Stegun: 24,1,4 (p. 824-5 ; Table 24.4, p.835)
## Closed Form : p.824 "C."
## ----------------------------------------------------------------
if (0 > m || m > n) stop("'m' must be in 0..n !")
k <- 0:m
sig <- rep(c(1,-1)*(-1)^m, length= m+1)# 1 for m=0; -1 1 (m=1)
## The following gives rounding errors for (25,5) :
## r <- sum( sig * k^n /(gamma(k+1)*gamma(m+1-k)) )
ga <- gamma(k+1)
round(sum( sig * k^n /(ga * rev(ga))))
}
pmf<-function(n,t,k) {
if (t >= (n-k) & n >= k) {
(choose(n,k) * factorial(n-k) * Stirling2(t,n-k) )/(n^t)
} else {
0
}
}
lambda <- 1
n <- 10
reps <- 500000
set.seed(2017)
X <- matrix(ncol=n,nrow=reps,data=rpois(n*reps,lambda))
K <- apply(X, 1,function(x){sum(x == 0)})
hist(K)
# restrict only to those that sum to t
Y<-rowSums(X)
t<-8
G<- (Y == t)
sum(G)
k <- 5
#head(X[which(K==k),])
#head(Y[which(K==k)])
#head(X[G,])
#head(Y[G])
posskvalues <- (n-t):n
nk <- length(posskvalues)
empP <- numeric(nk)
thP <- numeric(nk)
for(i in 1:nk) {
k <- posskvalues[i]
# sum(K[G] == k)
empP[i] <- sum(K[G] == k)/sum(G)
thP[i] <- pmf(n,t,k)
}
plot(posskvalues,empP,main=paste("n=",n,", t=",t))
points(posskvalues,thP,pch="x")