Лучший способ визуально представить отношения из множественной линейной модели


15

У меня есть линейная модель с примерно 6 предикторами, и я собираюсь представить оценки, значения F, значения p и т. Д. Однако мне было интересно, какой будет лучший визуальный график для представления отдельного влияния одного предиктора на переменная ответа? Разброс точек? Условный участок? Эффект сюжета? и т.д? Как бы я истолковал этот сюжет?

Я буду делать это в R, так что не стесняйтесь приводить примеры, если можете.

РЕДАКТИРОВАТЬ: В первую очередь я заинтересован в представлении отношений между любым данным предиктором и переменной ответа.


У вас есть условия взаимодействия? Заговаривать было бы намного сложнее, если бы они у вас были.
Hotaka

Нет, только 6 непрерывных переменных
AMathew

У вас уже есть шесть коэффициентов регрессии, по одному для каждого предиктора, которые, вероятно, будут представлены в табличной форме. В чем причина повторения той же точки снова с графиком?
Penguin_Knight

3
Для нетехнической аудитории я бы лучше показал им график, чем говорил об оценке или о том, как рассчитываются коэффициенты.
AMathew

2
@ Тони, я вижу. Возможно, эти два веб-сайта могут вдохновить вас: использовать пакет R visreg и график ошибок для визуализации регрессионных моделей.
Penguin_Knight

Ответы:


12

По моему мнению, модель, которую вы описали, на самом деле не годится для построения графиков, поскольку графики работают лучше всего, когда они отображают сложную информацию, которую трудно понять иначе (например, сложные взаимодействия). Однако, если вы хотите отобразить график отношений в вашей модели, у вас есть два основных варианта:

  1. Покажите серию графиков двумерных отношений между каждым из ваших предикторов интереса и вашего результата с диаграммой рассеяния необработанных точек данных. Сюжетная ошибка распространяется вокруг ваших линий.
  2. Отобразите график из варианта 1, но вместо того, чтобы показывать необработанные точки данных, покажите точки данных с обособленными другими предикторами (т. Е. После вычитания вкладов других предикторов)

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

Я включил код R и график каждой опции ниже, используя данные из Prestigeнабора данных в carпакете в R.

## Raw data ##

mod <- lm(income ~ education + women, data = Prestige)
summary(mod)

# Create a scatterplot of education against income
plot(Prestige$education, Prestige$income, xlab = "Years of education", 
     ylab = "Occupational income", bty = "n", pch = 16, col = "grey")
# Create a dataframe representing the values on the predictors for which we 
# want predictions
pX <- expand.grid(education = seq(min(Prestige$education), max(Prestige$education), by = .1), 
                  women = mean(Prestige$women))
# Get predicted values
pY <- predict(mod, pX, se.fit = T)

lines(pX$education, pY$fit, lwd = 2) # Prediction line
lines(pX$education, pY$fit - pY$se.fit) # -1 SE
lines(pX$education, pY$fit + pY$se.fit) # +1 SE

График с использованием необработанных точек данных

## Adjusted (marginalized) data ##

mod <- lm(income ~ education + women, data = Prestige)
summary(mod)

# Calculate the values of income, marginalizing out the effect of percentage women
margin_income <- coef(mod)["(Intercept)"] + coef(mod)["education"] * Prestige$education + 
    coef(mod)["women"] * mean(Prestige$women) + residuals(mod)

# Create a scatterplot of education against income
plot(Prestige$education, margin_income, xlab = "Years of education", 
     ylab = "Adjusted income", bty = "n", pch = 16, col = "grey")
# Create a dataframe representing the values on the predictors for which we 
# want predictions
pX <- expand.grid(education = seq(min(Prestige$education), max(Prestige$education), by = .1), 
              women = mean(Prestige$women))
# Get predicted values
pY <- predict(mod, pX, se.fit = T)

lines(pX$education, pY$fit, lwd = 2) # Prediction line
lines(pX$education, pY$fit - pY$se.fit) # -1 SE
lines(pX$education, pY$fit + pY$se.fit) # +1 SE

Скорректированные данные

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.