Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I fix the abline warning, only using first two coefficients?

I have been unable to resolve an error when using abline(). I keep getting the warning message: In abline(model): only using the first two of 7 regression coefficients. I've been searching and seen many instances of others with this error but their examples are for multiple linear functions. I'm new to R and below is a simple example I'm using to work with. Thanks for any help!

year = c('2010','2011','2012','2013','2014','2015','2016')
population = c(25244310,25646389,26071655,26473525,26944751,27429639,27862596)
Texas=data.frame(year,population) 

plot(population~year,data=Texas)
model = lm(population~year,data=Texas)
abline(model)
like image 663
JJTX Avatar asked Feb 17 '19 19:02

JJTX


1 Answers

You probably want something like the following where we make sure that year is interpreted as a numeric variable in your model:

plot(population ~ year, data = Texas)
model <- lm(population ~ as.numeric(as.character(year)), data = Texas)
abline(model)

enter image description here

This makes lm to estimate an intercept (corresponding to a year 0) and slope (the mean increase in population each year), which is correctly interpreted by abline as can also be seen on the plot.

The reason for the warning is that year becomes a factor with 7 levels and so your lm call estimate the mean value for the refence year 2010 (the intercept) and 6 contrasts to the other years. Hence you get many coefficients and abline only uses the first two incorrectly.

Edit: With that said, you probably want change the way year is stored to a numeric. Then your code works, and plot also makes a proper scatter plot as regression line.

Texas$year <- as.numeric(as.character(Texas$year))

plot(population ~ year, data = Texas, pch = 16)
model <- lm(population ~ year, data = Texas)
abline(model)

enter image description here

Note that the as.character is needed in general, but it works in lm without it by coincidence (because the years are consecutive)

like image 50
Anders Ellern Bilgrau Avatar answered Oct 05 '22 12:10

Anders Ellern Bilgrau