gpt4 book ai didi

r - 将R公式格式转换为数学方程式

转载 作者:行者123 更新时间:2023-12-04 08:44:35 24 4
gpt4 key购买 nike

当我们在R中拟合统计模型时,说

lm(y ~ x, data=dat)

我们使用R的特殊公式语法:“y〜x”

是否有某种东西可以从这样的公式转换为相应的方程式?在这种情况下,它可以写为:
y = B0 + B1*x

这将非常有用!其一,因为使用更复杂的公式,我不相信我的翻译。其次,在用R/Sweave/knitr编写的科学论文中,有时应以方程式形式报告模型,并且对于完全可重复的研究,我们希望以自动化方式进行。

最佳答案

刚玩了一下就可以了:

# define a function to take a linear regression
# (anything that supports coef() and terms() should work)
expr.from.lm <- function (fit) {
# the terms we're interested in
con <- names(coef(fit))
# current expression (built from the inside out)
expr <- quote(epsilon)
# prepend expressions, working from the last symbol backwards
for (i in length(con):1) {
if (con[[i]] == '(Intercept)')
expr <- bquote(beta[.(i-1)] + .(expr))
else
expr <- bquote(beta[.(i-1)] * .(as.symbol(con[[i]])) + .(expr))
}
# add in response
expr <- bquote(.(terms(fit)[[2]]) == .(expr))
# convert to expression (for easy plotting)
as.expression(expr)
}

# generate and fit dummy data
df <- data.frame(iq=rnorm(10), sex=runif(10) < 0.5, weight=rnorm(10), height=rnorm(10))
f <- lm(iq ~ sex + weight + height, df)
# plot with our expression as the title
plot(resid(f), main=expr.from.lm(f))

似乎对于调用什么变量以及是否确实需要在其中使用系数有很大的自由度,但是对于开始来说似乎很好。

关于r - 将R公式格式转换为数学方程式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19340277/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com