假设我有 iid 随机变量。鉴于,恰好为零的概率是多少?
--
我的方法:我从考虑联合概率质量函数开始,其中和的为零,但我不知道如何进行从这里。如果我使用二项式模型来计算具有 k 个零的概率,我不知道如何对的总和施加约束。
假设我有 iid 随机变量。鉴于,恰好为零的概率是多少?
--
我的方法:我从考虑联合概率质量函数开始,其中和的为零,但我不知道如何进行从这里。如果我使用二项式模型来计算具有 k 个零的概率,我不知道如何对的总和施加约束。
是一个泊松随机变量,参数。所以你可以写下的表达式。
对于一组为零的变量,有选择一个特定的集合。然后,互补变量集的总和是一个泊松随机变量,参数为,并且与所选的个变量无关。因此,您可以使用独立性来写下表达式
,
选择个变量为 ,
选择为零且选择为零且。
你能从这里拿走吗?不应该涉及任何二项分布...
让。观察为条件的分布是多项式(练习)。这提供了一种概念上更简单的方法来思考这个问题——你有盒子,然后随机往里面扔个球。为空的概率是多少?
嗯,首先,有个球扔到盒子中,没有任何限制。
现在它变得有点复杂了,即使我们只是在数东西。有种方法可以选择保持为空的个框。然后我们剩下个球可以扔进剩下的个盒子里,这样每个盒子都不是空的。您可以通过包含/排除来做到这一点,就像在斯特林数的证明中一样https://math.stackexchange.com/questions/550256/stirling-numbers-of-second-type。
结合这些成分得到所需的概率, ,。
请注意,答案中没有
出于兴趣,作为一个快速练习,我对此进行了编码(借用了我在 Google 中找到的斯特林数函数),以查看答案的样子:
##-- 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")