Семейство GLM Gamma в ggplot: разница между geom_line () и stat_smooth () в представлении кривой - PullRequest
0 голосов
/ 07 декабря 2018

Я хотел бы построить модель glm с семейством Gamma в ggplot.Моя идея - использовать stat_smooth () для представления доверительного интервала моей отрегулированной модели.Кривая geom_line () с предварительно заданными точками полностью отличается от кривой stat_smooth () в моем примере ниже:

#Simulation data set
set.seed(123)
d<-NULL
N<-50
d$Production <- rgamma(N,10)
d$Feature <- ifelse(d$Production >7 & d$Production<10, c("green"),ifelse(d$Production>11, 
c("red"), c("blue")))  
d$Temp<-rnorm(N,20,5)
d<-as.data.frame(d)
#

# Gamma glm model
mG<- glm(Production~ Feature + Temp, family= Gamma, data = d)
summary(mG)
anova(mG,test="Chi")

# Pair-wise Feature factor
library(multcomp)
PW<-summary(glht(mG, linfct = mcp(Feature= "Tukey")))  
PW 
cld(PW)

# If for example green = blue
Feature2<-d$Feature
levels(Feature2) 
levels(Feature2)[1]<-"blue&green"
levels(Feature2)[2]<-"blue&green"
levels(Feature2)
d$Feature2<-Feature2
#New GLM model
mG2<- glm(Production~ Feature2 + Temp, family= Gamma, data = d)

# Prediction values
pred.data = data.frame(
Feature2<-d$Feature2,
Temp<-d$Temp
)  
pred.data$Production = predict(mG2, newdata=pred.data, type="response")

#Final plot
library("ggplot2")
ggplot(d, aes(Temp, Production, colour = Feature2)) +
  geom_point() +
  geom_line(data=pred.data) +
  stat_smooth(method = "glm", formula = y ~ x, family = Gamma)
#

Difference between geom_line() and stat_smooth() in curve representation Пожалуйста, мне нужна помощь, чтобы исправить это,спасибо

...