2017-08-02 1 views
1

Je suis assez nouveau au langage Julia (en utilisant la version 0.6.0 (2017-06-19 13:05 UTC) Official http://julialang.org/ version x86_64-w64-mingw32 sur une machine Windows 7). J'ai un arrière-plan R et j'ai trouvé que les implémentations de modèles mixtes étaient lentes pour de très gros ensembles de données (n> 2.000.000, p> 100). Par conséquent, j'ai cherché des alternatives et Julia semble être ultra rapide quand il s'agit de temps d'estimation.Prédire en utilisant julia lang MixedModels.jl

La question que je veux soulever ici concerne le paquet de dmbates MixedModels.jl. En raison de sa vitesse incroyable comparée, par exemple, à lme4, je me demandais s'il y avait aussi une fonction de prédiction. Voici une MWe qui appelle les données tinctoriales de package R`s de lme4:

using MixedModels, RCall 

R> library(“lme4”) 
R> data(Dyestuff) 

Dyestuff = rcopy(R"Dyestuff"); 
mm = fit!(lmm(@formula(Yield ~ 1 + (1 | Batch)), Dyestuff)); 

Alors, comment puis-je faire des prédictions en utilisant quelque chose comme:

predict(mm, newdata = Dyestuff)

Un grand merci à l'avance.

+0

Vous souciez-vous des prédictions (aux nouvelles données) ou des valeurs ajustées? 'predict (mm, newdata = Dyestuff)' devrait donner les mêmes résultats que 'fitted (mm)' dans R mais est probablement plus lent. – Livius

Répondre

1

Veuillez noter que Julia n'a pas encore atteint v1.0 et qu'il y a souvent de gros changements d'API entre les versions. De même MixedModels.jl est en développement actif et doit suivre les modifications de l'API Julia dans sa propre API. L'information ici est (espérons-le) correcte au moment de l'écriture.

En regardant le code source pour MixedModels.jl à la révision en cours e566fcf, il n'y a pas de méthode predict(), mais il est la méthode fitted() qui hérite de/overrides StatsBase.fitted(). Il devrait être assez facile d'écrire également predict() méthode surchargeant StatsBase.predict() et le soumettre comme une demande de tirage. Vous pourriez vouloir regarder le simulate() method - au lieu de générer de nouvelles données basées sur des données existantes, vous utiliseriez les données passées en argument.

+0

Bonjour Livius, merci pour la réponse. Je préfère attendre que dmbates ajoute une fonction générique 'predict()', plutôt que de le faire moi-même. – am800

+1

Vous voudrez peut-être ouvrir un problème sur le dépôt de github alors. –

+0

Bon point, l'a fait hier. – am800