Dear R users, I came up with some simple functions to give me the standard betas and tolerance values from a predefined lm() model. I have been trying to insert the results from these functions into the coefficients matrix in a modified summary.lm function that I'm calling summary2 (I'd never edit the summary.lm function directly!!). I managed to get the results inserted into the output, but a few things have changed: 1) Now instead of the Pr(>|t|) column being the only one to ever be expressed in scientific notation, the other columns (except for the new 'Tolerance' column) are also expressed in scientific notation, with 3 decimal places before the exponent value. 2) The stars that would previously indicate the significance of the coefficients no longer show up, and neither does the legend that explains the stars on the bottom. 3) I get a warning message at the bottom of the output saying the following:
"Warning message: In cbind(betas, est, se, tval, 2 * pt(abs(tval), rdf, lower.tail = FALSE), : number of rows of result is not a multiple of vector length (arg 1)" In order to give you a 'paper trail', following are the new functions I defined, the url linking you to my summary2 script and a dataset I've been using to test the summary function, and the regression results from using summary2 on this dataset: ----------------------------------------- std.betas = function(mod) { coefs = coef(mod) sds = sd(mod$model[,2:length(names(mod$model))]) sd.Y = sd(mod$model[,1]) coefs.in.sds = coefs[2:length(coefs)]/sd.Y std.betas = coefs.in.sds / (1/sds) std.betas } tolerance = function(model) # Dependent on car package { 1/vif(model) } http://www.utsc.utoronto.ca/~mdubins/summary2.R http://www.utsc.utoronto.ca/~mdubins/Tab15-1.dat > summary2(b) Call: lm(formula = Overall ~ Teach + Exam + Knowledge + Grade + Enroll) Residuals: Min 1Q Median 3Q Max -0.69991 -0.16245 0.01669 0.20511 0.82464 Coefficients: Std.Estimate Estimate Std. Error t value Pr(>|t|) Tolerance (Intercept) 6.620e-01 -1.195e+00 6.312e-01 -1.893e+00 6.494e-02 0.418 Teach 1.061e-01 7.632e-01 1.329e-01 5.742e+00 8.068e-07 0.325 Exam 3.251e-01 1.320e-01 1.628e-01 8.107e-01 4.219e-01 0.675 Knowledge -1.055e-01 4.890e-01 1.365e-01 3.581e+00 8.491e-04 0.620 Grade 1.242e-01 -1.843e-01 1.655e-01 -1.114e+00 2.715e-01 0.653 Enroll 6.620e-01 5.255e-04 3.901e-04 1.347e+00 1.848e-01 0.418 Residual standard error: 0.3202 on 44 degrees of freedom Multiple R-squared: 0.7554, Adjusted R-squared: 0.7277 F-statistic: 27.18 on 5 and 44 DF, p-value: 1.979e-12 Warning message: In cbind(betas, est, se, tval, 2 * pt(abs(tval), rdf, lower.tail = FALSE), : number of rows of result is not a multiple of vector length (arg 1) -------------------------------- All I want is to have the extra Std.Estimate and Tolerance columns without changing anything else in the regression output. Any help is appreciated! Thanks, Matthew Dubins ______________________________________________ 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.