【问题标题】:R - Linear Regression - Control for a variableR - 线性回归 - 变量控制
【发布时间】:2014-10-31 21:25:17
【问题描述】:

我有计算机科学背景,我正在尝试通过解决互联网上的问题来自学数据科学

我有一个较小的数据集,其中包含 3 个变量 - 种族、性别和年收入。大约有 10,000 个样本观测值。我正在尝试预测来自种族和性别的收入。

我已将数据分为两部分 - 每种性别各一份,现在我正在尝试创建 2 个回归模型。这在R中可能吗?有人可以提供示例语法吗?

【问题讨论】:

    标签: r linear-regression


    【解决方案1】:

    您没有指定数据的存储方式或变量竞赛的记录方式(这是一个因素吗?)

    [如果您只是将收入与男性的种族相匹配,并且您在 income.mrace.m 中具有男性收入和种族,并且如果第二个是 R 中的 因素 ,然后lm(income.m~race.m) 将适合男性(在结果对象上使用summary 以获取有关它的信息)。你可以为女性做类似的事情。但大多数人不会以这种方式拟合模型。]

    如果您准备假设两种性别的线条变化相同,则可以用一个模型拟合两条线条。

    这比单独分析行有几个优点,尽管也可以这样做。

    如果性别是一个因素或记录为 (0/1) 的数字变量,而种族是一个因素,并且您在数据框中有数据(例如,称为 incdata),那么您会一次适合两条线:

    lm(income~race*gender, data=incdata)
    

    这是R的简写

    lm(income~race+gender+race:gender, data=incdata)
    

    其中race:gender 是一个交互术语。

    如果您进一步假设种族对两性的影响是相同的,那么较小的模型:

    lm(income~race+gender, data=incdata)
    

    将被使用。如果要求“控制性别”,这通常是人们适合的模型,尽管许多人会考虑我之前提到的交互模型。

    我强烈建议您首先解决更简单的回归问题,并使用适合指导您完成这些想法的教科书或一组笔记。


    如果您尚未在 R 中拟合回归,我将从一个较小的数据集开始,该数据集只有一个预测变量,以适应​​基本机制。

    R 已经内置了许多数据集。例如,请参阅library(help=datasets),它有大约 80 个数据集; R 附带的一些包有更多(例如,MASS 有超过 80 个)。 CRAN 上的许多 R 包都包含数据集,其中许多适合回归。

    例如,cars 数据集(参见 R 中的 ?cars)记录了汽车在给定速度的情况下的停车距离。你不需要读取数据,它已经存在了。

    一个简单的线性回归(考虑到对物理学的一些了解,不一定是最好的模型,但对于数据来说已经足够了)是:

    lm(dist~speed, cars)
    

    再次,您使用summary 来检查它。例如(我建议你一次输入这些):

    carsfit

    汽车数据集 (?cars) 帮助中的示例提供了其他几个模型和绘图。您也可以一次尝试这些。

    car 包(CAR 是“Companion to Applied Regression”的缩写)有许多专门用于回归的小型数据集。

    【讨论】:

    • 感谢您的详细解答。非常感谢
    【解决方案2】:

    您需要阅读线性/多元回归技术。不知道为什么要根据性别将数据分为两组。将数据随机拆分为训练和测试,以便您可以在训练上建模并在测试上验证。

    【讨论】:

      【解决方案3】:

      您确实可以这样做 Abhi,但我相信您的问题非常广泛。

      (1) 您可以根据种族和性别预测收入。这可以通过多种方式完成,但最常见的可能是“回归分析”。我建议你在互联网上就该主题进行一些搜索。回答什么样的回归以及如何执行它是视情况而定的。您可能会在阅读回归后发现自己。

      (2) R 可以做到这一点。但我建议你在进入 R 之前先阅读一些关于回归的知识。

      (3) 如果我要分析种族和性别是否可以预测收入,我会简单地做一个线性回归,其中收入是因变量,种族和性别是独立的(预测变量)。这可以通过 R 中的“lm”函数来完成。

      还是我在这里误会了什么?

      问候

      【讨论】:

        【解决方案4】:

        很简单。

        fit1 <- lm(income~gender+race,data=Dataframe1)
        summary(fit1)
        

        我不建议使用两个数据框。除非您使用需要使用两个数据框的更高级的统计方法。只需使用您的性别变量。

        另外,请查看此网站:http://www.statmethods.net/stats/regression.html

        【讨论】:

        • 此外,由于您正在尝试学习使用 R。我强烈推荐这个初学者教程:tryr.codeschool.com
        猜你喜欢
        • 1970-01-01
        • 2021-08-21
        • 2021-11-23
        • 2021-07-20
        • 2013-02-11
        • 2011-01-06
        • 1970-01-01
        • 2014-05-08
        • 2020-11-25
        相关资源
        最近更新 更多