Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error running example usage #3

Open
luispfonseca opened this issue Feb 11, 2020 · 1 comment
Open

Error running example usage #3

luispfonseca opened this issue Feb 11, 2020 · 1 comment
Labels

Comments

@luispfonseca
Copy link

Thank you for making the code available.

I was trying to experiment with the package by running the examples provided but unfortunately I am finding an error just by running the first lines in the readme file. I attach a reproducible example.

library(optrdd)

sessionInfo()
#> R version 3.6.2 (2019-12-12)
#> Platform: x86_64-w64-mingw32/x64 (64-bit)
#> Running under: Windows 10 x64 (build 17134)
#> 
#> Matrix products: default
#> 
#> locale:
#> [1] LC_COLLATE=English_United Kingdom.1252 
#> [2] LC_CTYPE=English_United Kingdom.1252   
#> [3] LC_MONETARY=English_United Kingdom.1252
#> [4] LC_NUMERIC=C                           
#> [5] LC_TIME=English_United Kingdom.1252    
#> 
#> attached base packages:
#> [1] stats     graphics  grDevices utils     datasets  methods   base     
#> 
#> other attached packages:
#> [1] optrdd_1.0.2
#> 
#> loaded via a namespace (and not attached):
#>  [1] compiler_3.6.2  magrittr_1.5    tools_3.6.2     htmltools_0.4.0
#>  [5] yaml_2.2.1      Rcpp_1.0.3      stringi_1.4.5   rmarkdown_2.1  
#>  [9] highr_0.8       knitr_1.28      stringr_1.4.0   xfun_0.12      
#> [13] digest_0.6.23   rlang_0.4.4     evaluate_0.14

# Simple regression discontinuity with discrete X
n = 4000; threshold = 0
X = sample(seq(-4, 4, by = 8/41.5), n, replace = TRUE)
W = as.numeric(X >= threshold)
Y = 0.4 * W + 1 / (1 + exp(2 * X)) + 0.2 * rnorm(n)
# using 0.4 for max.second.derivative would have been enough
out.1 = optrdd(X=X, Y=Y, W=W, max.second.derivative = 0.5, estimation.point = threshold)
#> [1] "Running CVXR/ECOS with problem of size: 4042 x 147..."
#> Error in as.vector(data): no method for coercing this S4 class to a vector
print(out.1); plot(out.1, xlim = c(-1.5, 1.5))
#> Error in print(out.1): object 'out.1' not found
#> Error in plot(out.1, xlim = c(-1.5, 1.5)): object 'out.1' not found

Created on 2020-02-11 by the reprex package (v0.3.0)

@swager swager added the bug label Feb 11, 2020
@swager
Copy link
Owner

swager commented Feb 11, 2020

It looks like this works with the quadprog optimizer, but not with ECOS as implemented via CVXR. I wonder if there's been an API change in CVXR that leads to the issue...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants