2

I am new to R and I am trying to do linear prediction. Here is some simple data:

test.frame<-data.frame(year=8:11, value= c(12050,15292,23907,33991))

Say if I want to predict the value for year=12. This is what I am doing (experimenting with different commands):

lma=lm(test.frame$value~test.frame$year)  # let's get a linear fit
summary(lma)                              # let's see some parameters
attributes(lma)                           # let's see what parameters we can call
lma$coefficients                          # I get the intercept and gradient
predict(lm(test.frame$value~test.frame$year))  
newyear <- 12                             # new value for year
predict.lm(lma, newyear)                  # predicted value for the new year

Some queries:

  1. if I issue the command lma$coefficients for instance, a vector of two values is returned to me. How to pick only the intercept value?

  2. I get lots of output with predict.lm(lma, newyear) but cannot understand where the predicted value is. Can someone please clarify?

Thanks a lot...

yCalleecharan
  • 4,656
  • 11
  • 56
  • 86
  • I've updated my answers to give correct answers with the variable names of your question – abcde123483 Dec 02 '11 at 07:04
  • 1
    Also, `lm(value ~ year, data=test.frame)` is a more readable way to specify the model, which I got pretty excited about when first learning some R. – mindless.panda Dec 02 '11 at 22:57

1 Answers1

4

intercept:

lma$coefficients[1]

Predict, try this:

test.frame <- data.frame(year=12, value=0)
predict.lm(lma, test.frame)   
abcde123483
  • 3,885
  • 4
  • 41
  • 41