2012-09-05 10 views
5

Mam zestaw danych składający się z dychotomicznej zmiennej zależnej (Y) i 12 zmiennych niezależnych (X1 do X12) przechowywanych w pliku csv. Oto pierwsze 5 rzędów dane:Tabela klasyfikacji dla regresji logistycznej w R

Y,X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11,X12 
0,9,3.86,111,126,14,13,1,7,7,0,M,46-50 
1,7074,3.88,232,4654,143,349,2,27,18,6,M,25-30 
1,5120,27.45,97,2924,298,324,3,56,21,0,M,31-35 
1,18656,79.32,408,1648,303,8730,286,294,62,28,M,25-30 
0,3869,21.23,260,2164,550,320,3,42,203,3,F,18-24 

I skonstruowanej model regresji logistycznej z danych z zastosowaniem kodu:

mydata <- read.csv("data.csv")  
mylogit <- glm(Y~X1+X2+X3+X4+X5+X6+X7+X8+X9+X10+X11+X12, data=mydata, 
       family="binomial") 
mysteps <- step(mylogit, Y~X1+X2+X3+X4+X5+X6+X7+X8+X9+X10+X11+X12, data=mydata, 
       family="binomial") 

można uzyskać przewidywane prawdopodobieństwo dla każdego z danych z wykorzystaniem kodu :

theProbs <- fitted(mysteps) 

teraz ja chce utworzyć tablicę klasyfikacji - przy użyciu pierwszych 20 wiersze tabeli danych (mydata) -, z którego można ustalić Perce napięcie przewidywanych prawdopodobieństw, które faktycznie zgadzają się z danymi. Należy zauważyć, że dla zmiennej zależnej (Y) 0 oznacza prawdopodobieństwo mniejsze niż 0,5, a 1 oznacza prawdopodobieństwo większe niż 0,5.

Spędziłem wiele godzin próbując zbudować klasyfikację bez powodzenia. Byłbym wdzięczny, gdyby ktoś zaproponował kod, który może pomóc rozwiązać ten problem.

+6

Co o 'tabeli (theProbs> 0,5, mydata $ Y)' (to łatwe do podzbioru na pierwsze 20 obserwacji)? – chl

+0

Dzięki za milion Chi. Myślę, że właśnie tego potrzebowałem. Jeszcze raz dziękuję i pozdrawiam. –

Odpowiedz

1

Myślę, że "runda" może wykonać zadanie tutaj.
stół (okrągły (theProbs))

8

Pytanie jest nieco stare, ale sądzę, że jeśli ktoś szuka w archiwach, może to pomóc. to łatwo zrobić przez xtabs

classDF <- data.frame(response = mydata$Y, predicted = round(fitted(mysteps),0)) 

xtabs(~ predicted + response, data = classDF) 

która będzie produkować tabelę tak:

  response 
predicted 0 1 
     0 339 126 
     1 130 394 
Powiązane problemy