Dear sirs, One gets unexpected `residuals` if one is not aware of the meaning of weights when a weight is set to zero and the outcome is one in the `binomial` family in a call to `glm.fit`. The reason is the following line from `binomial()$initialize` > y[weights == 0] <- 0
Here is an example: pval <- seq(.05, .95, length.out = 25) X <- log(pval / (1 - pval)) - 2 Y <- c( FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, TRUE) W <- rep(1, length(Y)) W[length(W)] <- 0 fit <- glm(Y ~ X, binomial(), weights = W) fit$residuals[25] #R 25 #R -45.77847 # Maybe it should be the following. Otherwise maybe there should be a # warning in `binomial()$initialize` when `y`s are set to zero? with( fit, tail((Y - fitted.values) / binomial()$mu.eta(linear.predictors), 1)) #R 25 #R 1.022332 sessionInfo() #R R version 3.5.1 (2018-07-02) #R Platform: x86_64-w64-mingw32/x64 (64-bit) #R Running under: Windows >= 8 x64 (build 9200) #R #R Matrix products: default #R #R locale: #R [1] LC_COLLATE=English_United States.1252 #R [2] LC_CTYPE=English_United States.1252 #R [3] LC_MONETARY=English_United States.1252 #R [4] LC_NUMERIC=C #R [5] LC_TIME=English_United States.1252 #R #R attached base packages: #R [1] stats graphics grDevices utils datasets methods #R [7] base #R #R loaded via a namespace (and not attached): #R [1] compiler_3.5.1 tools_3.5.1 yaml_2.1.18 Sincerely yours, Benjamin Christoffersen ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel