2017-03-04 2 views
2

J'essaie de faire une régression de Dirichlet en utilisant Python. Malheureusement, je ne peux pas trouver un paquet Python qui fait le travail. J'ai donc essayé d'appeler la bibliothèque R DirichletReg en utilisant rpy2. Cependant, il n'est pas très intuitif pour moi comment appeler une fonction de régression telle que DirichReg(Y ~ X1 + X2 + X3, data=predictorData)Y = DR_data(compositionalData). J'ai vu un exemple d'appeler la fonction de régression linéaire lm dans la documentation de rpy2. Mais mon cas est légèrement différent car Y n'est pas un nom de colonne dans la table mais un objet R DR_data.Appelez la bibliothèque R DirichletReg à partir de Python en utilisant rpy2

Je me demande quelle est la bonne façon de procéder, ou s'il existe un paquet Python pour Dirichlet Regression.

Répondre

1

Vous pouvez envoyer des objets dans l'environnement "Formula" à partir de python. Cet exemple provient des documents rpy2:

import array 
from rpy2.robjects import IntVector, Formula 
from rpy2.robjects.packages import importr 
stats = importr('stats') 

x = IntVector(range(1, 11)) 
y = x.ro + stats.rnorm(10, sd=0.2) 

fmla = Formula('y ~ x') 
env = fmla.environment 
env['x'] = x 
env['y'] = y 

fit = stats.lm(fmla) 

Vous pouvez également créer des variables nommées dans l'environnement R (en dehors de la formule). Voir here. Dans le pire des cas, vous déplacez vos données python dans R via rpy2, puis vous émettez les commandes directement dans R via le pont rpy2 comme décrit here.

+0

Merci Noé. Cela marche. – LinX