[R] Help with lm and multiple linear regression? (Plain Text version)
Aaron Barzilai
aaron_barzilai at yahoo.com
Fri Dec 28 03:20:12 CET 2007
Tim (and others who responded privately),
Thanks for the help, this approach did work. I have also reread ?lm a little more closely, I do see the weights functionality.
I have one last question: Now that I understand how to call this function and review the results, I want to extend it to my much larger real problem, with 100s of columns. Is there a way to call the function in more of a matrix algebra syntax, where I would list the matrix(e.g. personcoeff) rather than the individual column names? It seems like I might need to use lm.wfit, but per the help I'd rather use lm.
Thanks,
Aaron
----- Original Message ----
From: Tim Calkins <tim.calkins at gmail.com>
To: Aaron Barzilai <aaron_barzilai at yahoo.com>
Cc: r-help at r-project.org
Sent: Thursday, December 27, 2007 6:55:57 PM
Subject: Re: [R] Help with lm and multiple linear regression? (Plain Text version)
consider merging everything into a singe dataframe. i haven't tried
it, but something like the following could work:
> reg.data <- cbind(margin, personcoeff)
> names(reg.data) <- c('margin', 'p1', 'p2')
> lm(margin~p1+p2, data = reg.data)
the idea here is that by specifying the data frame with the data
argument in lm, R looks for the columns of the names specified in the
formula.
for weights, see ?lm and look for the weights argument.
cheers,
tc
On Dec 28, 2007 10:22 AM, Aaron Barzilai <aaron_barzilai at yahoo.com> wrote:
> (Apologies the previous version was sent as rich text)
>
> Hello,
> I'm new to R, but I've read the intro to R and successfully connected it to an instance of mysql. I'm trying to perform multiple linear regression, but I'm having trouble using the lm function. To start, I have read in a simply y matrix of values(dependent variable) and x matrix of independent variables. It says both are data frames, but lm is giving me an error that my y variable is a list.
>
> Any suggestions on how to do this? It's not clear to me what the problem is as they're both data frames. My actual problem will use a much wider matrix of coefficients, I've only included two for illustration.
>
> Additionally, I'd actually like to weight the observations. How would I go about doing that? I also have that as a separate column vector.
>
> Thanks,
> Aaron
>
> Here's my session:
> > margin
> margin
> 1 66.67
> 2 -58.33
> 3 100.00
> 4 -33.33
> 5 200.00
> 6 -83.33
> 7 -100.00
> 8 0.00
> 9 100.00
> 10 -18.18
> 11 -55.36
> 12 -125.00
> 13 -33.33
> 14 -200.00
> 15 0.00
> 16 -100.00
> 17 75.00
> 18 0.00
> 19 -200.00
> 20 35.71
> 21 100.00
> 22 50.00
> 23 -86.67
> 24 165.00
> > personcoeff
> Person1 Person2
> 1 -1 1
> 2 -1 1
> 3 -1 1
> 4 -1 1
> 5 -1 1
> 6 -1 1
> 7 0 0
> 8 0 0
> 9 0 1
> 10 -1 1
> 11 -1 1
> 12 -1 1
> 13 -1 1
> 14 -1 0
> 15 0 0
> 16 0 0
> 17 0 1
> 18 -1 1
> 19 -1 1
> 20 -1 1
> 21 -1 1
> 22 -1 1
> 23 -1 1
> 24 -1 1
> > class(margin)
> [1] "data.frame"
> > class(personcoeff)
> [1] "data.frame"
> > lm(margin~personcoeff)
> Error in model.frame(formula, rownames, variables, varnames, extras, extranames, :
> invalid type (list) for variable 'margin'
>
>
> ____________________________________________________________________________________
> Be a better friend, newshound, and
>
> ______________________________________________
> R-help at r-project.org mailing list
> 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.
>
--
Tim Calkins
0406 753 997
____________________________________________________________________________________
Be a better friend, newshound, and
More information about the R-help
mailing list