问题标签 [multicollinearity]
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 中使用 VIF?
我是 R 新手,正在使用caret
. 我正在研究 UCI 银行营销响应数据,但iris
这里使用的数据是为了重现性。
问题是我正在从模型上error
运行。vif
car package
classification
创建模型
vif中的错误
UseMethod(“vcov”)中的错误:没有适用于“vcov”的适用方法应用于“c('train','train.formula')”类的对象
finalModel
我从这篇 SO 帖子中了解了使用for vif: R 中 glm caret model 的方差通胀 VIF
但是还是报错
UseMethod(“vcov”)中的错误:没有适用于“vcov”的方法应用于“gbm”类的对象
我遇到的同样的错误adaboost
,earth
等等。
感谢解决此问题的任何帮助或建议。
(更新)
Answers
最后这有效(如果仍然出现错误,请参阅完整的解决方案):
vif
不适用于classification
模型,因此将dependent
变量转换为numeric
并linear regression
在其上运行,然后vif
r - 使用 bife 包时删除线性因变量
一些预编程模型会自动删除其回归输出(例如lm()
)中的线性因变量R
。使用该bife
软件包,这似乎是不可能的。如第 5 页CRAN中的包装说明所述:
如果 bife 不收敛,这通常表明一个或多个回归变量与固定效应之间存在线性相关性。在这种情况下,您应该仔细检查您的模型规格。
现在,假设手头的问题涉及进行许多回归,并且无法充分检查每个回归输出——必须假设某种关于回归量的经验法则。有哪些替代方法可以或多或少地自动删除线性相关回归器并实现适当的模型规范?
我设置了一个代码作为下面的示例:
tensorflow - 多元线性回归问题的收敛问题
我试图用一个非常简单的线性网络来解决多线性回归问题。该网络仅包含一个密集层作为其输出层,并且激活函数设置为线性。我通过将输入数据 X 乘以系统(权重)矩阵 A 来合成输出数据 Y: Y=AX 。X 和 A 都包含具有正态或均匀分布的随机数(无论如何都会出现问题)。在这种情况下,网络在 1000 个样本中仅 7 个 Epoch 就达到了 99% 以上的准确率,正如人们所期望的那样。
现在,如果我从 Y 合成 X,这一次具有统一的随机数,使用 A 的逆: X = inv(A).Y ,并尝试训练网络,经过 200 个 Epoch 后,准确率仅达到 94%。
即使系统矩阵(权重)完全相同,为什么这两种情况之间存在如此巨大的差异。唯一的区别与 X 和 Y 的随机分布有关。如果我被迫遵循第二种情况,我该如何提高我的网络的可训练性,以便它可以在几个 epoch 内进行训练。
我尝试了不同的优化器、初始化器和正则化,但它们没有帮助。
这是不太好收敛的版本的代码。为了获得我使用的第一个版本gen1
,Dataset.from_generator(gen2, ...)
而不是gen2
.
训练图
案例1:Y合成
案例2:X合成
r - 为什么 car 包中的 vif() 结果与 lmridge R 中的结果不同?
我不是一个经常发帖的人,所以如果这种格式不正确,我深表歉意。如果你告诉我如何显示数据,我会做出改变。与此同时,这里是代码。vif() 在 lmridge 中的 k=0 级别生成非常不同的分数。为什么它们不同?
r - 多元多元回归的 VIF 检验
我想通过使用 VIF 函数来测试多重共线性。我有一个包含 13 个度量和 4 个预测变量的模型,创建如下:
当我尝试在这个模型上运行 vif 函数时,它给出了一个错误。
我也尝试分别进行每个测量,但是在所有假设下测试 13 个模型是非常重复的,尽管 vif() 那时有效。
有没有办法让这个工作适用于整个模型?我很抱歉没有包含一组数据来测试这一点。我希望它仍然能传达我的问题。
logistic-regression - 逻辑模型错误:奇异矩阵,同时具有高度相关的分类虚拟对象
类似于这里的问题:如果我有一个具有高 VIF(多重共线性)的分类变量的虚拟变量,我会假设它不应该从预测变量列表中删除。但是 statsmodels 的逻辑回归存在“奇异矩阵”问题。发生这种情况时该怎么办?可能的解决方案: 1. 删除该分类变量的所有虚拟变量;2. 仅去除高 VIF 虚拟变量,这使得分类变量缺少一个子类别。谢谢!
python - 解决空间数据中的多重共线性
我希望使用空间数据执行特征缩减。我计算了 VIF(方差膨胀因子)来评估变量之间的多重共线性,随后能够消除那些 VIF 大于 5 或 10 的变量。问题是具有完全不同空间变异性的两个变量具有相同的 VIF 和如果我使用选择 VIF < 10 的特征的标准,我只剩下很少的解释变量。
您认为使用空间误差或地理加权回归等模型应用回归并从结果 R2 计算 VIF 是否是一个好主意?
你知道除 VIF 之外的任何 Python 方法来处理空间数据中的多重共线性?
r - R中的主成分分析(共线预测变量)和预测函数
我有一个具有 3 个共线预测变量的数据集。我最终提取了这些预测变量并使用主成分分析来减少多重共线性。我想要的是使用这些预测器进行进一步的建模。
- 使用该
predict
函数并获取 3 个共线预测变量的值并使用预测值进行进一步分析是否不正确? - 或者由于前两个轴捕获了大部分方差(演示数据集中的 70% 和实际数据集中的 96%)我应该只使用前两个轴的值而不是 3 个预测值进行进一步分析吗?
这是我运行时来自演示数据集的结果
这表明前两个轴捕获了几乎 70% 的方差。
现在执行以下操作是否正确?
感谢您的帮助!:)
但还是不确定。这就是我在这里问的原因。
r - 如何从回归中删除 R 中因子变量的特定实例
我正在运行这个回归。
我正在检查变量之间的多重共线性。SubjectID 是每个主题的 ID。每个主题有 8 个观察值,大约有 300 个主题。当我运行上面的模型时,我没有收到任何错误。当我运行 car::vif 时,我收到一个错误,表明模型中存在多重共线性。我检查了回归结果,模型显示其中三个 SubjectID 是多重共线的。这真的让我感到惊讶,我的理解是只有一个 SubjectID 应该线性依赖于其余的。无论如何,假设我知道 SubjectID2、SubjectID3 和 SubjectID4 是多重共线的,我该如何删除它们?我的理解是,如果我只是对它们进行子集化,那么 R 会将其他因素描述为线性相关,所以我不能简单地删除它们。
r - 面板数据模型中具有滞后的多重共线性问题
我有以下问题,我有一个面板数据模型,我想使用随机效应进行估计。估计正态模型时:
R 说我对变量 max.gatherings 有多重共线性问题,因为它与另一个变量高度相关,当我删除这个变量时,一切都运行良好。
但是现在问题来了,当我想用滞后的解释变量运行模型时(因此,在因变量的时间段之前的时间段的解释变量我得到了这个:
我得到多重共线性错误:solve.default(crossprod(ZBeta)) 中的错误:系统在计算上是奇异的
我不明白,因为我使用的是相同的数据集,所以普通数据集怎么可能没有多重共线性,但滞后,本质上是相同的数据集为所有变量减去 1 个数据点,具有多重共线性。