建立函数给出线性回归方程

时间:2017-02-04 04:45:54

标签: r function regression linear-regression

所以在TA的帮助下,我们能够构建这个功能:

lm_eqn <- function(model){
mod_frame <- broom::tidy(model)
eqn_string <- sprintf("The response is equal to %.2f ", mod_frame$estimate[1])
    model_terms <- function(i){
        if(i == 1){return(",")}
      paste(sprintf("+ %.2f %s", mod_frame$estimate[i], mod_frame$term[i]), model_terms(i-1))
  }
  r2 <- format(summary(model)$r.squared, digits = 3)
  print(paste(eqn_string, model_terms(nrow(mod_frame)), "R2 =", r2))
}

问题在于它使用预测变量吐出回归方程,它们的类别与它们在任何模型中列出的方式以及类别如何在

中的顺序相反。

例如,

lmod <- lm(uptake ~ Plant + Treatment + conc, data = CO2)
lm_eqn(lmod)
  

&#34;响应等于19.50 + 0.02浓度+ 1.91植物^ 11 + 0.55植物^ 10 + -9.07植物^ 9 + -3.28植物^ 8 + -2.04植物^ 7 + -0.04植物^ 6 + 4.31植物^ 5 + 2.34植物^ 4 + 4.67 Plant.C + -4.62 Plant.Q + -22.94 Plant.L,R2 = 0.736&#34;

注意它是如何从截距后的conc开始的,也是用植物11而不是plant.C(这是第一顺序)

此外,有没有办法为R2添加上标?

0 个答案:

没有答案