R - 线性回归 - 控制变量

时间:2014-09-06 21:28:41

标签: r linear-regression

我有一个计算机科学背景&我试图通过解决互联网上可用的问题来自学数据科学

我有一个小的数据集,有3个变量 - 种族,性别和年收入。大约有10,000个样本观察。我试图预测种族和收入的收入性别。

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

4 个答案:

答案 0 :(得分:2)

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

[如果你只是为了男性的竞争而获得收入,比如说,你有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< - lm(dist~speed,cars)    摘要(carsfit)    情节(dist~speed,cars)    abline(carsfit,col = 2)

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

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

答案 1 :(得分:1)

这很简单。

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

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

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

答案 2 :(得分:0)

你确实可以这样做,但我相信你的问题很广泛。

(1)您可以预测种族和性别的收入。这可以通过各种方式完成,但最常见的可能是“回归分析”。我建议你在互联网上搜索一下这个话题。回答什么样的回归以及如何执行它是一种情况问题。在阅读有关回归的文章后,您可能会发现自己。

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

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

或者我在这里误解了什么?

此致

答案 3 :(得分:0)

您需要阅读线性/多重回归技术。不确定为什么要根据性别将数据分成两组。随机将数据拆分为Train和Test,以便您可以在Train和Validate on test上进行建模。