使用数学符号重写 GLM 函数

Re-write a GLM function using mathematical notation

我在 R 中使用以下 glm 函数:

glm(Delta ~ factor * proportion + N * proportion + N * factor, family = "gaussian", data = df)

其中Delta和proportion是从-1到1的连续变量 并且因子是具有 5 个级别的分类,N 是具有 2 个级别的分类

我将如何使用数学符号以等式格式重写此函数

通常我会说这是一个 math/stats 问题,而不是编程问题,但 R 确实知道如何回答这个问题(下面的代码)

虽然这在数学上是正确的,但它是一种稍微笨拙的定义方式 — f2f3f4f5虚拟变量 (即 f2=1 如果特定观察具有 f == 级别 2);其他人可能会把前几个词写成 alpha + gamma[f[i]]

请注意,我用 lm() 完成了此操作,相当于 glmfamily=gaussian


library(equatiomatic)
library(tinytex)

dd <- data.frame(Delta = rnorm(100), prop = runif(100), N = factor(1:2), f = factor(1:5))
m1 <- lm(Delta ~ f*prop + N*prop + N*f, dd)

eq <- extract_eq(m1, wrap = TRUE)
writeLines(con = "SO71692903.tex",
           text = c("\documentclass{article}",
                    "\usepackage{amsmath}",
                    "\begin{document}",
                    "$$",
                    eq,
                    "$$",
                    "\end{document}"))
latexmk("SO71692903.tex")
browseURL("SO71692903.pdf")