1

我已經寫了我的MLR函數。然而,這似乎與輸出有關(請參閱最後的示例)。多元線性迴歸:用戶定義函數中的錯誤

但是,當我運行代碼,逐行,輸出是正確的。

mlr <- function(dependentvar, dataset) { 

x <- model.matrix(dependentvar ~., dataset) # Design Matrix for x 

y <- 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(betas) 

} 

要看到問題,請嘗試

mlr(trees$Height, trees) 

我得到即使我擺脫$

Height <- trees$Height 
mlr(Height, trees) 

回答

1

使用下面的同樣的問題:

x <- model.matrix(reformulate(".", dependentvar), dataset) 
y <- dataset[[dependentvar]] 

並通過dependentvar作爲一個字符串。

實施例:

mlr("Height", trees)