Hello, from Verzani, simpleR (pdf), p. 80, I created the following function to test the coefficient of lm() against an arbitrary value.
coeff.test <- function(lm.result, var, coeffname, value) { # null hypothesis: coeff = value # alternative hypothesis: coeff != value es <- resid(lm.result) coeff <- (coefficients(lm.result))[[coeffname]] # degrees of freedom = length(var) - number of coefficients? n <- df.residual(lm.result) s <- sqrt( sum( es^2 ) / n ) SE <- s/sqrt(sum((var - mean(var))^2)) t <- (coeff - value )/SE 2 * pt(t,n,lower.tail=FALSE) # times two because problem is two-sided } E.g. it needs to be called coeff.test(lm(N ~ D), D, "D", 70) if I want to test the probability slope of the linear model being 70. Is there a more elegant way to avoid passing D and "D" both as parameters? Also, as a non-professional, I would like to know whether the function is valid for all coefficients of lm(), e.g. coeff.test(lm(N ~ D + H), H, "H", 70). I am aware that Verzani gives a different formula for testing the intercept. Thanks! Jan Rheinländer ______________________________________________ R-help@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.