[R] problem with looping formula through table

herr dittmann herrdittmann at yahoo.co.uk
Sun Mar 13 14:03:37 CET 2011


Dear useRs,

I am stuck with a piece of code and hope you could give me some pointers.

My aim is to calculate the lm-regression coefficients of individual stocks against an index. I am interested in both the coefficient and the pval. While I could do this manually for a select hand full, I hope to scale this up say for 30+ stocks (DAX-30, FTSE-100 etc.) to eventually have a matrix of coefficients and p-values for each individual stock.

First, let's get share prices:

library(tseries)

sie <- get.hist.quote(instrument="SIE.DE", start="2010-01-01", quote="AdjClose")
vow <- get.hist.quote(instrument="VOW.DE", start="2010-01-01", quote="AdjClose")
lin <- get.hist.quote(instrument="LIN.DE", start="2010-01-01", quote="AdjClose")
dax <- get.hist.quote(instrument="^GDAXI", start="2010-01-01", quote="AdjClose")

returns.table <- diff(log(na.omit(merge(dax, lin, sie, vow))))

My function to get the betas pval is:

B <- function(share,bench){
beta <- summary(lm(share~bench))$coef[2]
pval <- summary(lm(share~bench))$coef[8]
coefs <- t(as.matrix(c(beta, pval), ncol=2, byrow=TRUE))
coefs
}

The function B works fine:

B(returns[,2],returns[,1])

> B(returns[,2],returns[,1])
          [,1]         [,2]
[1,] 0.7568787 9.740043e-47


Now, at the following step I am stuck. I am trying to loop through my returns.table:

Attempt 1:

for(i in 2:4){result[i] <- B(returns[,i],returns[,1]); result}
Error in result[i] <- B(returns[, i], returns[, 1]) : 
  object 'result' not found


Attempt 2:

for(i in 2:4){print(B(returns[,i],returns[,1]))}
          [,1]         [,2]
[1,] 0.7568787 9.740043e-47
         [,1]         [,2]
[1,] 1.311835 2.924594e-86
         [,1]         [,2]
[1,] 1.023310 1.078007e-30

Attempt 2 gets me a little closer to the desired matrix of coefficient and pval by each share.


What am I doing wrong here?

Any pointers most welcome.

Many thanks in advance!

Regards,

Bernd







More information about the R-help mailing list