Control Variates
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
Direzione di ricerca
Leggi prima l’implementazione esistente di posterior object e summarise_draws, quindi confrontala con le implementazioni citate di Python ControlVariates e R ZVCV. Definisci come vengono memorizzati i gradienti, come vengono esposte le misure riassuntive di control-variate e come la stima ricorre a un fallback quando i gradienti non sono disponibili; il lavoro è completato quando i nuovi riepiloghi funzionano con gradienti valorizzati e, altrimenti, preservano il comportamento esistente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
It would be really great if posterior had a capacity to have reduced the standard errors associated with the expectations it can produce (eg mean, var and sd). Recent work [1] has shown that, if we use the score function as a control variate, we can reduce such standard errors and do so in a way that is effective in the context of constrained variables (as often considered in applications of interest in the context of, for example, estimating volatility or a frequency).
Based on initial discussion, we think the approach to adopt is to augment posterior with the capacity to accept, alongside the samples, the gradient of the log posterior of mapped parameters with respect to those mapped parameters (these mapped parameters are unconstrained but are nonlinear functions of the constrained variables). The implementation then decomposes into three components:
* Storage: we will need to use protected variables (called something like .grad_log_p_unconstrained) within the posterior object itself to pass the samples and gradients around the code such that anything we contribute is compatible with existing functionality.
* Interface: We would sensibly subtly augment the functionality of summarise_draws such that it has additional measures such that the user can use (eg summarise_draws(x, "mean_control_variates",”sd_control_variates”), where "mean_control_variates" calculates the mean using control variates and “sd_control_variates” does the same for the standard deviation).
* Estimation: writing the functions to calculate the estimates themselves in such a way that, for example, mean__control_variates fails gracefully (eg by calling mean, without control variates) when .grad_log_p_unconstrained is not populated. These functions are likely to be based heavily on a combination of the code written (in Python here: https://github.com/zhouyifan233/ControlVariates) for [1] and a pre-existing R repo (here: https://github.com/LeahPrice/ZVCV).
We would welcome advice on how to progress towards a pull-request associated with this issue.
[1] S Maskell, Y Zhou and A Mira. Control Variates for Constrained Parameters. IEEE Signal Processing Letters. Vol 29, pp. 2333-2337. 2022
- Lingua principale
- R
- Stelle
- 172
- Fork
- 27
- Merge medio
- 5g 12h
- PR unite (30g)
- 5
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di stan-dev/posterior
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
-
Use testthat 3eForse già presa @mcol l’ha presa 7 giorni fa. Apertagood first issue test
Difficoltà 3/5 1-2 giorni Idoneità per principianti 65/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
Tutte le issue di stan-dev/posterior
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 68/100
cran-task-views/Spatial#127 · 1 commento ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
Add two cautions to the `simulate_dyad_responses()` helpForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertadocumentation priority: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
Pascal-Kueng/dyadMLM#179 ·
I maintainer di solito rispondono entro 1 giorno
-
Consider changesAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
OHDSI/OmopSketch#618 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
GSK-Biostatistics/tfrmt#854 ·