问题标签 [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 中不平衡面板数据的相关随机效应模型 (CRE) 中变量的聚类平均值?
[编辑 2]
通过添加random.method="walhus"
到 plm(也适用于random.method="nerlove"
)并继续使用 Between(variable)
变量的集群/时间平均值来解决它
我想为不平衡的面板数据创建一个回归模型,并发现我必须实施一个相关的随机效应模型,因为我的变量之一(gind
,相应公司的行业,例如房地产、信息技术等)是时间不变的。数据来自 Compustat 数据库。
随机效应模型如下所示:
gvkey
是唯一的公司标识符,fyear
是相应的年份。
fsts
是国外销售额与总销售额的比率(衡量公司国际化程度),rota
是衡量公司业绩(总资产回报率)的指标。
数据是不平衡的,因为每家公司都在 1-6 年之间被观察到。
要将模型转换为相关的随机效应模型(也称为“中间模型”、“Mundlak 过程”或“混合方法”),我读到必须添加随时间变化的变量的聚类均值(所以在我的情况firm_size, rota, debt_to_assets
和r_d_intensity
)。
在一篇关于该主题的论文 ( https://www.researchgate.net/publication/336608555_On_Ignoring_the_Random_Effects_Assumption_in_Multilevel_Models_Review_Critique_and_Recommendations ) 中,他们展示了如何在 R 中实施一个示例。可以想象它显示了 500 家公司,每家公司都观察了 10 年。x 是时变变量,z 是时不变变量。这是生成模型的代码(从上述论文中复制):
然后他们像这样计算 x 的聚类平均值:
完成的 CRE 模型如下所示:
我现在的问题是如何修改计算x_cl
以使其适合我的数据和模型?如何修改lead_n?如何执行计算,以便为每个公司 (= gvkey
) 重新计算以年为单位的时间跨度?
总的来说,我对 R 和编程并不是很有经验,所以我无法理解它。
Between(variable)
当然,也欢迎对可能已经实现整个问题的其他 R 包提出建议(类似于下面的)!
我尝试按照以下链接Estimating within-between model specification using plm中描述的实现来计算集群意味着,并提出了这个模型:
不幸的是,这会引发错误:
我认为发生错误是因为面板不平衡。这是真的吗?(它不能源于数据中的 NA,因为na.rm=TRUE
无论如何我都事先从数据中添加并删除了所有 NA 值)
[编辑]
经过更多的调查,我发现这个错误不会发生,因为面板不平衡,而是因为时间平均值和变量之间存在多重共线性(所以firm_size
和Between(firm_size)
相关,rota
和Between(rota)
相关等),这显然不足为奇。
当添加变量的平均值时,总是会出现结构多重共线性。我已经尝试标准化(scale(x)
)集群意味着,但错误仍然存在。
为什么我的数据似乎有问题,而这是这种回归模型的推荐方法?
r - 截距和斜率之间的共线性随时间编码变化 - 线性混合效应模型
我目前正在尝试运行线性混合效应模型来估计压力如何随时间变化(超过 6 个时间点)。我注意到,当为我的样本中的每个人提取应力轨迹的截距和斜率时,这些因素之间存在高度相关性。但是,这似乎会根据时间的编码方式而改变……对为什么会发生这种情况有任何解释吗?您通常如何处理截距和斜率之间的共线性?任何建议将不胜感激。
下面的可重现示例:
r - 评估在 r 中使用 caret::train() 创建的回归模型时 car::vif() 出错
正如标题所说,我使用caret::train()
. 我曾经train()
想使用leapSeq
带有 10 倍交叉验证的逐步方法()。
该模型如下所示。
但是,当我尝试使用 来检查模型的 VIF 时car::vif()
,它会返回错误
coef.regsubsets(mod) :缺少参数“id”,没有默认值
错误消息非常简单,但问题是我不知道将参数“id”放在哪里。
检查VIF的代码如下:
如果有人能告诉我如何修复错误,我将不胜感激!
r - 将数据拆分为 70:30,但所有异常值仅在使用 R 的训练样本中
我正在模拟 R 中的数据,以检查当异常值和多重共线性同时存在时哪些模型表现更好。为此,我将数据拆分为 70:30 的随机拆分,但我只需要在 70 个训练样本中引入异常值和多重共线性,并保持测试样本的清洁。 我怎么能在 R 中做到这一点?
以下是我的 R 代码,其中在整个数据中引入了异常值和多重共线性。
machine-learning - Python中的方差-通货膨胀因子
我正在尝试检测数据集中的多重共线性。我已经尝试了以下但收到错误
从 statsmodels.stats.outliers_influence 导入variance_inflation_factor
“Y”列是相关的,我将 No 映射到 0,将 Yes 映射到 1。数据集包含以下列:
nr.employee 已被删除,因为它包含 NaN 值。我是 Python/机器学习的新手。如果有人可以帮助我,那就太好了。我需要找到方差通货膨胀因素。
data-science - 应在缩放之前或之后检查变量的方差膨胀因子是否存在多重共线性?
我都试过了,&未缩放的值给出了更高的 VIF。这两个中哪一个是准确的——“缩放前”VIF 分数或“缩放后”VIF 分数?标准化对多重共线性有什么影响?
r - 带有几个虚拟变量的回归
我正在运行逻辑回归,我想控制受访者所在的国家/地区。我有 12 个国家。我使用“fastDummy”包为每个国家/地区创建假人 ALL<-dummy_cols(ALL, select_columns = "country") 我得到如下信息: country_Japan 1 1 0 0 0 0 country_Taiwan 0 0 1 1 0 0 country_China 0 0 0 0 1 1
等等...正如你所看到的,所有变量的总和构成了完美的共线性。因此,我无法估计模型。我读到我需要包含一个带有 0 的变量作为最后一个国家虚拟变量以避免这种共线性。这个对吗?我包括了截距(带有 1 的列),但它没有帮助。我会很感激你的建议。谢谢
logistic-regression - RapidMiner 名义属性在逻辑回归模型中丢失 1 列
我有几个名义属性,例如年龄组(16-20、21-30 等)、关税计划(1、2、3、4)、国际计划(是、否)、投诉(真、假)
当我运行我的逻辑回归模型来预测客户的流失时,它一直在从名义属性中删除一个属性。例如,它将删除、投诉 = 假、关税计划 2 等。
它不是删除数据,只是从名义集合中删除一个属性。
然后我尝试将标称属性更改为数值,以便它显示所有属性,但随后我遇到了一个不同的问题,每个标称集的一个属性是共线的,因此从逻辑回归模型中删除。
我不太清楚模型为什么要这样做,但我想在模型中使用已删除的属性,以便我可以分析它们。
statistics - 如何在应用线性回归时处理具有三个分类变量(序数)和一个连续变量的多重共线性
我在MagicStat上运行线性回归,并且已经到了需要在应用线性回归时检查变量的多重共线性的地步。
我正在使用我最初从这里获得的diamonds 数据集。
在分析中,我的目的是使用三个分类(序数)和一个连续作为自变量和价格作为因变量来确定预测钻石价格的因素。
切
颜色
明晰
请注意,在数据集中,清晰度列上没有具有 FL、I2 和 I3 值的数据。
克拉
我还重新编码了数据集,以备不时之需。
所以,我的问题是:在这个分析中,有 3 个分类变量(序数)和一个连续变量,我们如何获得这些变量之间的多重共线性?
logistic-regression - 多项逻辑回归和多重共线性
关于多重共线性和多项逻辑回归的问题。我正在尝试生成一个模型,可以确定每匹马在比赛中获胜的概率。很简单,我收集的数据中有 1 表示每匹马赢或 0 输。我显然有一堆独立的变量。
我有两个高度相关的变量(~IVF 约为 12),当我将它们都包含在我的模型中时,生成的模型的 R^2 明显大于当我省略其中一个以消除共线性时。
我的问题是,考虑到我只对模型的预测能力(即每匹马赢得比赛的概率)感兴趣,而我并不真正关心分析自变量,我可以把它们留在里面吗?当我同时包含它们时,我唯一担心的是过度拟合。我应该以预测能力为代价删除一个吗?
谢谢,
蒂姆