2014-01-07 85 views
0

我嘗試使用下面的語法來執行邏輯迴歸,具有分類和連續自變量的Logistic迴歸。 ROC曲線和混淆矩陣

logregmodel <- glm(Y ~., data = quant, family = binomial()) 

我有使用上述語法15個分類變量和30連續variables.By我不能確定是什麼連續和分類變量。手動對它們進行分類會花費很多時間。我還想將ROC曲線和混淆矩陣添加到輸出中。請幫助。

+1

您可以使用例如'sapply(quant,is.numeric)'或'sapply(quant,class)'來檢查變量類型,'quantsub < - subset(quant,...)'用你想要的變量構建一個子集嵌入你的第一個模型。 – lukeA

回答

1

如果在quant中,分類變量是非數字,glm將正確處理它們作爲分類變量。

爲了得到混淆矩陣,使用predict功能:

# This will give you probabilities. 
fitted <- predict(logregmodel, quant, type="response") 

# Use a cut point to divide into classes 
cutpoint <- 0.5 
estimated.class <- ifelse(fitted > cutpoint, 'Class 1', 'Class 2') 

# Calculate the confusion matrix 
table(estimated.class, actual.class) 

可以使用ROCR包來獲得ROC曲線。 Here is a good explination。您必須向下滾動一下ROC曲線部分,但整個事情都是非常重要的。

ROCR包(特別是prediction函數)也可以用來得到混淆矩陣。

我只想指出,如果ROC曲線和模型性能的度量(例如靈敏度或特異性)是根據從用於擬合模型的相同數據集中導出的預測響應計算得出的,則會產生偏差。

+0

謝謝克里斯託弗和盧克的指導。它非常豐富和有益的 – user3045652