在 GAM 中记录转换后的数据,如何绘制响应?

Log transformed data in GAM, how to plot response?

我在我的广义加性模型(使用 mgcv)中使用了对数转换数据(依赖变量=计数),并尝试使用“trans=plogis”来绘制响应,就像逻辑 GAM 一样,但结果似乎并不如此正确的。我在这里忘记了什么吗?当我首先对数据使用线性模型时,我绘制了最小二乘均值。知道如何以比对数刻度更易于解释的方式绘制 GAM 的输出吗?

干杯

你是运行计数数据的逻辑回归吗?逻辑回归通常是二元变量或二元结果的一部分。

话虽如此,这里真正的问题是您想要将适合对数比例的变量反向转换回原始比例以进行绘图。这可以使用 itsadug 包轻松完成。我在这里模拟了一些愚蠢的数据只是为了显示所需的代码。

借助 itsadug,您可以直观地检查 GAM 模型的许多方面。我鼓励你看看这个:https://cran.r-project.org/web/packages/itsadug/vignettes/inspect.html

plot_smooth() 的转换参数也可以与用 R 编写的自定义函数一起使用。如果您同时对因变量进行居中和记录,这会很有用。

library(mgcv)
library(itsadug)

# Setting seed so it's reproducible
set.seed(123)

# Generating 50 samples from a uniform distribution
x <- runif(50, min = 20, max = 50)

# Taking the sin of x to create a dependent variable
y <- sin(x) 

# Binding them to a dataframe
d <- data.frame(x, y)

# Logging the dependent variable after adding a constant to prevent negative values
d$log_y <- log(d$y + 1)

# Fitting a GAM to the transformed dependent variable
model_fit <- gam(log_y ~ s(x),
                 data = d)

# Using the plot_smooth function from itsadug to backtransform to original y scale
plot_smooth(model_fit,
            view = "x",
            transform = exp)