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