glm 函数没有采用正确的数据集
glm function not taking correct dataset
我刚刚开始学习 R 并处理包含 1470 个案例的数据集。数据集的名称是 ABC。使用 as.factor,我已将分类变量转换为因子。
Dept_1 <- as.factor(ABC$Dept)
Education_1 <- as.factor(ABC$Education)
BusinessTravel_1 <- as.factor(ABC$BusinessTravel)
之后,我将数据集拆分为火车,test.Number 火车和测试数据的案例似乎很完美。然后我使用 glm 函数使用下面的语法
fit = glm(attrition~Dept_1+Education_1+BusinessTravel_1,binomial(link="logit"),train)
拟合方程会运行,但它会在包含 1470 个案例的整个数据集 ABC 上执行,而不是在包含 1028 条记录的训练数据集上执行。
无法理解问题所在。
当你这样做时:
Dept_1 <- as.factor(ABC$Dept)
Education_1 <- as.factor(ABC$Education)
BusinessTravel_1 <- as.factor(ABC$BusinessTravel)
您实际上是在 全局环境 中创建了三个新变量,而不是在您的原始数据框 ABC
中。因此,当您将 ABC
拆分为训练样本和测试样本时,新变量不会受到影响。
当你去拟合模型时,你的glm
调用
fit = glm(attrition~Dept_1+Education_1+BusinessTravel_1,binomial(link="logit"),train)
将查找公式中列出的变量。它不会在 train
数据集中找到它们,但会在全局环境中找到它们。这就是为什么它们具有原始长度。
您可能想要的是
ABC$Dept_1 <- as.factor(ABC$Dept)
ABC$Education_1 <- as.factor(ABC$Education)
ABC$BusinessTravel_1 <- as.factor(ABC$BusinessTravel)
这将在数据框中创建变量 ABC
。
我刚刚开始学习 R 并处理包含 1470 个案例的数据集。数据集的名称是 ABC。使用 as.factor,我已将分类变量转换为因子。
Dept_1 <- as.factor(ABC$Dept)
Education_1 <- as.factor(ABC$Education)
BusinessTravel_1 <- as.factor(ABC$BusinessTravel)
之后,我将数据集拆分为火车,test.Number 火车和测试数据的案例似乎很完美。然后我使用 glm 函数使用下面的语法
fit = glm(attrition~Dept_1+Education_1+BusinessTravel_1,binomial(link="logit"),train)
拟合方程会运行,但它会在包含 1470 个案例的整个数据集 ABC 上执行,而不是在包含 1028 条记录的训练数据集上执行。
无法理解问题所在。
当你这样做时:
Dept_1 <- as.factor(ABC$Dept)
Education_1 <- as.factor(ABC$Education)
BusinessTravel_1 <- as.factor(ABC$BusinessTravel)
您实际上是在 全局环境 中创建了三个新变量,而不是在您的原始数据框 ABC
中。因此,当您将 ABC
拆分为训练样本和测试样本时,新变量不会受到影响。
当你去拟合模型时,你的glm
调用
fit = glm(attrition~Dept_1+Education_1+BusinessTravel_1,binomial(link="logit"),train)
将查找公式中列出的变量。它不会在 train
数据集中找到它们,但会在全局环境中找到它们。这就是为什么它们具有原始长度。
您可能想要的是
ABC$Dept_1 <- as.factor(ABC$Dept)
ABC$Education_1 <- as.factor(ABC$Education)
ABC$BusinessTravel_1 <- as.factor(ABC$BusinessTravel)
这将在数据框中创建变量 ABC
。