Vectorize predictors in categorical(_logit)

Ouverte
#3,102 1 commentaire 2 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
38/100
Type d'issue
Fonctionnalité
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
cpp

Piste de recherche

Commencez par localiser les points d’entrée des fonctions de probabilité categorical et categorical_logit ainsi que leur prise en charge existante de la vectorisation. Vérifiez comment sont définies les signatures pour array[] int avec des paramètres vector, puis ajoutez la couverture pour la forme matrix et vérifiez que l’exemple Stan fourni se compile ; la forme array[] vector reste facultative comme indiqué.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

feature

Description

As is, the categorical and categorical_logit pdfs allow multiple outputs, but not multiple parameters.

This was requested in docs, but doesn't exist yet: https://github.com/stan-dev/docs/issues/500

Example

Currently:

Available signatures:
(array[] int, vector) => real
  The second argument must be vector but got matrix
(int, vector) => real
  The first argument must be int but got array[] int

What we want is to add the following signature in the usual way (so that each row of the matrix corresponds to an entry of the integer array):

(array[] int, matrix) => real

and maybe

(array[] int, array[] vector) => real

The goal is to support vectorized code that looks like this:

data {
  int<lower=0> K;
  int<lower=0> N;
  int<lower=0> D;
  array[N] int<lower=1, upper=K> y;
  matrix[N, D] x;
}
parameters {
  matrix[D, K] beta;
}
model {
  to_vector(beta) ~ normal(0, 5);
  y ~ categorical_logit(x * beta);
}

Expected Output

Above example compiles.

Current Version:

v4.9.0

Langage dominant
C++
Étoiles
845
Forks
225
Merge moyen
4 j 21 h
PR mergées (30 j)
13

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de stan-dev/math

Toutes les issues de stan-dev/math

Issues similaires

Plus d'issues C++

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.