1

私はMLRの関数を書いています。しかし、出力に問題があるようです(最後の例を参照)。複数の線形回帰:ユーザ定義関数のエラー

しかし、コードを1行ずつ実行すると、出力は正しいです。

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) 

} 

私は私が$

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

答えて

1

次を使用して取り除く場合でも、同じ問題を取得し

mlr(trees$Height, trees) 

を試し、問題を表示するには:

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

で渡すを文字列として返します。

例:

mlr("Height", trees) 
関連する問題