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

i-optimal designs #337

Open
dlinzner opened this issue Jan 19, 2024 · 5 comments · May be fixed by #428
Open

i-optimal designs #337

dlinzner opened this issue Jan 19, 2024 · 5 comments · May be fixed by #428
Assignees

Comments

@dlinzner
Copy link

We have a use-case for i-optimal designs. A colleague (Kai Exner) is currently implementing it.

@KaiExner KaiExner self-assigned this Jan 19, 2024
@Osburg
Copy link
Collaborator

Osburg commented Jan 19, 2024

Hi @dlinzner-bcs @KaiExner,
This sounds nice :) i had a quick look into this when i was implementing the remaining criteria, and the i criterion seemed not so trivial to implement to me. Therefore i am interested in how you are planning to do this. If i understood correctly, the i criterion involves computing integrals over the design space. This is somewhat straightforward if we have no constraints or only linear constraints. But if nonlinear constraints are involved this means we have to integrate over possibly weirdly shaped hypersurfaces. @KaiExner just bc i am curious: how is this supposed to be done?
Cheers,
Aaron :)

@KaiExner
Copy link
Collaborator

Dear @Osburg , the I criterion can be calculated as tr( (Y'Y %*% inv(X'X/nX)) /nY) where X is the model matrix and Y is a space over which I is averaged. nX, nY are the number of rows in X and Y. This approached is used by the optFedrov algorithm in the AlgDesign package in R. optFederov uses Y as a candidate set for an exchange algorithm. In the simple case it is a rectangular grid, if constraints exist, the list is simply checked against the constraints.
Options for BoFire: take the analogous route, define Y as rectangular grid and eliminate points that do not meet the constraints or - as @dlinzner proposed - sample from the allowed design space.

@Osburg
Copy link
Collaborator

Osburg commented Jan 23, 2024

@KaiExner thanks for the explanation, this was helpful!

@dlinzner-bcs
Copy link
Contributor

@KaiExner I think this nice sampler by @Osburg is what you want: https://github.com/experimental-design/bofire/blob/main/bofire/strategies/universal_constraint.py it is to my understanding producing space-filling points within the (constrained) domain.

@KaiExner
Copy link
Collaborator

KaiExner commented Feb 9, 2024

Thanks @dlinzner-bcs - its on my list :)

@Osburg Osburg linked a pull request Aug 19, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
4 participants