In get_scores.instrumental_forest, there is a test for weak instruments
if (abs(min(compliance.score)) <= 0.01 * sd(W.orig)) {
warning(paste0(
"The instrument appears to be weak, with some compliance scores as ",
"low as ", round(min(compliance.score), 4)
))
}
Should the condition be min(abs(compliance.score)) instead? Since debiasing.weights <- (Z.orig - Z.hat) / (Z.hat * (1 - Z.hat)) / compliance.score, it seems like there will be a large infusion of noise when the compliance score is close to zero (in absolute value).
In get_scores.instrumental_forest, there is a test for weak instruments
Should the condition be
min(abs(compliance.score))
instead? Sincedebiasing.weights <- (Z.orig - Z.hat) / (Z.hat * (1 - Z.hat)) / compliance.score
, it seems like there will be a large infusion of noise when the compliance score is close to zero (in absolute value).