逻辑回归和独立和/或相关变量的包含

机器算法验证 物流 特征选择 多重共线性 特征工程
2022-04-14 15:01:43

我正在使用一个数据集来检查学生在 MOOC(大规模开放在线课程)中的努力与学生成功之间的关系。数据集非常大,有 641 138 行。每行代表一个人以及他们与他们注册的 MOOC(课程)的(汇总)交互。由于缺少数据值,并非所有行都可以用于分析。该数据集包含 16 个 MOOC 的数据。

关于努力,有变量表示学生与 MOOC 互动的次数、他们与 MOOC 互动的天数、他们互动的章节数、他们在论坛上写的次数以及他们观看视频的次数。作为学生成功与否的衡量标准,我想用他们是否获得证书(就像通过或失败课程一样)。

所以我想运行一个逻辑回归,其中因变量是经过认证的(真/假),我使用一个(或多个?)自变量来代表学生的努力。我还想控制数据集中可用的一些人口统计变量,方法是将它们作为自变量添加到逻辑回归中:年龄、性别、国家(出于匿名原因,有时在数据集中以汇总形式提供)和教育水平.

解决这个问题,我仍然不清楚一些事情:

  • 如何选择应该代表学生努力的一个(或多个)自变量?(我想有些会是强相关的,所以可能不适合组合使用。)
  • 是否可以通过将 course_id 作为附加自变量添加到逻辑回归来控制课程 (MOOC) 之间的差异?(这个选项似乎产生了更高的预测精度和更好的模型拟合。)

如果在上面的描述中不清楚,下面是逻辑回归命令的示例(在 R 中),其中我将章节数作为表示努力的自变量,人口统计变量作为自变量包括在内,以及 course_id已作为自变量包含在内以控制课程 (MOOC) 差异:

fit <- glm(certified~nchapters+final_cc_cname_DI+LoE_DI+YoB+gender+course_id, 
           na.action=na.omit, data=ds, family=binomial)

编辑:为了澄清,我正在研究上述问题,因为我正在为多元定量研究方法课程写一篇关于它的论文。本课程的重点是心理学研究中常用的第一代多元分析。

2个回答

@NULL 是正确的,这是一个不特定于您的用例的一般问题。让我稍微补充一下他的回答。

在任何特定情况下,您真正​​需要做的是认真思考您想做什么以及为什么要做。你有一种情况,你想建立一个有响应的模型Y,但你相信一组X-变量将高度相关。这可能不是问题。

首先,为什么你认为变量是相关的?

  • 它们都是相同基础结构的 度量吗?
  • 它们是否部分重叠,但部分不同?
  • 其中一些与其他有因果关系吗?

第二,你的长期目标是什么?

  • 您是否只想描述数据(它们的分布和关系)?
  • 您是否正在探索数据以产生未来研究的假设?
  • 你想检验一个假设吗?关于什么,
    1. 一个相关变量相对于另一个变量,或
    2. 关于他们的共同点,或
    3. 关于完全不相关的事情(这些是控件,感兴趣的变量与它们不相关)?
  • 你想建立一个预测模型吗?
    1. 谁将使用它来进行预测?他们会有什么数据(例如,他们会有一些变量,但没有其他变量)?
    2. 在未来的情况下,不同变量的值是否可能会出现分歧?

您对上述问题的回答将指导您如何处理变量。

以下是一些可能的策略:

  • 如果你想描述数据,就这样做。共线性是要描述的结果的一部分。
  • 产生假设的良好探索性数据分析是困难的。尝试许多不同的模型(例如,不同的变量组合)并深入思考它们。哪些是合理的?如果一个或另一个是真正的数据生成过程,这将意味着什么?不仅要考虑 beta 的点估计,还要计算由于真实值接近置信区间的极端而产生的模型。
  • 如果你认为这些X-变量都只是单个潜在变量的不同表现形式(您的描述有些暗示),您可以:
    1. 将它们结合起来(例如,您可以运行因子分析,或者可能是 PCA)。
    2. 或者可能,使用所有这些。提取因子不可避免地会遗漏一些信息(希望是测量误差);使用所有这些将确保捕捉到每一个细微差别。为了测试它们,删除所有相关的X-变量作为一个组并执行嵌套模型测试。
    3. 或者可能,只选择一个X- 如果相关性足够接近,则随机变量r=1.0. 在这一点上,打扰其他策略几乎没有什么好处。
  • 如果你认为X- 变量部分重叠,您可以执行因子分析并提取>1因素,或使用X-您认为最直接地测量主要思想并将其余部分残差的变量,以便结果集是正交的。
  • 有多种处理因果关系的方法X-变量,以及使用哪个取决于您怀疑的因果模式的性质以及您正在尝试做什么。也就是说,默认方法可能是对X- 变量和Y使用诸如结构方程建模之类的东西。
  • 对您的提取中心因素的测试X-在多元回归模型中用作解释变量的变量将是对您之间共享信息的良好测试X-变量。
  • 如果你想测试两个(或更多)相关的东西X- 变量相互之间,这将很难做到,而你只是处于一个困难的境地。
  • 另一方面,如果您想测试与相关的完全无关的曝光X-变量,继续。多重共线性不会对感兴趣的测试产生任何影响。
  • 如果您尝试创建预测模型,请考虑谁将使用该模型进行预测、在什么情况下以及他们最有可能访问哪些数据。如果他们可能有X3, 但不是X1,X2,X4,或者X5, 利用X3.
  • 预测均值不会受到共线性的严重影响,因此如果您只关心这些,并且在使用模型进行预测时相关性可能相似,那么您应该没问题。
  • 相反,如果未来的数据可能出现在X- 未在您的数据集中表示的变量空间,例如dragons制作各种不同的模型并使用模型平均可能会提供一些有限的保障。

您要问的是一些关于回归分析的基本问题,而不仅仅是关于您的特定用例。因此,我建议您阅读更多有关回归分析的内容或参加在线课程,例如统计学习思想,这些课程实际上提出了我正在讨论的一些正则化方法:

如何选择应该代表学生努力的一个(或多个)自变量?(我想有些会是强相关的,所以可能不适合组合使用。)

选择独立(或不那么独立)的变量取决于用于逻辑回归分析的正则化方法。其中有很多,例如 LASSO (L1)、Ridge Regression (L2) 和Elastic Net看看这个问题

这些正则化方法中的每一种都以不同的方式处理相关变量/特征。L1,偏爱一个而忽略另一个(零权重),而 L2 平均分配权重,而 Elastic Net 基本上是两者的混合。这是来自弹性网络维基百科页面:

如果存在一组高度相关的变量,则 LASSO 倾向于从一组变量中选择一个变量而忽略其他变量。为了克服这些限制,弹性网络在惩罚中增加了一个二次部分,当单独使用它时是岭回归(也称为 Tikhonov 正则化)。

现在,关于你的第二个问题:

是否可以通过将 course_id 作为附加自变量添加到逻辑回归来控制课程 (MOOC) 之间的差异?(这个选项似乎产生了更高的预测精度和更好的模型拟合。)

这完全没问题,只要您正在做的是将变量在课程内与所有课程之间的贡献分开。这是回归分析中非常重要的主题,在临床研究中非常流行。

通过创建诸如 之类的特征course_id,您还需要分别对每门课程执行回归,以分析变量对每门课程(组内)的贡献。

在与 一起训练所有课程时获得的权重(或变量的贡献)course_id,通常只会告诉您所有课程的变量贡献量。