回归响应值为参数

Regression response value is a parameter

我正在尝试创建一个具有特定响应值和数据集的 lm 函数

OLSRegression <- function(dataset, response){
  OLS <- lm(dataset[[response]] ~ . , dataset)
}

但是当我输出 OLS 时,响应值也包含在参数中。

Call:
lm(formula = (dataset[["quality"]]) ~ ., data = dataset)

Coefficients:
         (Intercept)         fixed.acidity      volatile.acidity  
          -1.078e-12            -4.778e-16             1.329e-14  
         citric.acid        residual.sugar             chlorides  
          -1.521e-16            -5.837e-16             1.492e-15  
 free.sulfur.dioxide  total.sulfur.dioxide               density  
          -2.610e-17             1.668e-18             1.079e-12  
                  pH             sulphates               alcohol  
          -4.893e-15            -4.460e-15            -1.374e-15  
             quality  
           1.000e+00  

有没有什么办法可以避免不包括响应(质量)参数?

如果您构建公式,R 将知道排除响应变量。

frm <- as.formula(paste(response, "~ ."))
lm(frm, data = dataset)

示例:

> lm(mpg ~ ., data = mtcars)

Call:
lm(formula = mpg ~ ., data = mtcars)

Coefficients:
(Intercept)          cyl         disp           hp         drat           wt  
   12.30337     -0.11144      0.01334     -0.02148      0.78711     -3.71530  
       qsec           vs           am         gear         carb  
    0.82104      0.31776      2.52023      0.65541     -0.19942