在下面的代码中,p_hat
包含给定数据样本中 X1、X2 和 X3 概率的 MLE。根据维基百科上的多项分布页面,估计概率的协方差矩阵计算如下:
set.seed(102)
X <- rmultinom(n=1, size=100, prob =c(0.1,0.3,0.6))
p_hat <- X/sum(X)
# print covariance matrix
cov_matrix <- matrix(0, nrow=length(p_hat), ncol=length(p_hat))
rownames(cov_matrix) <- c("X1","X2","X3"); colnames(cov_matrix) <- c("X1","X2","X3");
for (r in 1: length(p_hat)){
for (c in 1: length(p_hat)){
if(r==c){cov_matrix[r,c] <- p_hat[r] * (1-p_hat[r])}
else{cov_matrix[r,c] <- -p_hat[r] *p_hat[c]}
}
}
这个实现正确吗?
是否有一个 R 函数可以产生这个给定prob =c(0.1,0.3,0.6)
多项分布的协方差矩阵?