Dealing with chains of different length
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 42/100
Línea de trabajo
Comienza comparando niterations y los puntos de entrada de conversión de draws_df, draws_matrix, draws_list y draws_array después de que repair_draws() cree longitudes de cadena desiguales. Revisa merge_chains como solución sugerida y determina dónde debería producirse una advertencia o un error informativo. Se considera terminado cuando las cadenas desiguales se gestionan de forma coherente y draws_array indica a los usuarios que usen merge_chains cuando sea necesario.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
I suppose there is an implicit expectation that all chains are the same length, but different lengths can occur when doing filtering with e.g. dplyr. I think the recommended workflow should likely be to merge chains before doing this kind of filtering, but I guess that can't be enforced.
Currently, different draws formats handle chains of varying length differently in how they calculate niterations (even after repairing). And draws_array does not allow different length chains at all -> I think the error message could point to merge_chains as a solution.
Consider filtering a draws_df based on the value of some variable (below dplyr is used to do so, but it could be done in base R syntax). This can end up with a draws_df that has different length chains.
library(posterior)
library(dplyr)
fdraws <- example_draws() |>
as_draws_df() |>
dplyr::filter(`mu` > 0) |>
repair_draws()
niterations(fdraws)
## [1] 94
niterations(as_draws_matrix(fdraws))
## [1] 89.5
niterations(as_draws_list(fdraws))
## [1] 90
as_draws_array(fdraws)
## Error in abind::abind(x, along = 3L) :
## arg 'X2' has dims=86, 10, 1; but need dims=90, 10, X
Should there be a message/warning given when a draws object has different length chains that suggests merge_chains?
- Lenguaje dominante
- R
- Estrellas
- 172
- Forks
- 27
- Merge medio
- 5 d 12 h
- PR fusionados (30 d)
- 5
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de stan-dev/posterior
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
-
Use testthat 3ePosiblemente ocupada @mcol la tomó hace 6 días. Abiertogood first issue test
Dificultad 3/5 1-2 días Aptitud para principiantes 65/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
Todos los issues de stan-dev/posterior
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
documentation priority: low
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Pascal-Kueng/dyadMLM#179 ·
Los mantenedores suelen responder en 1 día
-
Consider changesAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
OHDSI/OmopSketch#618 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
GSK-Biostatistics/tfrmt#854 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100