预测(glmFit)返回测试和训练数据的相同概率

时间:2014-11-02 18:28:11

标签: r glm logistic-regression

我有一个数据集,其结构如下:

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 

0 个答案:

没有答案