mvlinreg 1.0 NAME ---- mvlinreg - Multivariate linear regression SYNOPSIS -------- mvlinreg::tstat dof ?alpha? mvlinreg::wls wt1 {y1 x11 x12 ... x1N} wt2 {y2 x21 x22 ... x2N} ... mvlinreg::ols {y1 x11 x12 ... x1N} {y2 x21 x22 ... x2N} ... DESCRIPTION ----------- The mvlinreg package requires ::math::linearalgebra 1.0 ::math::statistics 0.1.1 The mvlinreg package provides procedures for doing ordinary least squares (OLS) and weighted least squares (WLS) linear regression. It also provides a procedure for calculating the value of the t-statistic for the specified number of degrees of freedom that is required to demonstrate a given level of significance. PROCEDURES ---------- ::mvlinreg::tstat dof ?alpha? Returns the value of the t-distribution t* satisfying P(t*) = 1 - alpha/2 P(-t*) = alpha/2 for the number of degrees of freedom dof. Given a sample of normally-distributed data x, with an estimate xbar for the mean and sbar for the standard deviation, the alpha confidence interval for the estimate of the mean can be calculated as ( xbar - t* sbar , xbar + t* sbar) The return values from this procedure can be compared to an estimated t-statistic to determine whether the estimated value of a parameter is significantly different from zero at the given confidence level. ::mvlinreg::wls wt1 {y1 x11 x12 ... x1N} wt2 {y2 x21 x22 ... x2N} ... Carries out a weighted least squares linear regression for the data points provided, with weights assigned to each point. The linear model is of the form y = b0 + b1 * x1 + b2 * x2 ... + bN * xN + error and each point satisfies yi = b0 + b1 * xi1 + b2 * xi2 + ... + bN * xiN + Residual_i The procedure returns a list with the following elements: * The r-squared statistic * The adjusted r-squared statistic * A list containing the estimated coefficients b1, ... bN, b0 (The constant b0 comes last in the list.) * A list containing the standard errors of the coefficients * A list containing the 95% confidence bounds of the coefficients, with each set of bounds returned as a list with two values ::mvlinreg::ols {y1 x11 x12 ... x1N} {y2 x21 x22 ... x2N} ... Carries out an ordinary least squares linear regression for the data points provided. This procedure simply calls ::mvlinreg::wls with the weights set to 1.0, and returns the same information. EXAMPLE ------- # Store the value of the unicode value for the "+/-" character set pm "\u00B1" # Provide some data set data {{-.67 14.18 60.03 -7.5} \ {36.97 15.52 34.24 14.61} \ {-29.57 21.85 83.36 -7.} \ {-16.9 11.79 51.67 -6.56} \ {14.09 16.24 36.97 -12.84} \ {31.52 20.93 45.99 -25.4} \ {24.05 20.69 50.27 17.27} \ {22.23 16.91 45.07 -4.3} \ {40.79 20.49 38.92 -.73} \ {-10.35 17.24 58.77 18.78}} # Call the ols routine set results [eval mvlinreg::ols $data] # Pretty-print the results puts "R-squared: [lindex $results 0]" puts "Adj R-squared: [lindex $results 1]" puts "Coefficients $pm s.e. -- \[95% confidence interval\]:" foreach val [lindex $results 2] se [lindex $results 3] bounds [lindex $results 4] { set lb [lindex $bounds 0] set ub [lindex $bounds 1] puts " $val $pm $se -- \[$lb to $ub\]" } SEE ALSO -------- ::math::statistics