也许这是一个非常基本的问题,但是为什么结果不同? 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)
> 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
答案 0 :(得分: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
因此,您的回答不会进行对数转换,因此残差和拟合在此范围内完成。
然后系数不同。