glm;原始目标的日志 link 与记录目标的身份 link
glm; log link of the original target vs identity link of logged target
也许这是一个非常基本的问题,但为什么结果不同? 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 的情节
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
当您按对数转换响应值时,预测值以对数形式显示,因此残差计算、拟合等都是在该比例下完成的。例如,我们在 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 gaussian,响应值 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
所以你的回答没有进行对数转换,因此残差和拟合是在这个尺度上完成的。
那么系数就不同了..
也许这是一个非常基本的问题,但为什么结果不同? 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 的情节
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
当您按对数转换响应值时,预测值以对数形式显示,因此残差计算、拟合等都是在该比例下完成的。例如,我们在 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 gaussian,响应值 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
所以你的回答没有进行对数转换,因此残差和拟合是在这个尺度上完成的。
那么系数就不同了..