¿Cuáles son algunos de los valiosos proyectos de código abierto de Análisis estadístico disponibles en este momento?
Editar: como señaló Sharpie, valioso podría significar ayudarlo a hacer las cosas más rápido o más barato.
¿Cuáles son algunos de los valiosos proyectos de código abierto de Análisis estadístico disponibles en este momento?
Editar: como señaló Sharpie, valioso podría significar ayudarlo a hacer las cosas más rápido o más barato.
Respuestas:
El proyecto R
R es valioso y significativo porque fue la primera alternativa de código abierto ampliamente aceptada a los paquetes de caja grande. Es maduro, bien respaldado y es un estándar dentro de muchas comunidades científicas.
Esto puede ser rechazado al olvido, pero felizmente utilicé el clon Matlab Octave durante muchos años. Hay bibliotecas bastante buenas en la forja de octava para la generación de variables aleatorias de diferentes distribuciones, pruebas estadísticas, etc., aunque claramente está eclipsada por R. Una posible ventaja sobre R es que Matlab / octava es la lengua franca entre analistas numéricos, investigadores de optimización , y algún subconjunto de matemáticos aplicados (al menos cuando estaba en la escuela), mientras que nadie en mi departamento, que yo sepa, usó R. mi pérdida. aprende ambos si es posible!
Se me ocurren dos proyectos:
Weka para minería de datos: contiene muchos algoritmos de clasificación y agrupación en Java.
ggobi "es un programa de visualización de código abierto para explorar datos de alta dimensión".
Mat Kelcey tiene una buena introducción de 5 minutos a ggobi .
Incanter es una plataforma tipo R basada en Clojure (entorno + bibliotecas) para computación estadística y gráficos.
También hay proyectos iniciados por la FSF o redistribuidos bajo la Licencia Pública General de GNU, como:
Incluso hay aplicaciones que se lanzaron solo como software complementario para un libro de texto, como JMulTi , pero que todavía son pocas las personas que lo utilizan.
Todavía estoy jugando con xlispstat , de vez en cuando, aunque Lisp ha sido reemplazado en gran medida por R (ver el resumen de Jan de Leeuw sobre Lisp vs. R en el Journal of Statistical Software ). Curiosamente, uno de los cofundadores del lenguaje R, Ross Ihaka, argumentó por el contrario que el futuro del software estadístico es ... Lisp: Regreso al futuro: Lisp como base para un sistema de computación estadística . @Alex ya señaló el entorno estadístico basado en Clojure Incanter , por lo que tal vez veremos un renacimiento del software basado en Lisp en el futuro cercano. :-)
RapidMiner para minería de datos y texto
Antes que nada déjenme decirles que, en mi opinión, la mejor herramienta de todas es R, que tiene toneladas de bibliotecas y utilidades que no voy a enumerar aquí.
Permítanme expandir la discusión sobre weka
Hay una biblioteca para R, que se llama RWeka, que puede instalar fácilmente en R, y usar muchas de las funcionalidades de este gran programa junto con las de R, permítame darle un ejemplo de código para hacer un árbol de decisión simple lea de una base de datos estándar que viene con este paquete (también es muy fácil dibujar el árbol resultante, pero le dejaré hacer la investigación sobre cómo hacerlo, que se encuentra en la documentación de RWeka:
library(RWeka)
iris <- read.arff(system.file("arff", "iris.arff", package = "RWeka"))
classifier <- IBk(class ~., data = iris)
summary(classifier)
También hay varias bibliotecas de Python para hacer esto (Python es muy, muy fácil de aprender)
Primero déjame enumerar los paquetes que puedes usar, no voy a entrar en detalles sobre ellos; Weka (sí, tiene una biblioteca para python), NLKT (el paquete de código abierto más famoso para minería de texto además de minería de datos), statPy , sickits y scipy.
También hay naranja que es excelente (también hablaré más adelante), aquí hay un ejemplo de código para hacer un árbol a partir de los datos en la tabla cmpart1, que también realiza una validación de 10 pliegues, también puede graficar el árbol
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
Para terminar con algunos otros paquetes que utilicé y encontré interesantes
Naranja : visualización y análisis de datos para principiantes y expertos. Minería de datos a través de programación visual o secuencias de comandos Python. Componentes para el aprendizaje automático. Extensiones para bioinformática y minería de textos. (Lo recomiendo personalmente, lo utilicé mucho integrándolo en Python y fue excelente) Puedo enviarle un código de Python si lo desea.
ROSETTA : kit de herramientas para analizar datos tabulares en el marco de la teoría de conjuntos aproximada. ROSETTA está diseñado para soportar el proceso general de descubrimiento de conocimiento y minería de datos: desde la exploración inicial y el preprocesamiento de los datos, pasando por el cálculo de conjuntos mínimos de atributos y la generación de reglas si-entonces o patrones descriptivos, hasta la validación y análisis de las reglas o patrones inducidos (Esto también disfruté mucho usando)
KEEL : evalúa algoritmos evolutivos para problemas de minería de datos que incluyen regresión, clasificación, agrupamiento, minería de patrones, etc. Nos permite realizar un análisis completo de cualquier modelo de aprendizaje en comparación con los existentes, incluido un módulo de prueba estadística para comparación.
DataPlot : para visualización científica, análisis estadístico y modelado no lineal. El usuario objetivo de Dataplot es el investigador y analista dedicado a la caracterización, modelado, visualización, análisis, monitoreo y optimización de procesos científicos y de ingeniería.
Openstats : incluye un manual de estadísticas y mediciones, estadísticas descriptivas, comparaciones simples, análisis de varianza, correlación, regresión múltiple, series de tiempo interrumpidas, estadísticas multivariantes, estadísticas no paramétricas, medición, control estadístico de procesos, procedimientos financieros, redes neuronales, simulación
Colin Gillespie mencionó BUGS, pero una mejor opción para Gibbs Sampling, etc., es JAGS .
Si todo lo que quiere hacer es ARIMA, no puede vencer a X12-ARIMA , que es un estándar de oro en el campo y de código abierto. No hace gráficos reales (yo uso R para hacer eso), pero los diagnósticos son una lección en sí mismos.
Aventurándome un poco más lejos de algo que descubrí recientemente y que recién comencé a aprender ...
ADMB (AD Model Builder), que realiza un modelado no lineal basado en la biblioteca AUTODIF, con MCMC y algunas otras características incorporadas. Preprocesa y compila el modelo en un ejecutable C ++ y lo compila como una aplicación independiente, que es se supone que es mucho más rápido que los modelos equivalentes implementados en R, MATLAB, etc. Proyecto ADMB
Comenzó y sigue siendo el más popular en el mundo de la pesca, pero parece bastante interesante para otros fines. No tiene gráficos u otras características de R, y lo más probable es que se use junto con R.
Si desea trabajar con Bayesian Networks en una GUI: SamIam es una buena herramienta. R tiene un par de paquetes que también hacen esto, pero SamIam es muy agradable.
GSL para aquellos de ustedes que desean programar en C / C ++ es un recurso valioso, ya que proporciona varias rutinas para generadores aleatorios, álgebra lineal, etc. Si bien GSL está principalmente disponible para Linux, también hay puertos para Windows. (Ver: http://gladman.plushost.co.uk/oldsite/computing/gnu_scientific_library.php y http://david.geldreich.free.fr/dev.html )
Realmente disfruto trabajando con RooFit para una fácil y adecuada adaptación de las distribuciones de señal y fondo y TMVA para análisis rápidos de componentes principales y modelado de problemas multivariados con algunas herramientas estándar (como algoritmos genéticos y redes neuronales, también hace BDT). Sin embargo, ambos son parte de las bibliotecas ROOT C ++ que tienen un sesgo bastante fuerte hacia los problemas de física de partículas.
Pocos más además de los ya mencionados:
Y desde una perspectiva espacial:
Yo segundo que Jay. ¿Por qué es valioso R? Aquí hay una breve lista de razones. http://www.inside-r.org/why-use-r . También echa un vistazo a ggplot2 , un paquete de gráficos muy bueno para R. Algunos buenos tutoriales aquí .
Esto cae en los límites externos del "análisis estadístico", pero Eureqa es un programa muy fácil de usar para la extracción de datos de relaciones no lineales en los datos a través de la programación genética. Eureqa no tiene un propósito general, pero hace lo que hace bastante bien, y la GUI es bastante intuitiva. También puede aprovechar la potencia informática disponible a través del servidor eureqa.
Meta.Numerics es una biblioteca .NET con buen soporte para el análisis estadístico.
A diferencia de R (un clon S) y Octave (un clon de Matlab), no tiene un "front end". Se parece más a GSL, ya que es una biblioteca a la que se vincula cuando está escribiendo su propia aplicación que necesita hacer un análisis estadístico. C # y Visual Basic son lenguajes de programación más comunes que C / C ++ para aplicaciones de línea de negocio, y Meta.Numerics tiene un soporte más extenso para construcciones y pruebas estadísticas que GSL.
El software matemático simbólico también puede ser un buen soporte para las estadísticas. Aquí hay algunos GPL que uso de vez en cuando:
Los tres están en desarrollo activo.