问题标签 [bayesglm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - R caret / rfe / bayesglm 特征选择
我正在使用bayesglm
逻辑回归问题。这是一个包含 150 行和 2000 个变量的数据集。我正在尝试进行变量选择,通常会查看glmnet
. caret::rfe
但是没有方法bayesglm
。
无论如何要手动定义一个方法rfe
吗?
r - R中使用逆高斯族的贝叶斯GLM
我正在尝试将贝叶斯 glm 模型拟合到我的数据中,假设分布和link=(identity)
. 我收到以下消息:
我不太确定为什么在我的代码适用于family =gaussian
and时收到错误消息link=identity
。
r - 贝叶斯预测,下标越界
使用bayesglm 时,我遇到了预测功能的一些问题。我读过一些帖子,说当样本外数据的级别多于样本数据时,可能会出现此问题,但我将相同的数据用于拟合和预测函数。预测适用于常规 glm,但不适用于bayesglm。例子:
无法弄清楚如何使用bayesglm 对象进行预测。有任何想法吗?谢谢!
r - R2OpenBUGS 中的贝叶斯分类逻辑模型
我正在尝试使用 MASS 库中包含的画家数据集来拟合分类逻辑模型。
我将数据集分为两部分,因此我可以在未来使用基线类别逻辑多项式模型预测学校变量的值,以评估分类响应学校与连续解释变量之间的关系。不幸的是,我的代码在没有尝试预测的情况下运行或出错。
打开 log.txt 文件,我收到以下错误消息:
模型在语法上是正确的
数据加载
预期的多元节点
显然,这对应于数据结构错误'我使用的某些变量预计具有不同的维度。虽然我尝试了不同的方法来定义我使用的实体,但我完全确信,根据理论,包含的节点具有正确的形式。BUGS 是否有可能无法与分类一起使用并希望我通过 1 次迭代将其扩展到多项式?
有任何想法吗?
经过各种试验和修改,问题的根源似乎是我试图定义 beta-priors 的方式。BUGS 不支持 R 的常用数组技巧。我尝试了一些 if 语句来运球,我发现 BUGS 语言中 if 语句的常用方式(lol?)是使用 BUGS 的 2 个函数 equals(x,z)和步骤()。所以我做了关于他们的功课并重新安排了整个
所以现在在运球下一组错误之后,我在 R 中得到一个错误,而 log.txt 文件没有给我错误类型的指示。
有任何想法吗?
r - 我可以使用 mi 包合并估算的随机效应模型估计吗?
mi
在过去的几年中,该软件包似乎在某个时候进行了相当大的重写。
下面的教程很好地概述了“旧”的做事方式:http: //thomasleeper.com/Rcourse/Tutorials/mi.html
“新”的做事方式(坚持 Leeper 的模拟演示)看起来像这样:
尽管函数名称发生了变化,但这实际上与“旧”的做事方式非常相似。
最大的变化(从我的角度来看)是替换以下“旧”功能
lm.mi(formula, mi.object, ...)
glm.mi(formula, mi.object, family = gaussian, ...)
bayesglm.mi(formula, mi.object, family = gaussian, ...)
polr.mi(formula, mi.object, ...)
bayespolr.mi(formula, mi.object, ...)
lmer.mi(formula, mi.object, rescale=FALSE, ...)
glmer.mi(formula, mi.object, family = gaussian, rescale=FALSE, ...)
.
以前,用户可以使用这些函数之一为每个估算数据集计算模型,然后使用mi.pooled()
(或者coef.mi()
如果我们遵循 Leeper 示例)将结果汇集起来。
在当前版本mi
(我安装了 v1.0)中,最后这些步骤似乎已合并为一个函数,pool()
. 该pool()
函数似乎读取了在上述插补过程中分配给变量的族和链接函数,然后bayesglm
使用指定的公式估计模型,如下所示。
这看起来我们即将恢复我们的模拟 beta 值(2 和 20)。换句话说,它的行为符合预期。
为了获得分组变量,让我们使用具有天真模拟随机效应的稍大的数据集。
由于missing_data.frame()
似乎将其解释group_var
为连续的,因此我使用change()
函数 frommi
重新分配给"un"
“无序分类”,然后按上述方式进行。
现在,除非 1.0 版删除了以前版本的功能(即和mi
可用的功能),否则我会假设在公式中添加随机效应应该指向适当的函数。但是,最初的错误消息表明情况并非如此。lmer.mi
glmer.mi
pool()
lme4
遵循我的警告消息并从我的因子中提取整数确实让我得到了一个估计值,但结果表明它pool()
仍在估计一个固定效应模型,bayesglm
并保持我尝试的随机效应常数。
我的问题是:
- 是否可以使用
mi
? 轻松生成汇总随机效应估计,以及 - 如果是,如何?
r - 没有截距的逻辑回归给出了合适的警告信息
我正在尝试在没有截距的情况下运行逻辑回归。首先,我尝试了该功能glm
,但出现以下错误:
由于鉴于我的工作性质根本不可能更改数据集,我决定使用具有代码的不同 R 程序包bayesglm
。
当我使用包括拦截在内的此功能时,我没有收到上述错误消息。-1
但是,当我通过在函数末尾 添加来排除截距时,我仍然得到与上面相同的错误,并带有以下输出:
并得到与以下相同的错误:
如果我不添加-1
删除拦截,我不会得到。
因此,我有两个问题要问:
1. 我可以忽略这个警告信息吗?
2. 否则,我可以根据这个警告信息知道如何解决问题吗?
r - R中bayesglm()函数中的参数“权重”
我正在使用bayesglm和二项式方法构建一个默认风险预测模型,我想用权重拟合模型,我试图使用主向量(公司借给一个人的金额)作为权重,但我收到这些警告信息:
校长有很大的差异,这可能是一个原因吗?我尝试了日志,也得到了相同的消息。
我的仓库在这里--> github.com/dclopezb9/Thesis 提前谢谢你!
r - 使用分类变量进行 RJAGS 编译会引发索引超出范围错误
背景
试图在比周末volume
更少的铁路小道上模拟骑自行车的人。from包含先锋谷规划委员会收集的关于当地铁路使用情况的数据。对于 90 天中的每一天,他们记录了 rail-trail (用户数量)以及它是否是一个(如果是,则为真,否则为假)。weekday
RailTrail
mosaicData
volume
weekday
模型
Yi = 第 i 天的跟踪量(用户数量)
Xi = 1 表示工作日,0 表示周末。
可能性
- Yi ∼ N(mi,s^2)
- mi =a+bXi
先验
- a ∼ N(400,100^2)
- b ∼ N(0,200^2)
- s ∼ Unif(0,200)
代码
尝试在 R 中实现这一点,如下所示:
尝试使用以下代码编译上述模型:
错误
但是,我在尝试编译时遇到以下错误:
问题
你能帮我解决这里有什么问题吗?我在 Ubuntu 20.04、MacOS Catalina 以及 RStudio Cloud 中对此进行了测试——同样的错误。rjags.version()
是4.3.0
。
r - 将先验信息纳入 R 中的岭回归 (RAPM)
我目前正在使用 R 的glmnet
包对曲棍球数据进行加权岭回归。我有一个带有虚拟变量的稀疏矩阵,除了一些其他预测变量(例如主场冰优势)之外,该矩阵表示球员在给定轮换中是在冰上进攻还是防守。我有一个权重向量,它是每个班次的长度。我的目标变量是在给定班次中发生的射速向量。
glmnet
调用如下:
(Lambda 是通过对同一数据集的交叉验证获得的,该数据集也使用glmnet
.)
截至目前,分布完全是高斯分布,每个预测变量都偏向于均值为零。我希望为每个虚拟变量合并先验信息(先验均值),并可能为每个虚拟变量设置单独的 lambda 值,但我不确定如何去做。我相信我可以使用penalty.factors 来调整每个变量的lambdas,这样我们就可以暂时把它放在一边,专注于之前的方法。
我已经研究过使用该bayesglm
包并实现prior.means,但我对它的问题有两个:它很慢,它不接受稀疏矩阵,这使得事情变得非常慢。作为参考,我的虚拟变量矩阵包含大约 600,000 行和大约 2,000 列。
我如何才能有效地将先前的手段纳入我的分析?在此先感谢您的任何建议。