问题标签 [model-comparison]

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.

0 投票
0 回答
275 浏览

r - Akaike 信息准则 (AIC) 逐步回归 - 不同变量相同

我一直在运行 AIC,以便为我一直在运行的逐步回归模型选择变量。数据是景观数据,是在 19 个测试地点周围 4 个半径(1 公里、2 公里、3 公里和 4 公里)内的部分景观已经相交,并且景观参数(例如可耕地百分比和森林覆盖百分比)已被用作预测损失的变量某种农业害虫。当我在具有不同半径变量的模型上运行 AIC 以查看哪种组合最适合时,我在某些组合上得到了相同的 AIC。

前任。虫害对 % 森林覆盖率(半径 4000m)、化学处理(杀虫剂喷洒次数)和 1000m 半径内耕地百分比的损害

--> AIC = 20.84039

如果我将可耕地百分比变量从 4000 米的半径更改为 3000 米的半径,AIC 是相同的。

--> AIC = 20.84039

所以我的问题是,有人知道为什么这两种型号的 AIC 相同吗?可能仅仅是因为变量发生了变化( 4000m 半径内的耕地百分比与 3000m 半径内的耕地百分比相似吗?也就是说,两个半径之间的耕地百分比没有太大变化?)

干杯。

0 投票
0 回答
617 浏览

r - 使用 AIC 比较混合分布模型(在 mixdist 中计算;R)

我正在使用mixdist包将长度频率数据建模为单独的群组,这与此处发布的方法非常相似(特别是函数 mix())。

目前,我一直在查看原始数据的大小频率直方图,确定要尝试的合理数量的组件(通常为 2 或 3 个),然后选择卡方最低的模型(只要图/均值是明智的)。我使用相同的方法来选择要使用的发行版。

但是,我想进一步了解我的模型选择。

首先,我想比较不同的分布(即正态、对数正态和伽玛)(提取的分量保持不变)——最好使用 AIC

其次,我想使用 AIC 评估模型与基础数据之间的距离

最后,我想估计一个模型相对于正在评估的其他模型最能代表基础数据的概率。

但是,我不确定如何使用混合数据来做到这一点!任何建议都将不胜感激(以及评估混合模型执行情况的一些替代方法)。

这是一个示例代码....

0 投票
2 回答
499 浏览

r - R mtcars 数据集模型选择 - 包含 am 时模型发生显着变化

我正在尝试为 mtcars 数据集做一些模型拟合。我做了一个只包含传输的模型,它给了我这个: 在此处输入图像描述

由于 adj R^2 只有 0.338,我一直在寻找另一个模型。

为此,我首先用 1 个变量拟合所有可能的模型( mpg~wt 、 mpg~cyl 、 mpg~hp ,...并采用调整后 R^2 最高的模型,结果是 mpg~wt 在此处输入图像描述

然后我用 wt + 一个其他变量拟合所有可能的模型,并采用具有最高调整 R^2 的模型,其中 p 值没有变得更高。这是模型 mpg ~ wt+cyl。 在此处输入图像描述

然后我用 wt + cyl + 一个其他变量拟合所有可能的模型,并寻找具有最高调整 R^2 的模型,其中 p 值没有变得更高。我发现没有其他模型具有更高的 R^2 和更小的 p 值。(有mpg~wt+cyl+hp但p值高于mpg~wt+cyl)

所以,我的问题来了:

当我现在包含 am 以查看是否有差异时,一切都会改变:adjustedR^2 变得更好;p 变得更糟。但是突然之间 cyl 不再重要了。(它从 Pr 0.000222 更改为 0.2119)从系数输出中,我会清楚地将 am 从列表中排除,因为它不显着的概率为 31.42%。

这里发生了什么? 从我的第一个模型(mpg~am)开始,我得出结论,在 mtcars 数据集中应该有一些意义。 在此处输入图像描述

0 投票
0 回答
423 浏览

r - 比较不同类型模型(beta 和 normal)的 AIC

我的响应主要集中在 0.6-0.7 左右,其中没有多少接近 0 或 1。我尝试拟合正常模型和 beta 模型,正常模型产生的 AIC 低于 beta 模型。我使用 lm 包来拟合普通模型,使用 betareg 来拟合 beta 模型。但我想知道是否真的可以比较不同模型类型的 AIC 值?我当然会为两个回归使用相同的响应变量和相同的数据。

注意:我试图在这里阅读有关 Kullback-Leibler 散度的信息:http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber= 4049836(名称:AIC 标准和对称 Kullback-Leibler 散度),但感到困惑通过第二页上的这句话:“还假设在 [12] 中搜索是在包含真实模型的参数分布族中进行的。”,其中 [12] 指的是 1974 年的 Akaikes 文章。这是否意味着我不能比较来自 beta 和正常模型的 AIC,因为真正的模型不能既是 beta 又是正常的?
注意 2:我尝试对响应进行 logit 变换,然后拟合正常模型,但这只会使残差图看起来更糟。

0 投票
1 回答
542 浏览

r - R中的AIC:使用加权数据时手动值与内部值的差异

我正在尝试根据 AIC 统计使用 R 进行模型选择。在比较带或不带加权的线性模型时,我在 R 中的代码告诉我,与不加权相比,加权更可取,并且这些结果在其他软件 (GraphPad Prism) 中得到了证实。我有使用来自标准曲线的真实数据的示例代码:

当我使用 R 中的内部函数或通过手动计算计算 AIC 时,其中:

AIC = n + n log 2π + n log(RSS/n) + 2(k + 1),具有n 个观测值和k个参数

我得到非加权模型的等效 AIC 值。当我分析加权的影响时,手动 AIC 值较低,但最终结果是内部和手动 AIC 都建议优先考虑加权。

当我使用非线性模型尝试相同的分析时,内部函数和手动计算之间的 AIC 差异更加深刻。以下是示例 Michaelis-Menten 动力学数据的代码:

AIC 的计算如前两个模型所示:

与线性示例类似,当数据未加权 (m3) 时,内部 AIC 和手动 AIC 值相同。权重 (m4) 会出现问题,因为手动 AIC 估计要低得多。这种情况类似于在带有加权非线性回归 (nls) 的相关问题 AIC中提出的问题。

我之前提到过 GraphPad Prism,对于上面给出的模型和数据集,它在使用加权时显示出较低的 AIC。那么我的问题是,为什么在对数据进行加权时,R 中的内部与手动 AIC 估计存在如此差异(非线性模型与线性模型的结果不同)?最终,我应该认为内部 AIC 值还是手动值更正确,还是我使用了错误的公式?

0 投票
1 回答
22 浏览

matlab - 如何返回 Akaike Criteria 选择的 VAR(2) 模拟中选择的最佳滞后的百分比频率

如果我在模拟 3 维 VAR(2) 模型之前放置一个计数器循环,并且在计算之后假设 AIC 和滞后 3 被选为最佳拟合滞后,那么我很难计算最佳滞后的百分比频率(或其他单词在 100 次模拟中选择了多少次这个最佳滞后)?

0 投票
2 回答
222 浏览

r - 如何测试 LRM 模型的显着改进

我使用rms packageFrank Harrell 构建了一个预测模型lrm function

我想比较这个模型与另一个(lrm-)模型相比是否对二项式事件有更好的预测值。

我使用不同的函数来anova(model1, model2)比较伪 R^2,但它们都不适用于基于 lrm 的模型。pR2 functionpscl library

我怎样才能最好地查看我的新模型是否明显优于早期模型?

更新:这是一个示例(我想预测骨转移的机会),以检查大小或阶段(除了其他变量)是否提供了最佳模型:

0 投票
2 回答
113 浏览

r - 每个模型的 AIC 直方图

您好如何为每个模型的 AIC 与完整模型的 AIC 的差异创建直方图。?

所以基本上我想先做 X - Y。然后我需要创建从最大到最小的每个差值的直方图。

0 投票
1 回答
777 浏览

r - 为 WAIC 编写对数似然(逻辑分层 stan 模型)

我正在创建一个新模型,我想将它与另一个使用 WAIC 的模型进行比较。我知道我需要编写一个生成的数量块。但是,我正在努力转换 beta 的 logsumexp。我将不胜感激任何线索/帮助。我的模型块如下所示:

0 投票
1 回答
140 浏览

r - midasr 包中无限制模型的模型选择

我有一个每月时间序列和两个每周时间序列,我想使用 R 中的 midasr 包使用 MIDAS 回归。此外,我使用的是无限制模型,其中每月变量的六个滞后和每周变量的一个滞后是包括如下所述:

由于许多滞后是微不足道的,我想在下一步中进行模型选择。包的作者提供的用户指南的代码演示很好地展示了模型选择过程的通常步骤,但是他们使用不同的算法作为“nealmon”或“almonp”,在他们的回归中具有特定的起始值,然后在模型选择。现在我的问题来了,当我有一个不受限制的模型时,如何进行模型选择?在我看来,expand_weight_lags 只适用于算法,而不适用于不受限制的模型。