我尝试与变量本身(例如,wt_ cyl * cyl)进行交互以估计二次模型(例如,wt_ cyl + cyl ^ 2),以便使用后估计工具进行交互。但是,结果会自动忽略交互项。有没有办法在R中指定二次模型?我以为我之前做过但不是在R 3.4.1或3.4.2中。以下是玩具代码,包括我的会话信息。感谢任何评论和帮助!
summary(lm(wt ~ cyl * cyl, data = mtcars))
#>
#> Call:
#> lm(formula = wt ~ cyl * cyl, data = mtcars)
#>
#> Residuals:
#> Min 1Q Median 3Q Max
#> -0.8243 -0.4293 -0.1518 0.3031 1.4297
#>
#> Coefficients:
#> Estimate Std. Error t value Pr(>|t|)
#> (Intercept) 0.56462 0.40062 1.409 0.169
#> cyl 0.42871 0.06228 6.883 1.22e-07 ***
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> Residual standard error: 0.6193 on 30 degrees of freedom
#> Multiple R-squared: 0.6123, Adjusted R-squared: 0.5994
#> F-statistic: 47.38 on 1 and 30 DF, p-value: 1.218e-07
devtools::session_info()
#> Session info -------------------------------------------------------------
#> setting value
#> version R version 3.4.2 (2017-09-28)
#> system x86_64, mingw32
#> ui RTerm
#> language (EN)
#> collate English_United States.1252
#> tz America/Chicago
#> date 2017-10-04
#> Packages -----------------------------------------------------------------
#> package * version date source
#> backports 1.1.1 2017-09-25 CRAN (R 3.4.1)
#> base * 3.4.2 2017-09-28 local
#> compiler 3.4.2 2017-09-28 local
#> datasets * 3.4.2 2017-09-28 local
#> devtools 1.13.3 2017-08-02 CRAN (R 3.5.0)
#> digest 0.6.12 2017-01-27 CRAN (R 3.3.2)
#> evaluate 0.10.1 2017-06-24 CRAN (R 3.4.0)
#> formatR 1.5 2017-04-25 CRAN (R 3.5.0)
#> graphics * 3.4.2 2017-09-28 local
#> grDevices * 3.4.2 2017-09-28 local
#> htmltools 0.3.6 2017-04-28 CRAN (R 3.4.0)
#> knitr 1.17 2017-08-10 CRAN (R 3.5.0)
#> magrittr 1.5 2014-11-22 CRAN (R 3.3.2)
#> memoise 1.1.0 2017-04-21 CRAN (R 3.4.0)
#> methods * 3.4.2 2017-09-28 local
#> Rcpp 0.12.13 2017-09-28 CRAN (R 3.4.2)
#> rmarkdown 1.6.0.9001 2017-07-03 Github (rstudio/rmarkdown@8cfe0cb)
#> rprojroot 1.2 2017-01-16 CRAN (R 3.3.2)
#> stats * 3.4.2 2017-09-28 local
#> stringi 1.1.5 2017-04-07 CRAN (R 3.4.1)
#> stringr 1.2.0 2017-02-18 CRAN (R 3.3.2)
#> tools 3.4.2 2017-09-28 local
#> utils * 3.4.2 2017-09-28 local
#> withr 2.0.0 2017-10-03 Github (r-lib/withr@d1f0957)
#> yaml 2.1.14 2016-11-12 CRAN (R 3.3.2)
答案 0 :(得分:1)
这应该从未在R中进行二次项。公式中的*
用于变量交互(并且变量不应与自身交互)。如果你想要二次项,请使用
summary(lm(wt ~ poly(cyl, 2, raw=TRUE), data = mtcars))
或
summary(lm(wt ~ cyl + I(cyl^2), data = mtcars))