r - Combine logistic regression with bar graph for maturity results -
i trying present results of logistic regression analysis maturity schedule of fish species. below reproducible code.
#coded r version r version 3.0.2 (2013-09-25) #frisbee sailing rm(list=ls()) library(ggplot2) library(fsa) #generate sample data 1 mature, 0 non mature m<-rep(c(0,1),each=25) tl<-seq(31,80, 1) dat<-data.frame(m,tl) # add non mature individuals @ random in middle of df #prevent glm.fit: fitted probabilities numerically 0 or 1 occurred error tl<-sample(50:65, 15) m<-rep(c(0),each=15) dat2<-data.frame(tl,m) #final dataset data3<-rbind(dat,dat2) ggplot can produce logistic regression graph showing each of data points employed, following code:
#plot logistic model ggplot(data3, aes(x=tl, y=m)) + stat_smooth(method="glm", family="binomial", se=false)+ geom_point() i want combine probability of being mature @ given size, obtained, , plotted following code:
#plot proportion of mature #clump data in 5 cm size classes l50<-lencat(~tl,data=data3,startcat=30,w=5) #table of frequency of mature individuals size mat<-with(l50, table(lcat, m)) #proportion of mature mat_prop<-as.data.frame.matrix(prop.table(mat, margin=1)) colnames(mat_prop)<-c("nm", "m") mat_prop$tl<-as.factor(seq(30,80, 5)) # bar plot probability mature ggplot(mat_prop, aes(x=tl,y=m)) + geom_bar(stat="bin") what i've been trying do, no success, make graph combines both, since axis same should straightforward, cant seem make t work. have tried:
ggplot(mat_prop, aes(x=tl,y=m)) + geom_bar(stat="bin")+ stat_smooth(method="glm", family="binomial", se=false) but not work. appreciated. new not able add resulting graphs post.
i see 3 problems code:
using
stat="bin"ingeom_bar()inconsisten giving values y-axis (y=m). if bin, count number of x-values in interval , use count y-value, there no need map data y-axis.the data glm-plot in
data3, combined plot usesmat_prop.the x-axis of 2 plots acutally not quite same. in bar plot, use factor variable on x-axis, making axis discrete, while in glm-plot, use numeric variable, leads continuous x-axis.
the following code gave graph combining 2 plots:
mat_prop$tl<-seq(30,80, 5) ggplot(mat_prop, aes(x=tl,y=m)) + geom_bar(stat="identity") + geom_point(data=data3) + geom_smooth(data=data3,aes(x=tl,y=m),method="glm", family="binomial", se=false) i run after first sourcing script define variables. 3 problems mentioned above adressed follows:
i used
geom_bar(stat="identity")in order not use binning in bar plot.i use
data-argument ingeom_point,geom_smoothin order use correct data (data3) these parts of plot.i redifine
mat_prop$tlmake numeric. consistent columntlindata3, numeric well.
(i added points. if don't want them, remove geom_point(data=data3).)
the plot looks follows:

does lead plot wanted? let me know if need change something.
Comments
Post a Comment