मेरी राय में, आपके द्वारा वर्णित मॉडल वास्तव में प्लॉटिंग के लिए खुद को उधार नहीं देता है, क्योंकि प्लॉट सबसे अच्छा काम करते हैं जब वे जटिल जानकारी प्रदर्शित करते हैं जो अन्यथा समझना मुश्किल है (उदाहरण के लिए, जटिल इंटरैक्शन)। हालाँकि, यदि आप अपने मॉडल में संबंधों का एक प्लॉट प्रदर्शित करना चाहते हैं, तो आपको दो मुख्य विकल्प मिलेंगे:
- कच्चे आंकड़ो के बिखराव के साथ, ब्याज और अपने परिणाम के अपने पूर्ववर्तियों में से प्रत्येक के बीच द्विवार्षिक संबंधों के भूखंडों की एक श्रृंखला प्रदर्शित करें। आपकी पंक्तियों के चारों ओर प्लॉट त्रुटि लिफाफे हैं।
- विकल्प 1 से प्लॉट प्रदर्शित करें, लेकिन कच्चे डेटापॉइंट्स को दिखाने के बजाय, अपने अन्य भविष्यवक्ताओं के साथ डेटापॉइंट्स को हाशिए पर दिखाएं (यानी, अन्य भविष्यवक्ताओं के योगदान को घटाने के बाद)
विकल्प 1 का लाभ यह है कि यह दर्शकों को कच्चे डेटा में बिखराव का आकलन करने की अनुमति देता है। विकल्प 2 का लाभ यह है कि यह अवलोकन-स्तर की त्रुटि को दर्शाता है जो वास्तव में फोकल गुणांक के मानक त्रुटि के परिणामस्वरूप होता है जिसे आप प्रदर्शित कर रहे हैं।
आर 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