Как создать статистику плеча?

Я знаю, как создавать графики с использованием leveragePlot(), но я не могу найти способ создать статистику для рычагов для каждого наблюдения, например, в выводе мегастата.

Ответ 1

Я думаю, что вы ищете значения шляпы.

Используйте hatvalues(fit). Эмпирическое правило состоит в том, чтобы исследовать любые наблюдения в 2-3 раза больше, чем среднее значение шляпы. Я не знаю конкретной функции или пакета с верхней части головы, которая предоставляет эту информацию в хорошем фрейме данных, но делать это самостоятельно довольно прямолинейно. Вот пример:

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

Для больших наборов данных вы можете использовать subset и/или order для просмотра только определенных диапазонов значений для значений шляпы:

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

На самом деле я натолкнулся на хорошую функцию сюжета, которая делает это в книге R в действии, но поскольку это книга, защищенная авторскими правами, я не буду отображать интеллектуальную собственность Kabacoff. Но этот график будет работать даже лучше для наборов данных среднего размера.

Вот достойный сюжет шляпы, хотя вы также можете исследовать:

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