r - 使用 y[i] GAMMA(贝叶斯)的 JAGS 多元线性回归
问题描述
我对 JAGS 中的这个模型有疑问,我想用 ay[i] 进行贝叶斯线性回归,它遵循的不是正态分布而是伽马。
模型是这样的:
"model {
Priors:
a ~ dnorm(0, 0.0001) # mean, precision = N(0, 10^4)
b ~ dnorm(0, 0.0001)
shape ~ dunif(0, 100)
# Likelihood data model:
for (i in 1:N) {
linear_predictor[i] <- a + b * x[i]
# dgamma(shape, rate) in JAGS:
y[i] ~ dgamma(shape, shape / exp(linear_predictor[i]))
}
}
"
我应该改变什么以使此代码可用于具有此数据的多元线性回归?
dataListGamma = list(
x = x,
y = y,
Nx = dim(x)[2],
Ntotal = dim(x)[1]
)
我收到此错误:节点错误(形状/(exp(linear_predictor [1331])))这怎么可能?我不明白如果我再次运行它会改变导致问题的值
解决方案
像这样的东西(b
为每个元素制作一个具有相同、独立先验的向量,并使用for
循环构造线性预测器)应该可以工作:
model {
# Priors:
a ~ dnorm(0, 0.0001) # mean, precision = N(0, 10^4)
for (j in 1:Nx)
b[i] ~ dnorm(0, 0.0001)
}
shape ~ dunif(0, 100)
# Likelihood data model:
linear_predictor[i] <- a
for (i in 1:Ntotal) {
for (j in 1:Nx) {
linear_predictor[i] <- linear_predictor[i] + b[j]*N[i][j]
}
y[i] ~ dgamma(shape, shape / exp(linear_predictor[i]))
}
}
推荐阅读
- python - django中的对象比较
- javascript - 重置日期输入类型,输入显示在禁用的文本区域上并附加在之后
- flutter - Flutter 图片库保护程序 - 如何访问路径
- scikit-learn - Sklearn GridSearchCV 可用内核列表
- python - 在 Pandas 中将 12 小时制转换为 24 小时制时间格式
- javascript - JavaScript 整数作为字符串返回
- c# - 加载资源失败:服务器响应状态为 500 () | Oracle & ASP.NET Core MVC 3.1
- java - 我尝试更改 javac.sublime-build-package,但通知访问被拒绝
- java - Hibernate JPA - PESSIMISTIC_WRITE,读取锁定记录
- wordpress - 重力在按钮上形成特殊字符