关于R语言mcmc包示例中Monte Carlo误差计算结果列的疑问
关于mcmc包Metropolis输出中
out$batch最后5列的疑问解答 Hey,我来帮你理清这个问题的细节:
1. apply(out$batch, 2, mean)最后5列的含义
你运行的metrop()函数返回的out$batch其实包含了两组数据:
- 前5列是MCMC采样得到的5个回归系数β的样本值(对应模型里的截距+
x1-x4这4个自变量,刚好5个参数); - 最后5列则是每个β参数样本值的平方。
这也是教程里提到和E(X²)相关的原因——因为计算参数的方差时,需要用到公式Var(β) = E(β²) - [E(β)]²,metrop()默认会帮你记录参数的平方项,方便后续快速计算这类统计量。
2. 设计矩阵X的生成位置与含义
你说的X就是代码里构建的逻辑回归设计矩阵,生成它的代码是这一段:
x <- foo x$y <- NULL x <- as.matrix(x) x <- cbind(1, x) dimnames(x) <- NULL
一步步解释下这个X:
- 先从原始数据集
foo(也就是导入的logit数据)里移除响应变量y,剩下x1到x4四个自变量; - 把这些自变量转换成矩阵格式,再通过
cbind(1, x)添加一列全1的截距项; - 最后去掉维度名称,得到的这个
x就是模型里用来计算线性预测值eta = x %*% beta的设计矩阵,每一行对应一个观测样本,每一列对应一个要估计的回归参数(截距+4个自变量系数)。
内容的提问来源于stack exchange,提问作者unknown_known
相关产品推荐
相关产品推荐

