This is a user-defined function for MLR.

Right way to use the function:

mlr(“y”, dataset)

“y” is the dependent variable dataset is the dataset containing y variable

mlr <- function(dependentvar, dataset) {
  
x <- model.matrix(reformulate(".", dependentvar), dataset) # design matrix for x
  
y <- dataset[[dependentvar]] # dependent variable
  
betas <- solve(crossprod(x))%*%crossprod(x,y) # beta values
  
SST <- t(y)%*%y - (sum(y)^2/dim(dataset)[1]) # total sum of squares
               
SSres <- t(y)%*%y -(t(betas)%*%crossprod(x,y))  # sum of squares of residuals
               
SSreg <- SST - SSres  # regression sum of squares

sigmasqr <- SSres/(length(y) - dim(dataset)[2])  # variance or (MSE)
               
varofbeta <- sigmasqr[1]*solve( crossprod(x)) # variance of beta
              
cat("SST:", SST,"SSresiduals:", SSres,"SSregression:", SSreg, sep = "\n", append = FALSE)
               
return(varofbeta)

}

Example:

Let’s run mlr() on mtcars data.

Here “mpg” is the dependent variable and mtcars is the dataset.

mlr("mpg", mtcars)
## SST:
## 1126.047
## SSresiduals:
## 147.4944
## SSregression:
## 978.5528
##               (Intercept)           cyl          disp            hp
## (Intercept) 350.359197485 -13.163824437 -0.0059101820 -0.0266100189
## cyl         -13.163824437   1.092073828 -0.0049669381 -0.0041817837
## disp         -0.005910182  -0.004966938  0.0003188903 -0.0002040364
## hp           -0.026610019  -0.004181784 -0.0002040364  0.0004738710
## drat        -12.941827906   0.471219880 -0.0033844018  0.0030952720
## wt            3.156000750   0.223389955 -0.0260263658  0.0099145334
## qsec        -10.546511742   0.209717934  0.0037258628  0.0017246613
## vs            3.646214479   0.705445371  0.0037642313 -0.0124741630
## am           -8.884592202   0.560547803  0.0009902057 -0.0021256566
## gear        -11.357908146   0.550163881 -0.0020944047 -0.0029077679
## carb          1.816658277  -0.197598561  0.0099823154 -0.0095004566
##                      drat           wt          qsec           vs
## (Intercept) -12.941827906  3.156000750 -10.546511742  3.646214479
## cyl           0.471219880  0.223389955   0.209717934  0.705445371
## disp         -0.003384402 -0.026026366   0.003725863  0.003764231
## hp            0.003095272  0.009914533   0.001724661 -0.012474163
## drat          2.674445074  0.521759369   0.043438912 -0.102380147
## wt            0.521759369  3.588805538  -0.702017025  0.338026038
## qsec          0.043438912 -0.702017025   0.534134116 -0.561690758
## vs           -0.102380147  0.338026038  -0.561690758  4.428956471
## am           -0.526044578  0.367557002   0.411749069  0.907770676
## gear         -0.182954006  0.513001888   0.088349774 -0.136900866
## carb         -0.279700251 -1.091239681   0.162717079  0.161673763
##                        am          gear         carb
## (Intercept) -8.8845922018 -11.357908146  1.816658277
## cyl          0.5605478034   0.550163881 -0.197598561
## disp         0.0009902057  -0.002094405  0.009982315
## hp          -0.0021256566  -0.002907768 -0.009500457
## drat        -0.5260445782  -0.182954006 -0.279700251
## wt           0.3675570022   0.513001888 -1.091239681
## qsec         0.4117490693   0.088349774  0.162717079
## vs           0.9077706764  -0.136900866  0.161673763
## am           4.2298114991  -0.963562383  0.105741063
## gear        -0.9635623832   2.229825311 -0.525153782
## carb         0.1057410631  -0.525153782  0.686830702