[R] loop for regression

arun smartpink111 at yahoo.com
Wed Jul 4 21:06:24 CEST 2012


HI Bert

Thanks for the reply.  You are right.  In the case if it was a matrix, then lm automatically fits each column.

Stocks<-dat1[,2:4]
> is.matrix(Stocks)
[1] FALSE
> is.data.frame(Stocks)
[1] TRUE

#Not working

 models<-lm(Stocks~Market,data=dat1) 
Error in model.frame.default(formula = Stocks ~ Market, data = dat1, drop.unused.levels = TRUE) : 


#Works

Stocks1<-as.matrix(Stocks)
models1<-lm(Stocks1~Market,data=dat1)
models1

Call:
lm(formula = Stocks1 ~ Market, data = dat1)

Coefficients:
             Stock1  Stock2  Stock3
(Intercept)  -3      -2      -1    
Market        1       1       1    

A.K.




________________________________
From: Bert Gunter <gunter.berton at gene.com>
To: arun <smartpink111 at yahoo.com> 
Cc: Akhil dua <akhil.dua.12 at gmail.com>; R help <r-help at r-project.org> 
Sent: Wednesday, July 4, 2012 2:48 PM
Subject: Re: [R] loop for regression


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.

-- 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



More information about the R-help mailing list