我有一个数据集,其结构如下:
Id Fail Leverage CumulProfit Liquid OverDueDebt WorkCap OperProfit ShortDebt GuarDebt StateLag FiscalLag InFinan Links CapStruct
1 0 1 0.12911 0.05359 0 0.0765 0.09662 0 0 128 105 0.07439 0 0.81122
dim(dataSet)
[1] 885 15
我正在尝试使用Logistic回归模型,我的响应变量为Fail,在拟合模型时忽略属性ID。其余13个预测因子参与拟合glm模型。
我将80%的数据划分为训练数据,剩下的20%用于测试
indexes = sample(1:nrow(creditDataFrame), size = 0.8 * (nrow(creditDataFrame)),replace = FALSE)
trainingData = creditDataFrame[indexes,]
dim(trainingData)
[1] 708 15
testData = creditDataFrame[-indexes,]
dim(testData)
[1] 177 15
这就是它适合glm模型的方式
glmFit = glm(Fail~.-Id, data = trainingData[,c(2:15)], family = binomial)
predict(glmFit, testData[,c(3:15)],type = "response")
现在当我试图预测测试数据的响应时(我不包括作为Id的column1和因为它是我试图预测的响应变量而失败的第2列),它几乎给了我所有的概率。根据我的理解,我应该只有177个概率,它等于我的测试数据集中的行数。
奇怪的是,它在预测trainingData以及上面代码行中预测的testData时给出了相同的结果。
predict(glmFit,type = "response")
我只是粘贴了前5个概率,但它为我提供了所有885个概率,即使我只是试图预测小的testData集。
721 496 534 23 194
0.31854799 0.65284894 0.19175386 0.04859473 0.10326100