r - 使用最佳子集回归后如何选择回归模型?
问题描述
我正在使用 R 中的 jumps 包进行作业。我得到了一个结果变量和 20 个自变量,并告诉我找到生成数据点的模型。我已将其缩小为两个模型,它们仅相差一个二阶交互。我的显着性水平是 0.001,我的 t 值是 1999 df 上的 3.295。当我检查包含这种二阶交互作用的模型时,它的 t 值非常接近但略高于 3.295,它的 p 值大约为 0.000991。
有没有办法通过包含这个术语来确保我没有犯 I 类错误?我被告知在没有交互项的情况下将变量插入回归中,如果它们仍然显着,那么它们可能在模型中。但是,我的教授也向我们解释过,最简单的解释往往是正确的(奥卡姆剃刀)。
如果这太含糊,我很抱歉,但我很犹豫在网上发布太多关于该项目的信息。
解决方案
正如您所指出的,在模型选择中,您通常希望采用更简约的模型,以便它们具有更少的假设。调整后的 R 平方工作;更流行的方法是 Akaike 信息准则和贝叶斯信息准则。通常 BIC 比 AIC 更保守。当人们使用 AIC 或 BIC 时,他们通常希望获得较低的分数。没有意义这样的东西,因为它是一个完全相对的衡量标准。
当您谈论显着差异时,我认为您是在谈论偏差分析。可能性分布在卡方分布上,因此您可以使用对数似然比检验或方差分析(如果两个模型相互嵌套)来测试两个模型之间的差异,这听起来就像您所描述的模型仅不同之处通过添加参数。参数的单个对比是否显着并不一定会使您的模型更适合,因此您要做的是将整个模型与几乎相同的模型进行测试。
代码很简单anova(reducedmodel, fullmodel)
,可以使用lmtest
包完成对数似然比测试lrtest(fullmodel,reducedmodel)
推荐阅读
- pdf - PDF 中的“分离”数字签名
- javascript - 无法从具有日期范围的 Firestore 获取数据
- linux - 进入变量并维护标准输出?
- mysql - 处理超过 20 条记录时出现问题
- python - 设置 Beeware:我无法在激活的 venv 中创建 JAR 支持文件
- reactjs - 无法将照片从 React Native 发送到 Cloudinary
- c++ - 从控制台将输入作为段落
- python-3.x - 在安装的不同文件夹中使用 python 程序中的 python 库 (Biopython)
- android - Retrofit - 转换 Json 响应以使用 Room 轻松存储数据
- python - 从 rpy2 数据帧到 pandas 数据帧的转换不适用于字符串类型的列