[R-sig-eco] Extracting information from lm results

Johannes Radinger JRadinger at gmx.at
Mon Aug 15 13:07:43 CEST 2011


Hello Peter,

I just found a mail list correspondence from you in R-sig-eco and
found your information and code snipped about extracting information from
lm results very useful. I do have a similar challenge to perform several lm-regression and in the end I'd like to get e.g a mean value for R-squared or p or any other of the regression coefficients.

So far I managed to write following code example:

#Defining variables
Y=c(15,14,23,18,19,9,19,13)
X1=c(0.2,0.6,0.45,0.27,0.6,0.14,0.1,0.52)
X2a=c(17,22,21,18,19,25,8,19)
X2b=c(22,22,29,34,19,26,17,22)
X2 <- function()runif(length(X2a), X2a, X2b)

#create empty list
mod <- list()
#perfrom n-model runs for lm
for(i in 1:10) {
	mod[[paste("run",i,sep="")]] <- lm(Y~X1+X2())
	}

#define coeficients and how to extract them from lm	
All_Model_runs <- function(lm){
	out <- c(lm$coefficients[1],
	lm$coefficients[2],
	summary(lm)$coefficients[2,2],
	pf(summary(lm)$fstatistic[1], summary(lm)$fstatistic[2],
	summary(lm)$fstatistic[3], lower.tail = FALSE),
	summary(lm)$r.squared)
	names(out) <- c("intercept","slope","slope.SE","p.value","r.squared")
	return(out)
	}

#create empty list
results <- list()
#get coeffiencts for all model runs into list: results
for (i in 1:length(mod)) results[[names(mod)[i]]] <- All_Model_runs(mod[[i]])


Now my questions you might probably be able to answer:

1) Is that so far good what I was doing (according to your code)?
2) How can I get a mean/average p value for example or an average R-squared
over all model runs?
3) Is there any special function to call a mean of these coefficients?

Thank you very much
/Johannes

--



More information about the R-sig-ecology mailing list