2012-05-06 14 views
15

Ho cercato un buon pacchetto di statistiche per Common Lisp, che dovrebbe essere sia stabile che efficiente. C'è lhstats, ma non ha molta documentazione e non è attualmente mantenuto. Allora, qual è il modo preferito per la programmazione di statistiche in Common Lisp (sto usando SBCL)? Sto cercando un pacchetto con funzioni statistiche avanzate, come SEM (modellazione di equazioni strutturali), correlazioni canoniche, GLM (modello lineare generale) ecc., Ma anche pacchetti statistici molto semplici ma stabili e ben documentati sarebbero utili. Chiamare le funzioni statistiche R da Common Lisp sarebbe anche un'opzione. Che cosa mi consiglia?pacchetti di statistiche per Common Lisp

+2

Perché deve essere Common Lisp? Penso che R non sia molto difficile da imparare provenire da uno sfondo Lisp, e in questo modo non cercherò di reinventare la ruota .... –

+1

Sì, in realtà stavo pensando a R, ha ottime funzioni statistiche e conosco le basi della sintassi R. Stavo cercando una soluzione Common Lisp, perché è più adatta alla programmazione generica IMHO, ma forse è bene usare R per le statistiche comunque, tramite [RCL] (http://common-lisp.net/project/rcl/) o [RCLG] (http://common-lisp.net/project/rclg/). – nrz

+5

Penso che, se trovi una buona soluzione Common Lisp, non dovresti scegliere R, solo perché è comune utilizzarla per le statistiche. C'è anche un interessante articolo del creatore di R sull'argomento Lisp use for stats: http://www.stat.auckland.ac.nz/~ihaka/downloads/Compstat-2008.pdf Ma se deciderai di usare R , potresti voler dare un'occhiata a swankr (un backend SWANK per R): http://common-lisp.net/~crhodes/swankr/ –

risposta

11

Probabilmente, si dovrebbe guardare a common-lisp-stat

+0

Stavo pensando anche a questa opzione, ma poi ho incontrato alcune difficoltà con l'installazione: ho usato 'git clone' per ottenere il repository e fatto secondo le [istruzioni di avvio rapido] (https://github.com/blindglobe/common- lisp-stat), ma poi ottengo l'errore: '" Componente: RSM-STRING non trovato, richiesto da # "'. Quindi ho bisogno di [rsm-string] (https://github.com/blindglobe/rsm-string-cls), e non è disponibile usando '(ql: system-apropos" rsm ")' ('common-lisp- stat' non è neanche, per quella materia). Quindi, come dovrei installare 'rsm-string' per poter usare' common-lisp-stat'? – nrz

+2

puoi ottenerlo (così come un'altra dipendenza: listoflists) e installarlo manualmente dall'account github dell'autore stesso https://github.com/blindglobe. E tu, avrai anche bisogno di cldoc da https://github.com/danlentz/cldoc (proprio come ai vecchi tempi :) E avrai bisogno anche di libgfortran3, libblas e liblapack. –

4

penso che vorrei andare con lhstat, potrebbe non essere più mantenuto, ma la stessa cosa sembra vero per common-lisp-stat (ultimo commettere è 1 anno di età), e almeno è disponibile tramite Quicklisp. Inoltre, forse questi pacchetti non vengono mantenuti perché sono abbastanza buoni.

Si può anche provare RCL un binding FFI di R che è anche quickloadable.

+0

common-lisp-stat sembra essere mantenuto, ma non aggiornato –

+0

@VsevolodDyomkin: Come lo sai? Anche se è mantenuta, andrei con qualcosa di quickloadable se si adatta alle mie esigenze, a meno che non ci sia un altro sistema che è molto meglio (ma probabilmente proverei ad aggiungerlo a Quicklisp). – Daimrod

+1

Vedo l'attività del suo mainininer su github. Ma sicuramente il sistema dovrebbe entrare in quicklisp (in realtà è presente in https://github.com/quicklisp/quicklisp-projects, ma in qualche modo non disponibile). Probabilmente dovremmo presentare un problema a blindglobe (e xach) per renderlo disponibile. –

1

So solo per nome, ma guarda qui http://incanter.org/

Si definisce "un Clojure-based, piattaforma di R-come per il calcolo statistico e la grafica." Dove clojure è una variante di lisp comune.

+1

Interessante. Clojure è una variante di Lisp (come Common Lisp, Scheme ed Emacs Lisp ecc.) Ma AFAIK non è conforme a ** Common Lisp ** ANSI standard e IMHO è anche troppo diverso da esso per essere considerato una variante di Lisp comune (tuttavia non ho ancora provato Clojure). – nrz

+7

Clojure non è una variante di Common Lisp. È un linguaggio separato, con sintassi simile a Lisp, basato su Java e sul paradigma funzionale. –

+1

D'accordo con altri commenti che Clojure non è Common Lisp. Vorrei aggiungere che Incanter è abbastanza buono - l'ho usato molto efficacemente per la visualizzazione dei dati e vale la pena considerare se il requisito è Lisp in generale piuttosto che Common Lisp – mikera