[R] loop for regression
Joshua Wiley
jwiley.psych at gmail.com
Wed Jul 4 21:12:51 CEST 2012
On Wed, Jul 4, 2012 at 11:48 AM, Bert Gunter <gunter.berton at gene.com> wrote:
> Please carefully read ?lm. As I previously told the OP, no looping/apply is
> necessary. The left hand side of the lm formula can be a matrix for which
> separate fits will be done on each column automatically.
Which is a great option if the design matrix is constant, but suppose
you want to predict each stock from every other stock in a dataset?
This is a one liner with lapply:
lapply(colnames(mtcars), function(n) lm(substitute(y ~ ., list(y =
as.name(n))), data = mtcars))
granted, not the prettiest or most efficient thing on the planet (and
falls apart for some reason with fastLm(), which I am still
investigating work arounds to). The matrix outcome to lm() approach:
lm(as.matrix(mtcars) ~ ., data = mtcars)
yeilds perfect explanation by the variable of itself, as expected,
which is not really useful. The OP did not give many details other
than "write a for loop". It is not clear what should be varying. If
it is *just* the outcome, you are absolutely right, giving lm a matrix
seems the most sensible route.
Cheers,
Josh
>
> -- Bert
>
> On Wed, Jul 4, 2012 at 9:44 AM, arun <smartpink111 at yahoo.com> wrote:
>
>>
>>
>> Hi,
>>
>> You could also use:
>> dat1 <- read.table(text="
>>
>> Date Stock1 Stock2 Stock3 Market
>> 01/01/2000 1 2 3 4
>> 01/02/2000 5 6 7 8
>> 01/03/2000 1 2 3 4
>> 01/04/2000 5 6 7 8
>> ", header=TRUE, stringsAsFactors=FALSE)
>>
>> Stocks<-dat1[,2:4]
>> apply(Stocks,2,function(x) lm(x~Market,data=dat1))
>> $Stock1
>>
>> Call:
>> lm(formula = x ~ Market, data = dat1)
>>
>> Coefficients:
>> (Intercept) Market
>> -3 1
>>
>>
>> $Stock2
>>
>> Call:
>> lm(formula = x ~ Market, data = dat1)
>>
>> Coefficients:
>> (Intercept) Market
>> -2 1
>>
>>
>> $Stock3
>>
>> Call:
>> lm(formula = x ~ Market, data = dat1)
>>
>> Coefficients:
>> (Intercept) Market
>> -1 1
>>
>> A.K.
>>
>>
>>
>>
>> ----- Original Message -----
>> From: Akhil dua <akhil.dua.12 at gmail.com>
>> To: r-help at r-project.org
>> Cc:
>> Sent: Wednesday, July 4, 2012 1:08 AM
>> Subject: [R] loop for regression
>>
>> ---------- Forwarded message ----------
>> From: Akhil dua <akhil.dua.12 at gmail.com>
>> Date: Wed, Jul 4, 2012 at 10:33 AM
>> Subject:
>> To: r-help at r-project.org
>>
>>
>> Hi everyone I
>> have data on stock prices and market indices
>>
>> and I need to run a seperate regression of every stock on market
>> so I want to write a "for loop" so that I wont have to write codes again
>> and again to run the regression...
>> my data is in the format given below
>>
>>
>>
>> Date Stock1 Stock2 Stock3 Market
>> 01/01/2000 1 2 3 4
>> 01/02/2000 5 6 7 8
>> 01/03/2000 1 2 3 4
>> 01/04/2000 5 6 7 8
>>
>>
>> So can any one help me how to write this loop
>>
>> [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> 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.
>>
>>
>> ______________________________________________
>> 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.
>>
>
>
>
> --
>
> Bert Gunter
> Genentech Nonclinical Biostatistics
>
> Internal Contact Info:
> Phone: 467-7374
> Website:
> http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> 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.
--
Joshua Wiley
Ph.D. Student, Health Psychology
Programmer Analyst II, Statistical Consulting Group
University of California, Los Angeles
https://joshuawiley.com/
More information about the R-help
mailing list