I am running Austin Nichols' rd command, version 2.8, under Stata 14.1. I am getting 2 red-letter errors.
One says "A predicted value of treatment at cutoff lies outside feasible range."
The other says "Warning: variance matrix is nonsymmetric or highly singular."
In addition, the program is creating 33 rows of missing values in my data.
My example is fairly straightforward. The Treatment variable is 0/1. The forcing variable, called bind, is continuous and ranges roughly from -1 to 2. The discontinuity is at bind=0, and it's fuzzy. For bind<0, no cases are treated, and for bind>0, 16 out of 20 cases are treated. I have 133 cases total.
My initial guess as to what is causing the problem was the small number of cases (20) to the right of bind=0. I got this idea when I read in the help file that "The default is to calculate the regressions at 50 points above the cutoff," and in Nichols' Stata Journal article I also read "the default bandwidth is selected to include at least 30 observations in estimates at both sides of the boundary." Neither of these is compatible with my having 20 points above the cutoff.
Diagnostically I added the option "bwidth(1)" which made the first error go away ("predicted value of treatment at cutoff lies outside feasible range"). Then I increased the size of the dataset tenfold (with "expand 10") which made the second error go away ("variance matrix is nonsymeetric or highly singular"), and also stopped the creation of missing values. These are just diagnostic steps, though, and don't really solve the problem in the sense of producing trustworthy estimates.
What should I do? An example command and output is below.
------------------------------------------------------------------------------------------
. rd Mean Treatment bind, mbw(100) graph
<snip>
(33 missing values generated)
(33 missing values generated)
(33 missing values generated)
Estimating for bandwidth 1.161709909663448
A predicted value of treatment at cutoff lies outside feasible range;
switching to local mean smoothing for treatment discontinuity.
Warning: variance matrix is nonsymmetric or highly singular
using -ivreg- to estimate due to failure of -suest-
------------------------------------------------------------------------------
Mean | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
numer | .1961641 .2387415 0.82 0.411 -.2717606 .6640888
denom | .6900054 .1694953 4.07 0.000 .3578007 1.02221
lwald | .2842935 .3439082 0.83 0.408 -.3897541 .9583411
------------------------------------------------------------------------------
One says "A predicted value of treatment at cutoff lies outside feasible range."
The other says "Warning: variance matrix is nonsymmetric or highly singular."
In addition, the program is creating 33 rows of missing values in my data.
My example is fairly straightforward. The Treatment variable is 0/1. The forcing variable, called bind, is continuous and ranges roughly from -1 to 2. The discontinuity is at bind=0, and it's fuzzy. For bind<0, no cases are treated, and for bind>0, 16 out of 20 cases are treated. I have 133 cases total.
My initial guess as to what is causing the problem was the small number of cases (20) to the right of bind=0. I got this idea when I read in the help file that "The default is to calculate the regressions at 50 points above the cutoff," and in Nichols' Stata Journal article I also read "the default bandwidth is selected to include at least 30 observations in estimates at both sides of the boundary." Neither of these is compatible with my having 20 points above the cutoff.
Diagnostically I added the option "bwidth(1)" which made the first error go away ("predicted value of treatment at cutoff lies outside feasible range"). Then I increased the size of the dataset tenfold (with "expand 10") which made the second error go away ("variance matrix is nonsymeetric or highly singular"), and also stopped the creation of missing values. These are just diagnostic steps, though, and don't really solve the problem in the sense of producing trustworthy estimates.
What should I do? An example command and output is below.
------------------------------------------------------------------------------------------
. rd Mean Treatment bind, mbw(100) graph
<snip>
(33 missing values generated)
(33 missing values generated)
(33 missing values generated)
Estimating for bandwidth 1.161709909663448
A predicted value of treatment at cutoff lies outside feasible range;
switching to local mean smoothing for treatment discontinuity.
Warning: variance matrix is nonsymmetric or highly singular
using -ivreg- to estimate due to failure of -suest-
------------------------------------------------------------------------------
Mean | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
numer | .1961641 .2387415 0.82 0.411 -.2717606 .6640888
denom | .6900054 .1694953 4.07 0.000 .3578007 1.02221
lwald | .2842935 .3439082 0.83 0.408 -.3897541 .9583411
------------------------------------------------------------------------------