在回归之前将分类变量转换为数值变量

机器算法验证 回归 多重回归 分类数据
2022-03-23 17:19:15

我正在做一个项目,根据几个变量来估计学生的最终毕业 GPA。我有学生的第一年 GPA、高中 GPA、他们的种族、他们来自哪里以及他们的 ACT 分数等等。

我有两个问题:

  1. 如何将种族转换为数字,我知道我可以指定白色为 1,黑色为 2,亚洲为 3,但这可能会导致一些问题,使我的结果不重要,那么我如何将种族转换为数字使我的模型更准确?

  2. 我如何找到哪个因素对估计学生最终 GPA 的贡献最大,以便我可以更加重视它?

2个回答

1) 为什么要将种族转换为数字?我假设您想做回归模型之类的事情,对吗?我假设您在问如何在回归中处理“分类数据”(不同种族等类别)。

所以,你需要数值变量,你可以为每场比赛分配一个数字。但是,如果您选择白=1,黑=2,亚裔=3,那么白黑之间的距离恰好是白方和亚裔之间距离的一半真的有意义吗?而且,这种排序是否正确?可能不是。

相反,您所做的是创建虚拟变量。假设您只有这三场比赛。然后,您创建两个虚拟变量:White、Black。您也可以使用 White, Asian 或 Black, Asian;关键是您创建的虚拟变量总是比类别少一个。现在,如果个人是白人,则 White 变量为 1,否则为 0,如果个人是黑人,则 Black 变量为 1,否则为 0。如果您现在拟合回归模型,White 的系数会告诉您亚洲人和白人之间的平均差异(请注意,没有使用亚洲虚拟变量,因此亚洲人成为我们比较的基线)。黑人的系数告诉您亚洲人和黑人之间的平均差异。

注意:如果您使用软件来拟合您的回归模型,您可能不必担心所有这些。您只需告诉您的软件该变量是分类的,它会处理所有这些细节。

2)您不必担心这一点,至少在您进行回归时。运行回归模型会告诉你每个变量的系数以及它们的标准误差,并且这些信息会告诉你哪些变量是最重要的。如果您需要帮助解释这些系数,那是一个全新的话题。

回答您的问题:

1)如何将比赛转换为数字以使我的模型更准确?

-> 我认为答案在于您使用哪种工具进行分析。大多数工具都可以将属性/因素转换为适当的输入。要解释您的第一个问题,您可以参考以下链接:

你可以在这里找到你的答案:http: //www.ats.ucla.edu/stat/r/dae/logit.htm

这是关于基于 GPA 和排名的录取的不言自明的文章。

我只是从那里重新创建示例。本博客使用的工具是 R,免费软件统计分析工具。

数据如下所示:

##   admit gre  gpa rank
## 1     0 380 3.61    3
## 2     1 660 3.67    3
## 3     1 800 4.00    1
## 4     1 640 3.19    4
## 5     0 520 2.93    4
## 6     1 760 3.00    2

Admit 是输出,1 表示学生被录取。现在让我们将排名作为类别:

mydata$rank <- factor(mydata$rank)

您可以使用上述方法将其他输入用于因子/类别。现在我们将为上表准备一个回归模型。

mylogit <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial")

上面的函数将准备一个逻辑回归模型,我们正在检查录取是否取决于 GRE、GPA 或排名。使用汇总功能,您可以看到结果。

summary(mylogit)

2)我如何找到哪个因素对估计学生最终 GPA 的贡献最大,以便我可以更加重视它?

-> 您不必事先给出权重,回归表将为您提供每个输入的权重(系数)及其统计意义。

我希望我已经清除了你的答案。