Cara terbaik untuk menyajikan hubungan secara visual dari model linier berganda

15

Saya memiliki model linier dengan sekitar 6 prediktor dan saya akan mempresentasikan estimasi, nilai F, nilai p, dll. Namun, saya bertanya-tanya apa yang akan menjadi plot visual terbaik untuk mewakili efek individual dari satu prediktor tunggal pada variabel respon? Scatterplot? Plot Bersyarat? Efek plot? dll? Bagaimana saya menafsirkan plot itu?

Saya akan melakukan ini di R jadi jangan ragu untuk memberikan contoh jika Anda bisa.

EDIT: Saya terutama prihatin dengan menyajikan hubungan antara setiap prediktor yang diberikan dan variabel respons.

Amathew
sumber
Apakah Anda memiliki istilah interaksi? Merencanakan akan jauh lebih sulit jika Anda memilikinya.
Hotaka
Tidak, hanya 6 variabel kontinu
AMathew
Anda sudah memiliki enam koefisien regresi, satu untuk setiap prediktor, yang kemungkinan akan disajikan dalam bentuk tabel, apa alasan mengulangi poin yang sama lagi dengan grafik?
Penguin_Knight
3
Untuk khalayak non-teknis, saya lebih suka menunjukkan kepada mereka plot daripada berbicara tentang estimasi atau bagaimana koefisien dihitung.
AMathew
2
@tony, saya mengerti. Mungkin kedua situs web ini dapat memberi Anda beberapa inspirasi: menggunakan paket R visreg dan plot kesalahan untuk memvisualisasikan model regresi.
Penguin_Knight

Jawaban:

12

Menurut pendapat saya, model yang telah Anda gambarkan tidak benar-benar cocok untuk plot, karena plot berfungsi paling baik ketika mereka menampilkan informasi kompleks yang sulit untuk dipahami sebaliknya (misalnya, interaksi kompleks). Namun, jika Anda ingin menampilkan plot hubungan dalam model Anda, Anda punya dua opsi utama:

  1. Perlihatkan serangkaian plot hubungan bivariat antara masing-masing prediktor minat Anda dan hasil Anda, dengan sebar sebaran titik data mentah. Alur kesalahan amplop di sekitar garis Anda.
  2. Tampilkan plot dari opsi 1, tetapi alih-alih menunjukkan datapoints mentah, perlihatkan datapoints dengan prediktor Anda yang lain yang dimarginalkan (yaitu, setelah mengurangi kontribusi dari prediktor lain)

Manfaat opsi 1 adalah memungkinkan pemirsa untuk menilai sebaran dalam data mentah. Manfaat dari opsi 2 adalah bahwa ia menunjukkan kesalahan tingkat observasi yang sebenarnya menghasilkan kesalahan standar dari koefisien fokus yang Anda tampilkan.

Saya telah memasukkan kode R dan grafik dari setiap opsi di bawah ini, menggunakan data dari Prestigedataset dalam carpaket di 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

Grafik menggunakan titik data mentah

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

Data yang disesuaikan

Patrick S. Forscher
sumber