FAQ
Dear Listserv,

Here is my latest in a series of simple-seeming questions that dog me.

Consider the following data:

0.11 9.4
0 2.3
0.38 8.7
0.43 9.2
0.6 15.6
0.47 8.7
0.09 12.8
0.11 9.4
0.01 7.7
0.83 8
0.65 9.3
0.05 7.4
0.34 10.1
0.02 4.8
0.07 9.1
0.6 15.6
0.01 8.4
0.9 9.6
0.83 8
0.12 8.4
0.01 8
0 5
0.11 9.7
0.41 7.4
0.05 9.4
0.09 8.3
0 6.1
0.12 8.4
0.73 7.8
0 4.2"), header = TRUE, as.is = TRUE)
closeAllConnections()

I modeled the relationship: Probability = f(Temperature), i.e., probability as a
function of temperature.

I found that there is a significant quadratic term in the model:

summary(lm(x[,2] ~ x[,1] + I(x[,1]^2)))

Now the question is: how do I plot it?

I can do this:
plot(x[,2] ~ x[,1])

...but I would also like to add a line corresponding to the quadratic function.
In other words, I want to visually show the relationship among the variables
that is being modeled. How do I do it? I think the curve() command will be used,
but I don't know how to employ it.

Sincerely,
-----------------------------------
Josh Banta, Ph.D
Center for Genomics and Systems Biology
New York University
100 Washington Square East
New York, NY 10003
Tel: (212) 998-8465
http://plantevolutionaryecology.org

## Search Discussions

•  at Apr 12, 2011 at 1:12 am ⇧
Hi Josh,

This is by no means the fanciest solution ever, but as there are
predict methods for many types of models in R, I thought I would show
it this way.

## fit the model
model <- lm(probability ~ poly(temperature, 2), data = x)

## create line values
dat <- data.frame(temperature = seq(min(x\$temperature, na.rm = TRUE),
max(x\$temperature, na.rm = TRUE), by = .01))
dat\$yhat <- predict(model, dat)

## plot data
plot(probability ~ temperature, data = x)
lines(x = dat\$temperature, y = dat\$yhat, type = "l")

Hope this helps,

Josh
On Mon, Apr 11, 2011 at 12:29 PM, Josh B wrote:
Dear Listserv,

Here is my latest in a series of simple-seeming questions that dog me.

Consider the following data:

0.11 9.4
0 2.3
0.38 8.7
0.43 9.2
0.6 15.6
0.47 8.7
0.09 12.8
0.11 9.4
0.01 7.7
0.83 8
0.65 9.3
0.05 7.4
0.34 10.1
0.02 4.8
0.07 9.1
0.6 15.6
0.01 8.4
0.9 9.6
0.83 8
0.12 8.4
0.01 8
0 5
0.11 9.7
0.41 7.4
0.05 9.4
0.09 8.3
0 6.1
0.12 8.4
0.73 7.8
0 4.2"), header = TRUE, as.is = TRUE)
closeAllConnections()

I modeled the relationship: Probability = f(Temperature), i.e., probability as a
function of temperature.

I found that there is a significant quadratic term in the model:

summary(lm(x[,2] ~ x[,1] + I(x[,1]^2)))

Now the question is: how do I plot it?

I can do this:
plot(x[,2] ~ x[,1])

...but I would also like to add a line corresponding to the quadratic function.
In other words, I want to visually show the relationship among the variables
that is being modeled. How do I do it? I think the curve() command will be used,
but I don't know how to employ it.

Sincerely,
-----------------------------------
Josh Banta, Ph.D
Center for Genomics and Systems Biology
New York University
100 Washington Square East
New York, NY 10003
Tel: (212) 998-8465
http://plantevolutionaryecology.org
? ? ? ?[[alternative HTML version deleted]]

______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
and provide commented, minimal, self-contained, reproducible code.

--
Joshua Wiley
Ph.D. Student, Health Psychology
University of California, Los Angeles
http://www.joshuawiley.com/
•  at Apr 12, 2011 at 4:14 am ⇧
Hi,

Is it just me or it appears the "temperature" and "probability" should be
reversed?
--------
with his own suggestion)

yourmodel <-lm(x[,2] ~ x[,1] + I(x[,1]^2)) # again, taking literally the way
you formulated it...

And you could then access the coefficients individually:

c <- coef(yourmodel)[1] # for the intercept
b <- coef(yourmodel)[2]
a <- coef(yourmodel)[3]

To build yourself a vector of predicted y-values based on a vector of
x-values ("dat" as per Joshua's post)
and pass them to the "lines" function to be plotted over your existing plot.

This is less convenient than using the "predict" but sometimes it helps to
do the arithmetic at a lower level.
HTH

--
View this message in context: http://r.789695.n4.nabble.com/Plotting-a-quadratic-line-on-top-of-an-xy-scatterplot-tp3443018p3443693.html
Sent from the R help mailing list archive at Nabble.com.

## Related Discussions

Discussion Overview
 group r-help categories r posted Apr 11, '11 at 7:29p active Apr 12, '11 at 4:14a posts 3 users 3 website r-project.org irc #r

### 3 users in discussion

Content

People

Support

Translate

site design / logo © 2015 Grokbase