# ols

Syntax

ols(Y, X, [intercept=true], [mode=0])

Arguments

Y is the dependent variable; X is the independent variable(s).

Y is a vector; X is a matrix/table/tuple. When X is a matrix, if the number of rows equals the length of Y, each column of X is a factor; if the number of rows is not the same as the length of Y, and if the number of columns equals the length of Y, each row of X is a factor.

intercept is a Boolean variable indicating whether the regression includes the intercept. If it is true, the system automatically adds a column of 1’s to X to generate the intercept. The default value is true.

mode is an integer and could be 0, 1 or 2. It indicates the contents in the output. The default value is 0.

• 0: a vector of the coefficient estimates.

• 1: a table with coefficient estimates, standard error, t-statistics, and p-values.

• 2: a dictionary with the following keys: ANOVA, RegressionStat, Coefficient and Residual

ANOVA (one-way analysis of variance)

Source of Variance

DF (degree of freedom)

SS (sum of square)

MS (mean of square)

F (F-score)

Significance

Regression

p

sum of squares regression, SSR

regression mean square, MSR=SSR/R

MSR/MSE

p-value

Residual

n-p-1

sum of squares error, SSE

mean square error, MSE=MSE/E

Total

n-1

sum of squares total, SST

RegressionStat (Regression statistics)

Item

Description

R2

R-squared

The adjusted R-squared corrected based on the degrees of freedom by comparing the sample size to the number of terms in the regression model.

StdError

The residual standard error/deviation corrected based on the degrees of freedom.

Observations

The sample size.

Coefficient

Item

Description

factor

Independent variables

beta

Estimated regression coefficients

StdError

Standard error of the regression coefficients

tstat

t statistic, indicating the significance of the regression coefficients

Residual: the difference between each predicted value and the actual value.

Details

Return the result of an ordinary-least-squares regression of Y on X.

Examples

```\$ x1=1 3 5 7 11 16 23
\$ x2=2 8 11 34 56 54 100
\$ y=0.1 4.2 5.6 8.8 22.1 35.6 77.2;

\$ ols(y, x1);
[-9.912821,3.378632]

\$ ols(y, (x1,x2));
[-9.494813,2.806426,0.13147]
```
```\$ ols(y, (x1,x2), 1, 1);
```

factor

beta

stdError

tstat

pvalue

intercept

-9.494813

5.233168

-1.814353

0.143818

x1

2.806426

1.830782

1.532911

0.20007

x2

0.13147

0.409081

0.321379

0.764015

```\$ ols(y, (x1,x2), 1, 2);
ANOVA->
Breakdown  DF SS          MS          F         Significance
---------- -- ----------- ----------- --------- ------------
Regression 2  4204.416396 2102.208198 31.467739 0.003571
Residual   4  267.220747  66.805187
Total      6  4471.637143

RegressionStat->
item         statistics
------------ ----------
R2           0.940241
StdError     8.173444
Observations 7

Coefficient->
factor    beta      stdError tstat     pvalue
--------- --------- -------- --------- --------
intercept -9.494813 5.233168 -1.814353 0.143818
x1        2.806426  1.830782 1.532911  0.20007
x2        0.13147   0.409081 0.321379  0.764015
```
```\$ x=matrix(1 4 8 2 3, 1 4 2 3 8, 1 5 1 1 5);
\$ x;
```

#0

#1

#2

1

1

1

4

4

5

8

2

1

2

3

1

3

8

5

```\$ ols(1..5, x);
[1.156537,0.105505,0.91055,-0.697821]

\$ ols(1..5, x.transpose());
[1.156537,0.105505,0.91055,-0.697821]
// the system adjusts the dimensions of the dependent variable and the independent variables for the regression to go through.
```