[英]Why is the outcome variable appearing as a coefficient in the summary table of the linear regression?
我正在使用食譜進行線性回歸,以根據職等(副教授,助理教授和正教授),性別,學科(應用或理論的),服務年限以及博士學位以來的年限預測薪水。 該數據集在汽車包裝中。
我創建了虛擬變量,並將因果變量轉換為更正常的形狀。 我已經將服務年限和博士以來的年限標准化為0到1之間的值。
salary.split <- initial_split(salary.df)
sal.train <- training(salary.split)
sal.test <- testing(salary.split)
sal.recipe <- recipe(salary ~ ., data = salary.df) %>%
step_log(salary) %>%
step_dummy(all_nominal()) %>%
step_range(yrs.since.phd) %>%
step_range(yrs.service)
sal.rec <- prep(sal.recipe, training = sal.train) %>% bake(new_data = sal.train)
sal.lm <- lm(sal.rec)
summary(sal.lm)
結果匯總:
Call:
lm(formula = sal.rec)
Residuals:
Min 1Q Median 3Q Max
-0.17727 -0.05780 -0.01406 0.04221 0.34499
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.3052564 0.3240025 -0.942 0.34690
yrs.service 0.8054404 0.0292577 27.529 < 2e-16 ***
salary 0.0375859 0.0285323 1.317 0.18877
rank_AsstProf -0.0528260 0.0184926 -2.857 0.00459 **
rank_Prof 0.0740925 0.0174977 4.234 3.08e-05 ***
discipline_B -0.0438070 0.0107863 -4.061 6.28e-05 ***
sex_Male 0.0006626 0.0165779 0.040 0.96815
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.08639 on 291 degrees of freedom
Multiple R-squared: 0.8656, Adjusted R-squared: 0.8628
F-statistic: 312.2 on 6 and 291 DF, p-value: < 2.2e-16
當我查看變量信息( sal.recipe$var_info
)時:
# A tibble: 6 x 4
variable type role source
<chr> <chr> <chr> <chr>
1 rank nominal predictor original
2 discipline nominal predictor original
3 yrs.since.phd numeric predictor original
4 yrs.service numeric predictor original
5 sex nominal predictor original
6 salary numeric outcome original
這表明薪水是結果,而不是預測因素。 當我查看線性模型的摘要信息時,工資為什么會顯示為系數?
在這種情況下,sal.recipe不是模型對象(就像我想的那樣),而僅僅是一個數據框。 配方用於將轉換應用於數據,並且不會自動構造公式。 在這種情況下,將sal.recipe傳遞給lm只是傳遞一個數據幀,這就是造成混亂的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.