मैं एक निरंतर भविष्यवाणियों और कई स्तरों के साथ एक स्पष्ट भविष्यवाणी के साथ एक लॉजिस्टिक रिग्रेशन मॉडल पर काम कर रहा हूं। मैं ggplot2
का उपयोग करके परिणाम प्रस्तुत करना चाहता हूं और facet_wrap
का शोषण करना चाहता हूं ताकि वर्गीकृत भविष्यवाणियों के प्रत्येक स्तर के लिए प्रतिगमन रेखाएं प्रदर्शित हो सकें। ऐसा करने पर मैंने देखा कि stat_smooth
द्वारा प्रदान किया गया फिट वक्र केवल एक विशेष पहलू में डेटा को मानता है, न कि संपूर्ण डेटा सेट। यह एक छोटा सा अंतर है, लेकिन साजिश को देखते हुए एक ध्यान देने योग्य व्यक्ति बनाम मूल्य predict.glm
से लौटाया गया है।ggplot2: facet_wrap के साथ लॉजिस्टिक परिणामों के लिए stat_smooth 'पूर्ण' या 'सबसेट' glm मॉडल
कोड के बाद ग्राफिक के साथ इस मुद्दे को पुन: प्रयास करने का एक उदाहरण यहां दिया गया है।
library(boot) # needed for inv.logit function
library(ggplot2) # version 0.8.9
set.seed(42)
n <- 100
df <- data.frame(location = rep(LETTERS[1:4], n),
score = sample(45:80, 4*n, replace = TRUE))
df$p <- inv.logit(0.075 * df$score + rep(c(-4.5, -5, -6, -2.8), n))
df$pass <- sapply(df$p, function(x){rbinom(1, 1, x)})
gplot <- ggplot(df, aes(x = score, y = pass)) +
geom_point() +
facet_wrap(~ location) +
stat_smooth(method = 'glm', family = 'binomial')
# 'full' logistic model
g <- glm(pass ~ location + score, data = df, family = 'binomial')
summary(g)
# new.data for predicting new observations
new.data <- expand.grid(score = seq(46, 75, length = n),
location = LETTERS[1:4])
new.data$pred.full <- predict(g, newdata = new.data, type = 'response')
pred.sub <- NULL
for(i in LETTERS[1:4]){
pred.sub <- c(pred.sub,
predict(update(g, formula = . ~ score, subset = location %in% i),
newdata = data.frame(score = seq(46, 75, length = n)),
type = 'response'))
}
new.data$pred.sub <- pred.sub
gplot +
geom_line(data = new.data, aes(x = score, y = pred.full), color = 'green') +
geom_line(data = new.data, aes(x = score, y = pred.sub), color = 'red')
मैं क्या उल्लेख किया है और संबंधित के बारे में पहलू बी लाल घटता मॉडल से भविष्यवाणी की मानों केवल एक ही स्थान पर विचार कर रहे में देखने के लिए कम रहा है, जबकि हरी घटता पूर्ण का उपयोग कर रहे हैं भविष्यवाणियों डेटा सेट डेटा के सबसेट पर आधारित मॉडल stat_smooth
से साजिश से मेल खाते हैं।
मैं ggplot2
के माध्यम से मानक त्रुटि छायांकन, हरे वक्र के साथ साजिश करना चाहता हूं। मुझे यकीन है कि कोड में कहीं भी एक विकल्प है जिसका उपयोग मैं कर सकता हूं, लेकिन मुझे अभी तक यह नहीं मिला है, या शायद ggplot
कॉल से हरे वक्र प्राप्त करने के लिए मुझे एक अलग आदेश या कदमों का पालन करना चाहिए। मुझे एक पहलू पर सब कुछ प्लॉट करने और रंग या समूह सौंदर्यशास्त्र का उपयोग करते समय समान समस्याएं मिली हैं।
किसी भी सुझाव की सराहना की जाएगी।