Quels sont quelques projets open source d’analyses statistiques valables disponibles actuellement?
Edit: comme le souligne Sharpie, être utile peut vouloir dire vous aider à accomplir vos tâches plus rapidement ou à moindre coût.
Quels sont quelques projets open source d’analyses statistiques valables disponibles actuellement?
Edit: comme le souligne Sharpie, être utile peut vouloir dire vous aider à accomplir vos tâches plus rapidement ou à moindre coût.
Réponses:
Le projet R
R est précieux et significatif car il s’agissait de la première alternative Open Source largement acceptée aux paquets big-box. C'est mature, bien soutenu et une norme dans de nombreuses communautés scientifiques.
Cela peut faire oublier l’oubli, mais j’ai utilisé avec bonheur le clone Octave de Matlab pendant de nombreuses années. Il y a d'assez bonnes bibliothèques dans Octave Forge pour la génération de variables aléatoires à partir de distributions différentes, de tests statistiques, etc., bien que clairement contrarié par R. Un avantage possible par rapport à R est que Matlab / octave est la lingua franca des analystes numériques et des chercheurs en optimisation. et quelques sous-groupes de mathématiciens appliqués (du moins quand j'étais à l'école), alors que personne dans mon département, à ma connaissance, n'utilisait R. ma perte. Apprenez les deux si possible!
Deux projets me viennent à l’esprit:
Weka pour l'exploration de données - contient de nombreux algorithmes de classification et de clustering en Java.
ggobi "est un programme de visualisation open source pour l'exploration de données de grande dimension."
Mat Kelcey a une bonne introduction de 5 minutes à ggobi .
Incanter est une plate-forme de type R basée sur Clojure (environnement + bibliothèques) pour l'informatique statistique et les graphiques.
Il existe également des projets initiés par la FSF ou redistribués sous licence publique générale GNU, tels que:
Il y a même des applications qui ont été publiées juste comme logiciel d'accompagnement pour un manuel, comme JMulTi , mais qui sont encore utilisées par peu de gens.
Je joue encore de temps en temps avec xlispstat , bien que Lisp ait été largement remplacé par R (voir la vue d'ensemble de Jan de Leeuw sur Lisp contre R dans le Journal of Statistical Software ). Il est intéressant de noter que l'un des cofondateurs du langage R, Ross Ihaka, a affirmé au contraire que l'avenir du logiciel statistique est ... Lisp: Retour vers le futur: Lisp en tant que base d'un système informatique statistique . @Alex a déjà souligné l'environnement statistique basé sur Clojure , Incanter , alors peut-être assisterons -nous à une renaissance du logiciel basé sur Lisp dans un avenir proche? :-)
RapidMiner pour l'exploration de données et de texte
Tout d’abord, laissez-moi vous dire que, à mon avis, le meilleur outil, et de loin, est R, qui compte une multitude de bibliothèques et d’utilitaires que je ne vais pas énumérer ici.
Permettez-moi d'élargir la discussion sur le weka
Il existe une bibliothèque pour R, appelée RWeka, que vous pouvez facilement installer dans R, et utiliser de nombreuses fonctionnalités de ce programme génial avec celles de R, laissez-moi vous donner un exemple de code pour la création d'un arbre de décision simple. lisez une base de données standard fournie avec ce paquet (il est également très facile de dessiner l'arbre résultant, mais je vais vous laisser faire la recherche sur la façon de le faire, ce qui est dans la documentation de RWeka:
library(RWeka)
iris <- read.arff(system.file("arff", "iris.arff", package = "RWeka"))
classifier <- IBk(class ~., data = iris)
summary(classifier)
Il existe également plusieurs bibliothèques python pour cela (le python est très très facile à apprendre)
Tout d’abord, laissez-moi énumérer les paquets que vous pouvez utiliser, je ne vais pas entrer dans les détails à leur sujet; Weka (oui, vous avez une bibliothèque pour python), NLKT (le paquet open source le plus célèbre pour l'extraction de texte en plus de l'analyse de données), statPy , sickits et scipy.
Il y a aussi orange qui est excellent (j'en parlerai aussi plus tard), voici un exemple de code permettant de créer une arborescence à partir des données de la table cmpart1, qui effectue également la validation à 10 plis; vous pouvez également représenter graphiquement l'arborescence.
import orange, orngMySQL, orngTree
data = orange.ExampleTable("c:\\python26\\orange\\cmpart1.tab")
domain=data.domain
n=10
buck=len(data)/n
l2=[]
for i in range(n):
tmp=[]
if i==n-1:
tmp=data[n*buck:]
else:
tmp=data[buck*i:buck*(i+1)]
l2.append(tmp)
train=[]
test=[]
di={'yy':0,'yn':0,'ny':0,'nn':0}
for i in range(n):
train=[]
test=[]
for j in range(n):
if j==i:
test=l2[i]
else:
train.extend(l2[j])
print "-----"
trai=orange.Example(domain, train)
tree = orngTree.TreeLearner(train)
for ins in test:
d1= ins.getclass()
d2=tree(ins)
print d1
print d2
ind=str(d1)+str(d2)
di[ind]=di[ind]+1
print di
Pour finir avec d'autres paquets que j'ai utilisés et trouvés intéressants
Orange : visualisation et analyse de données pour novices et experts. Exploration de données par programmation visuelle ou par script Python. Composants pour l'apprentissage automatique. Extensions pour la bioinformatique et l'extraction de texte. (Je le recommande personnellement, je l'ai beaucoup utilisé en l'intégrant dans python et c'était excellent). Je peux vous envoyer du code python si vous le souhaitez.
ROSETTA : boîte à outils pour l'analyse de données tabulaires dans le cadre de la théorie des ensembles approximatifs. ROSETTA est conçu pour prendre en charge l'ensemble du processus d'exploration de données et de découverte des connaissances: de la navigation initiale au prétraitement des données, en passant par le calcul d'ensembles d'attributs minimaux et la génération de règles if-then ou de modèles descriptifs, jusqu'à la validation et l'analyse des règles induites (J'ai également beaucoup aimé utiliser ce produit)
KEEL : évaluer les algorithmes évolutifs pour les problèmes d’exploration de données, notamment la régression, la classification, la mise en cluster, l’exploration de modèles, etc. Il nous permet d’effectuer une analyse complète de tout modèle d’apprentissage par rapport aux modèles existants, y compris un module de test statistique à des fins de comparaison.
DataPlot : pour la visualisation scientifique, l'analyse statistique et la modélisation non linéaire. L'utilisateur cible de DataPot est le chercheur et l'analyste engagés dans la caractérisation, la modélisation, la visualisation, l'analyse, la surveillance et l'optimisation des processus scientifiques et techniques.
Openstats : comprend un manuel de statistiques et de mesures, statistiques descriptives, comparaisons simples, analyses de variance, corrélation, régression multiple, séries chronologiques interrompues, statistiques multivariées, statistiques non paramétriques, mesures, contrôle de processus statistiques, procédures financières, réseaux neuronaux, simulation
Colin Gillespie mentionné BUGS, mais une meilleure option pour Gibbs échantillonnage, etc, est JAGS .
Si tout ce que vous voulez faire est ARIMA, vous ne pouvez pas battre X12-ARIMA , qui est un standard de référence sur le terrain et en source ouverte. Il ne fait pas de vrais graphiques (j'utilise R pour le faire), mais les diagnostics sont une leçon à part entière.
S'aventurer un peu plus loin vers quelque chose que j'ai découvert récemment et que je commence tout juste à apprendre ...
ADMB (AD Model Builder), qui effectue une modélisation non linéaire basée sur la bibliothèque AUTODIF, avec MCMC et quelques autres fonctionnalités intégrées. Il traite et compile le modèle en un exécutable C ++ et le compile comme une application autonome, qui est supposé être bien plus rapide que les modèles équivalents implémentés dans R, MATLAB, etc. ADMB Project
Il a commencé et est toujours le plus populaire dans le monde de la pêche, mais semble assez intéressant pour d'autres objectifs. Il n’a pas de fonctions graphiques ou autres caractéristiques de R et serait très probablement utilisé avec R.
Si vous souhaitez travailler avec Bayesian Networks dans une interface graphique: SamIam est un outil intéressant. R a quelques paquets qui le font aussi, mais SamIam est très gentil.
GSL pour ceux d'entre vous qui souhaitent programmer en C / C ++ est une ressource précieuse car il fournit plusieurs routines pour les générateurs aléatoires, l'algèbre linéaire, etc. Bien que GSL soit principalement disponible pour Linux, il existe également des ports pour Windows. (Voir: http://gladman.plushost.co.uk/oldsite/computing/gnu_scientific_library.php et http://david.geldreich.free.fr/dev.html )
J'aime beaucoup travailler avec RooFit pour un ajustement facile et précis des distributions de signaux et d’arrière-plan, et TMVA pour des analyses rapides en composantes principales et la modélisation de problèmes multivariés avec certains outils standard (tels que les algorithmes génétiques et les réseaux de neurones, mais également les BDT). Ils font tous les deux partie des bibliothèques ROOT C ++ qui ont un assez fort biais pour les problèmes de physique des particules.
Peu plus en plus de déjà mentionné:
Et du point de vue spatial:
Je seconde ce Jay. Pourquoi R est-il précieux? Voici une courte liste de raisons. http://www.inside-r.org/why-use-r . Consultez également ggplot2 - un très joli logiciel graphique pour R. Quelques tutoriels intéressants ici .
Cela se situe aux limites de l'analyse statistique, mais Eureqa est un programme très convivial pour les relations non linéaires d'exploration de données dans les données via la programmation génétique. Eureqa n’est pas aussi polyvalent, mais il fait ce qu’il fait assez bien, et l’interface graphique est assez intuitive. Il peut également tirer parti de la puissance de calcul disponible via le serveur eureqa.
Meta.Numerics est une bibliothèque .NET qui prend en charge l'analyse statistique.
Contrairement à R (un clone S) et à Octave (un clone de Matlab), il n’a pas de "front end". Cela ressemble plus à GSL, en ce sens qu’il s’agit d’une bibliothèque à laquelle vous créez un lien lorsque vous écrivez votre propre application qui doit effectuer une analyse statistique. C # et Visual Basic sont des langages de programmation plus courants que C / C ++ pour les applications métier. Meta.Numerics prend davantage en charge les constructions et les tests statistiques que GSL.
Un logiciel de mathématiques symboliques peut également être un bon support pour les statistiques. Voici quelques exemples de GPL que j'utilise de temps en temps:
Tous les trois sont en développement actif.