grf icon indicating copy to clipboard operation
grf copied to clipboard

The IV and Estimation of coefficient of instrumental variable forest

Open minhengw opened this issue 2 years ago • 4 comments

Description of my question I used 'instrumental_forest' function to estimate the average conditional local treatment effect of my study. The IV used in my study is a continuous variable, however, the function can only accept binary IV. Hence, I binarize my IV and run the 'instrumental_forest' (from package 'grf') and 'tsls_forest' (from package grftsls) respectively.

Now, the code can be run smoothly. But I have no idea where to get the coefficients of my model? When I run causal forest or causal trees (without IV), I can use the function 'average_treatment_effect' to get what I want. **If I just apply 'average_treatment_effect' function on the IV forest object created, the estimated coefficient and S.E. are both 'NaN', and the warning message provided below:

In get_scores.instrumental_forest(forest, subset = subset, debiasing.weights = debiasing.weights, : Estimated instrument propensities take values between 0.007 and 1 and in particular get very close to 0 or 1. Poor overlap may hurt perfmance for average conditional local average treatment effect estimation.**

How could I get average conditional local treatment effect that I need?

p.s.I can use 'get_scores' function to get doubly robust scores, but should I do next? using mean( ) function to get the coefficient?

In addition, can tsls_forest() support non-binary IV? (I know 'instrumental_forest' cannot accept it.)

Thank you very much!

GRF version I have updated version of package 'grf' to the newest one.

minhengw avatar May 08 '22 09:05 minhengw

High @minhengw, you could try and plot a histogram of the instrument propensities (forest$Z.hat) and see if there's a region where they are far from 0 or 1 then pass this as a subset to average_treatment_effect. Crump et al. is a reference: https://academic.oup.com/biomet/article-abstract/96/1/187/235329

erikcs avatar May 12 '22 23:05 erikcs

Thanks! Dr. Erik. I will read the paper soon and try to use the subset to obtain the estimand I need : )

minhengw avatar May 13 '22 02:05 minhengw

High @minhengw, you could try and plot a histogram of the instrument propensities (forest$Z.hat) and see if there's a region where they are far from 0 or 1 then pass this as a subset to average_treatment_effect. Crump et al. is a reference: https://academic.oup.com/biomet/article-abstract/96/1/187/235329

Many thanks! I have an additional question: will package "grf" support non-binary Instrumental Variable in the future?

Warm regards, David

minhengw avatar May 13 '22 02:05 minhengw

High @minhengw, you could try and plot a histogram of the instrument propensities (forest$Z.hat) and see if there's a region where they are far from 0 or 1 then pass this as a subset to average_treatment_effect. Crump et al. is a reference: https://academic.oup.com/biomet/article-abstract/96/1/187/235329

Many thanks! I have an additional question: will package "grf" support non-binary Instrumental Variable in the future?

Warm regards, David

Hi, no sorry, there are no plans for this! (https://github.com/grf-labs/grf/issues/756)

erikcs avatar May 13 '22 02:05 erikcs