여러 선형 모델에서 관계를 시각적으로 표현하는 가장 좋은 방법


15

저는 약 6 개의 예측 변수가있는 선형 모형을 가지고 있으며 추정치, F 값, p 값 등을 제시 할 것입니다. 그러나 단일 예측 변수의 개별 효과를 나타내는 가장 좋은 시각적 도표가 무엇인지 궁금했습니다. 응답 변수? 산포도? 조건부 플롯? 효과도? 기타? 그 음모를 어떻게 해석합니까?

R 에서이 작업을 수행하므로 가능하면 예제를 자유롭게 제공하십시오.

편집 : 나는 주로 주어진 예측 변수와 반응 변수 사이의 관계를 나타내는 것에 관심이 있습니다.


상호 작용 용어가 있습니까? 플로팅하면 훨씬 어려워집니다.
Hotaka

아니, 단지 6 개의 연속 변수
AMathew

이미 6 개의 회귀 계수가 있으며 각 예측 변수마다 하나씩 표 형식으로 표시 될 수 있습니다. 그래프를 사용하여 동일한 점을 다시 반복하는 이유는 무엇입니까?
Penguin_Knight

3
비 기술적 인 대상의 경우 추정이나 계수 계산 방법에 대해 이야기하는 것보다 도표를 보여 주려고합니다.
AMathew

2
@tony, 알겠습니다. 아마도이 두 웹 사이트는 R visreg 패키지오류 막대 플롯 을 사용하여 회귀 모델을 시각화 하는 데 영감을 줄 수 있습니다 .
Penguin_Knight

답변:


12

내 생각에, 당신이 묘사 한 모델은 실제로 이해하기 어려운 복잡한 정보 (예 : 복잡한 상호 작용)를 표시 할 때 가장 잘 작동하기 때문에 실제로 플롯에 적합하지 않습니다. 그러나 모델에서 관계의 플롯을 표시하려면 두 가지 주요 옵션이 있습니다.

  1. 원시 데이터 포인트의 산점도를 사용하여 관심있는 각 예측 변수와 결과 간의 이변 량 관계에 대한 일련의 플롯을 표시합니다. 선 주위에 오류 봉투를 플로팅합니다.
  2. 옵션 1의 플롯을 표시하지만, 원시 데이터 포인트를 표시하는 대신 다른 예측 변수와 함께 데이터 포인트를 표시하지 않습니다 (즉, 다른 예측 변수의 기여도를 뺀 후).

옵션 1의 장점은 뷰어가 원시 데이터의 분산을 평가할 수 있다는 것입니다. 옵션 2의 장점은 실제로 표시하는 초점 계수의 표준 오류를 초래 한 관찰 수준 오류를 표시한다는 것입니다.

R Prestigecar패키지에있는 데이터 세트의 데이터를 사용하여 아래에 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

조정 된 데이터

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.