Найкращий спосіб візуально представити відносини з декількох лінійних моделей


15

У мене є лінійна модель з приблизно 6 провісниками, і я буду представляти оцінки, значення F, значення p тощо. Однак мені було цікаво, що було б найкращим візуальним сюжетом для представлення індивідуального ефекту одного прогноктора змінна відповідь? Діаграма розкиду? Умовна ділянка? Ефекти сюжету? тощо? Як би я трактував цей сюжет?

Я буду робити це в R, тому сміливо надайте приклади, якщо можете.

EDIT: Я передусім переймаюся тим, щоб представити взаємозв'язок між будь-яким заданим прогноктором та змінною відповіді.


У вас є умови взаємодії? Спланування було б набагато складніше, якщо ви їх матимете.
Хотака

Ні, лише 6 безперервних змінних
AMathew

У вас уже є шість коефіцієнтів регресії, по одному для кожного прогноктора, які, ймовірно, будуть представлені в табличній формі, в чому причина повторення тієї ж точки з графіком?
Penguin_Knight

3
Для нетехнічних аудиторій я б краще показати їм графік, ніж розповісти про оцінку або про те, як розраховуються коефіцієнти.
AMathew

2
@tony, я бачу. Можливо, ці два веб-сайти можуть дати вам натхнення: використання пакету R visreg та діаграми рядка помилок для візуалізації моделей регресії.
Penguin_Knight

Відповіді:


12

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

  1. Відобразіть ряд сюжетів двовимірних зв’язків між вашими прогнозами, що цікавлять вас, та вашим результатом, розкидаючи необмежену точку даних. Накресліть конверти помилок навколо ваших ліній.
  2. Відображайте графік з варіанту 1, але замість того, щоб показувати необроблені точки даних, покажіть точки даних з іншими вашими прогнозами, маргіналізованими (тобто після віднімання внесків інших прогнозів)

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

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

## 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.