0

我有一个项目来估计给定分类和连续变量的商业房地产。我已经运行了一个逐步线性回归模型来在 RStudio 中挑选出一个好的公式。(Adj. Rsq = .90 也是,我知道我仍然需要进行 PCA 和某种类型的分类 ANOVA 测试,但我只想在更深入之前得到一个 beta 估计器。)

如何从我的 step(lm()) 函数中获取结果输出并使用系数创建基于字符的代数表达式/方程,例如:

  • 对数(价格)= M1X1 + M2X2 + ... + MnXn。

其中 M 是我的系数,X 是我的变量。我知道我可以在 excel 中手动完成,但是有这么多的交互和基本变量,它似乎过分了。也许R中有一个函数,或者我可以在python中创建一个函数来询问计算所需变量的值是什么;但我没有想到任何。

非常感谢!如果有什么不够具体,我会尽力进一步解释。

4

1 回答 1

0

据我所知,没有内置函数可以做到这一点(对于不同的模型类型,公式可能会变得非常混乱)。但是如果你有一个简单的线性模型,也许这个函数可以帮助

as_disp_eqn <- function(model, formatter=prettyNum, ...) {
    model_terms <- terms(model)
    model_response <- deparse(as.list(attr(model_terms, "variables")[-1])[[attr(model_terms, "response")]])
    coefs <- coef(model)
    rhs <- paste0(formatter(coefs, ...), ifelse(names(coefs)!="(Intercept)", paste(" *", names(coefs)),""))
    paste(model_response, "=", paste(rhs, collapse=" + "))
}

您可以传入模型并获得打印的显示。例如

mm <- lm(formula = Sepal.Length ~ Sepal.Width + Petal.Length + Species, data = iris)
as_disp_eqn(mm, digits=2)
# [1] "Sepal.Length = 2.4 + 0.43 * Sepal.Width + 0.78 * Petal.Length + -0.96 * Speciesversicolor + -1.4 * Speciesvirginica"
于 2017-03-31T16:46:34.057 回答