2012-02-28 19 views
11

Wiem, jak tworzyć wykresy za pomocą metody leveragePlot(), ale nie mogę znaleźć sposobu na stworzenie statystyki dla dźwigni dla każdej obserwacji, tak jak w przypadku wyjścia megastatowego.Jak tworzyć statystyki dźwigni?

Odpowiedz

20

Myślę, że szukasz wartości kapelusza.

Użyj hatvalues(fit). Zasadą jest zbadanie wszelkich obserwacji 2-3 razy większych niż średnia wartość kapelusza. Nie znam żadnej konkretnej funkcji ani pakietu z mojej głowy, która dostarcza tych informacji w ładnych ramach danych, ale zrobienie tego samemu jest dość proste. Oto przykład:

fit <- lm(hp ~ cyl + mpg, data=mtcars) #a fake model 

hatvalues(fit) 

hv <- as.data.frame(hatvalues(fit)) 
mn <-mean(hatvalues(fit)) 
hv$warn <- ifelse(hv[, 'hatvalues(fit)']>3*mn, 'x3', 
    ifelse(hv[, 'hatvalues(fit)']>2*mn, 'x3', '-')) 

hv 

Dla większych zbiorów danych można użyć subset i/lub order patrzeć tylko pewnych wartości zakresów wartości kapeluszy:

subset(hv, warn=="x3") 
subset(hv, warn%in%c("x2", "x3")) 
hv[order(hv['hatvalues(fit)']), ] 

I rzeczywiście natknąłem się na ładnym funkcji plot to robi w książce R in Action, ale ponieważ jest to książka chroniona prawami autorskimi, nie będę wyświetlać własności intelektualnej Kabacoff. Ale działka ta działałaby jeszcze lepiej w przypadku średnich zbiorów danych.

Oto przyzwoity kapelusz fabuła jednak, że może być także zbadanie:

plot(hatvalues(fit), type = "h")