glm;原始目标的日志链接与已记录目标的身份链接

问题描述 投票:1回答:1

也许这是一个非常基本的问题,但是为什么结果不同? FACE是一些数值,而logFACE是log(FACE)。我很困惑,为什么系数会有所不同,甚至其中某些方向也是如此。

f1 <- as.formula(paste("FACE ~", paste(col.selection, collapse = "+")))
glm1 <-  glm(formula = f1, data = df.train, family = gaussian(link = "log"))
par(mfrow=c(2,2))
plot(glm1)


f2 <- as.formula(paste("logFACE ~", paste(col.selection, collapse = "+")))
glm2 <- glm(formula = f2, data = df.train, family = gaussian(link = "identity"))
par(mfrow=c(2,2))
plot(glm2)

summary(glm1)
summary(glm2)

glm1的图glm1

glm2的图glm2

> coefficients(glm1)
(Intercept)      GENDER         AGE     MARSTAT   EDUCATION       NUMHH   logINCOME  logCHARITY     AGEdiff 
 5.71033133  2.28651820  0.01928597 -1.07200187  0.05477547 -0.05567484 -0.13955743  0.77219423 -0.26585280 
> coefficients(glm2)
(Intercept)      GENDER         AGE     MARSTAT   EDUCATION       NUMHH   logINCOME  logCHARITY     AGEdiff 
 3.95245904  0.87686820 -0.01206955  0.02667678  0.18357079  0.24466946  0.35963195  0.11596153 -0.05240633 

r glm
1个回答
1
投票

当您通过对数转换响应值时,预测值在对数中,因此将以该比例进行残差计算,拟合等。例如,我们在mtcars中针对am回归log(mpg):

fit = glm(log(mpg) ~ am, data=mtcars,family=gaussian())
summary(fit$fitted.values)
Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  2.817   2.817   2.817   2.958   3.163   3.163 

对于与日志链接的GLM高斯,响应值mpg预期为exp(a * am + b):

fit = glm(mpg ~ am, data=mtcars,family=gaussian(link="log"))
summary(fit$fitted.values)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  17.15   17.15   17.15   20.09   24.39   24.39

因此您的回答不会进行对数转换,因此残差和拟合在此比例下完成。

系数不同。.>

© www.soinside.com 2019 - 2024. All rights reserved.