Thanks Boris, the following is an extract of my data. I have developed biomass models using codes like: start <- coef (lm(log(Btot)~I(log(dbh**2*haut)),data=dat[dat$Btot>0,])) start[1] <- exp(start[1]) names(start) <- c("a","b") M1 <- nls(Btot~a*(dbh**2*haut)**b,data=dat,start=start,weights=1/dat$dbh**4) start <- coef(lm(log(Btot)~I(log(dbh))+I(log(haut)),data=dat[dat$Btot>0,])) start[1] <- exp(start[1]) names(start) <- c("a","b1","b2") M2 <- nls(Btot~a*dbh**b1*haut**b2,data=dat,start=start,weights=1/dat$dbh**4) Tree No dbh haut Btot 1 35.00 18.90 0.535 2 25.00 16.60 0.248 3 23.00 19.50 0.228 4 13.50 15.60 0.080 5 20.00 18.80 0.172 6 23.00 17.40 0.190 7 29.00 19.90 0.559 8 17.60 18.20 0.117 9 31.00 25.30 0.645 10 26.00 23.50 0.394 11 13.00 13.00 0.038 12 32.00 20.70 0.443 It is my interest to get prediction plots for the models. I have tried to use the following codes with no success: Let m be one of the fitted models with dbh as the only entry. To construct a plot of the predictions made by this model I have tried: with(dat,plot(dbh,Btot,xlab="Dbh(cm)",ylab="Biomass (t)")) D <- seq(par("usr")[1],par("usr")[2],length=200) lines(D,predict(m,newdata=data.frame(dbh=D)),col="red") For a model m that has dbh and height as entries, I have tried to get its predictions as follows: D <- seq(0,180,length=20) H <- seq(0,61,length=20) B <- matrix(predict(m,newdata=expand.grid(dbh=D,height=H)),length(D)) Can someone provide help please!!! Best regards, Santiago Bueno [[alternative HTML version deleted]]
Can you provide a small reproducible example and explain what exactly is going wrong? Just a handful of data points will do. B.> On Apr 18, 2017, at 2:16 PM, Santiago Bueno <swbueno at gmail.com> wrote: > > Thanks Boris, the following is an extract of my data. I have developed > biomass models using codes like: > > start <- coef (lm(log(Btot)~I(log(dbh**2*haut)),data=dat[dat$Btot>0,])) > > start[1] <- exp(start[1]) > > names(start) <- c("a","b") > > M1 <- nls(Btot~a*(dbh**2*haut)**b,data=dat,start=start,weights=1/dat$dbh**4) > > > start <- coef(lm(log(Btot)~I(log(dbh))+I(log(haut)),data=dat[dat$Btot>0,])) > > start[1] <- exp(start[1]) > > names(start) <- c("a","b1","b2") > > M2 <- nls(Btot~a*dbh**b1*haut**b2,data=dat,start=start,weights=1/dat$dbh**4) > > > Tree No dbh haut Btot > 1 35.00 18.90 0.535 > 2 25.00 16.60 0.248 > 3 23.00 19.50 0.228 > 4 13.50 15.60 0.080 > 5 20.00 18.80 0.172 > 6 23.00 17.40 0.190 > 7 29.00 19.90 0.559 > 8 17.60 18.20 0.117 > 9 31.00 25.30 0.645 > 10 26.00 23.50 0.394 > 11 13.00 13.00 0.038 > 12 32.00 20.70 0.443 > It is my interest to get prediction plots for the models. I have tried to > use the following codes with no success: Let m be one of the fitted models > with dbh as the only entry. To construct a plot of the predictions made by > this model I have tried: > with(dat,plot(dbh,Btot,xlab="Dbh(cm)",ylab="Biomass (t)")) > D <- seq(par("usr")[1],par("usr")[2],length=200) > lines(D,predict(m,newdata=data.frame(dbh=D)),col="red") > For a model m that has dbh and height as entries, I have tried to get its > predictions as follows: > D <- seq(0,180,length=20) > H <- seq(0,61,length=20) > B <- matrix(predict(m,newdata=expand.grid(dbh=D,height=H)),length(D)) > > Can someone provide help please!!! > > > Best regards, > > Santiago Bueno > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.
I have done this a lot. Would you mind installing my pkg rockchalk and then run example(plotSlope) and example(plotCurve)? If the output is close to what you want, you can adjust my code. The vignette explains. 1. Create newdata object 2. Run that through predict 3. Make plot None of this is rocket science, but it does help students here. PJ On Apr 18, 2017 1:17 PM, "Santiago Bueno" <swbueno at gmail.com> wrote:> Thanks Boris, the following is an extract of my data. I have developed > biomass models using codes like: > > start <- coef (lm(log(Btot)~I(log(dbh**2*haut)),data=dat[dat$Btot>0,])) > > start[1] <- exp(start[1]) > > names(start) <- c("a","b") > > M1 <- nls(Btot~a*(dbh**2*haut)**b,data=dat,start=start,weights> 1/dat$dbh**4) > > > start <- coef(lm(log(Btot)~I(log(dbh))+I(log(haut)),data=dat[dat$ > Btot>0,])) > > start[1] <- exp(start[1]) > > names(start) <- c("a","b1","b2") > > M2 <- nls(Btot~a*dbh**b1*haut**b2,data=dat,start=start,weights> 1/dat$dbh**4) > > > Tree No dbh haut Btot > 1 35.00 18.90 0.535 > 2 25.00 16.60 0.248 > 3 23.00 19.50 0.228 > 4 13.50 15.60 0.080 > 5 20.00 18.80 0.172 > 6 23.00 17.40 0.190 > 7 29.00 19.90 0.559 > 8 17.60 18.20 0.117 > 9 31.00 25.30 0.645 > 10 26.00 23.50 0.394 > 11 13.00 13.00 0.038 > 12 32.00 20.70 0.443 > It is my interest to get prediction plots for the models. I have tried to > use the following codes with no success: Let m be one of the fitted models > with dbh as the only entry. To construct a plot of the predictions made by > this model I have tried: > with(dat,plot(dbh,Btot,xlab="Dbh(cm)",ylab="Biomass (t)")) > D <- seq(par("usr")[1],par("usr")[2],length=200) > lines(D,predict(m,newdata=data.frame(dbh=D)),col="red") > For a model m that has dbh and height as entries, I have tried to get its > predictions as follows: > D <- seq(0,180,length=20) > H <- seq(0,61,length=20) > B <- matrix(predict(m,newdata=expand.grid(dbh=D,height=H)),length(D)) > > Can someone provide help please!!! > > > Best regards, > > Santiago Bueno > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/ > posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >[[alternative HTML version deleted]]