my_lm: Custom Linear Regression Estimation

View source: R/my_lm.R

my_lmR Documentation

Custom Linear Regression Estimation

Description

Provides a custom implementation of R's stats::lm() linear regression function that uses the S3 system.

Usage

my_lm(x, ...)

## Default S3 method:
my_lm(x, ...)

## S3 method for class 'formula'
my_lm(formula, data = list(), ...)

## S3 method for class 'matrix'
my_lm(x, y, ...)

Arguments

x

Either a design matrix with dimensions n \times p or formula with the data parameter specified

...

Not used.

formula

An object of class formula() which provides a symbolic description of the model to be fitted.

data

An optional data frame, list or environment.

y

A vector of responses with dimensions n \times 1.

Details

Given a response vector y with dimensions n \times 1, a design matrix X with dimensions n \times p, a vector of parameters \beta with dimensions p \times 1, and an error vector \epsilon with dimensions n \times 1 from \epsilon \sim N\left( {0,{\sigma ^2}} \right), the standard linear regression model can be stated as:

y = {X'}\beta + \epsilon

The least ordinary squares (OLS) solutions are then:

\hat \beta = {\left( {{X'}X} \right)^{ - 1}}{X'}y

cov\left( {\hat \beta } \right) = {\sigma ^2}{\left( {{X^T}X} \right)^{ - 1}}

Value

An object of class my_lm that contains:

  • coefficients: Estimated parameter values of \hat{\beta} with dimensions p \times 1

  • cov_mat: Covariance matrix of estimated parameter values with dimensions p \times p.

  • sigma: Standard deviation of residuals

  • df: Degrees of Freedom given by df = N - p

  • fitted.values: Fitted Values given by \hat{y} = X\hat{\beta}

  • residuals: Residuals given by e = y - \hat{y}

  • call: Information on how the my_lm() function was called.

See Also

summary.my_lm(), print.my_lm()

Examples

## Matrix interface

# Create a design matrix
x = cbind(1, mtcars$disp)

# Extract response
y = mtcars$mpg

# Calculate outcome
my_model = my_lm(x, y)

## Formula interface

# Calculate 
my_model = my_lm(mpg ~ disp, data = mtcars)


r-pkg-examples/r-s3-lm documentation built on Oct. 28, 2024, 12:20 a.m.