22 dicembre 2006

Google PageRank

L'anno scorso lessi un breve ed interessante manualetto sul fuzionamento di Google ed ora segnalo l'esistenza della seconda edizione.
L'argomento a cui ero molto interessato era il calcolo del PageRank (discusso nel libro in maniera generica e senza affrontare gli aspetti matematici e computazionali), ossia al voto che la rete stessa assegna ad ogni singola pagina Web. In parole povere (...ma molto povere visto che l'algoritmo di calcolo si basa sul concetto di processo di Markov...) il PageRank è una "somma pesata" del numero di link che rimandano alla pagina in questione, utilizzando come pesi dei "coefficienti di importanza e popolarità" del sito da cui parte il collegamento.
Tra tutto il materiale che ho letto in rete mi è piaciuto molto quello che ho trovato su
questo sito, in particolare la pagina relativa all'algoritmo di calcolo.
Per rendersi conto dell'importanza del PageRank basti pensare al fatto che la rilevanza di un sito in rete, secondo un mio parere personale, si misura ormai in base alla posizione che questo occupa nei risultati di una ricerca fatta su Google.

13 dicembre 2006

R commander e SciViews-R

Con questo post segnalo l'esistenza di alcuni progetti volti a creare una GUI per R , considerando che mi sembra che tale aspetto sia poco "pubblicizzato". Per un po' ho lavorato cercando di limitare il più possibile l'interfacca a linea di comando per testare quelli che dovrebbero essere i progetti più interessanti: R Commander e SciViews-R. R Commander è "semplicemente" una libreria da richiamare per poter poi usufruire di un'interfaccia grafica come aiuto nella gestione dei dati: importazione di un dataset, esecuzione delle più comuni procedure di analisi statistiche, esportazione dei dati. In base i miei gusti (anche se immagino che come me a molti non interessi), penso che come interfaccia non sia molto accattivante per quanto riguarda la sua veste grafica (aspetto da non sottovalutare da un punto di vista commerciale), ma le possibilità offerte sono veramente interessanti. In particolare, l'operazione più disincentivante nell'utilizzo di un software come R penso sia la semplice importazione della matrice di dati. Se lavorate, ad esempio, con un foglio excel che dovete importare in R per poi effettuare una analisi di regressione, vi scontrerete sicuramente con l'uso di read.table e dovrete stare attenti a precisare l'indirizzo a cui corrisponde il file da importare, il separatore, la presenza o meno di una riga di intestazione e soprattutto il separatore per i decimali!!!! (che per gli anglosassoni è il punto e per noi italiani la virgola; a proprosito, in excel evitate di usare il separatore delle migliaia se dovete importare in R). Tutta questa operazione va semplicemente eseguita (dopo aver richiamato la libreria R Commander: Rcmdr) con una serie di click in maniera sostanzialmente analoga a quanto avviene nei software commerciali. Infine, penso che l'altro aspetto importantissimo sia la possibilità di leggere il codice R corrispondente ad una qualunque procedura di analisi eseguita tramite l'ausilio dell finestre di Rcmdr (acquisendo padronanza con il linguaggio).Per quanto riguarda SciViews-R, credo che la sostanza non cambi, mentre cambia la veste grafica che mi sembra più interessante (ma ripeto, questo è forse un aspetto che non interessa). In particolare, segnalo che le procedure "guidate" di analisi dati si ottengono richiamando la stessa libreria Rcmdr (quindi ritorniamo sempre alle stesse finestrelle di cui sopra). Uno strumento sicuramente interessante è invece l' Object explorer che permette di osservare l'elenco di funzioni e dataset presenti in ogni libreria, con la possibilità di richiamare esempi associati alle stesse.Infine, un problema esistente attualmente ma che dovrebbe essere risolto è la versione di R. Alla data in cui scrivo la 2.4.0 è la versione più recente, mentre SciViviews-R "gira" correttamente con la 2.2.0. Sul sito è chiaramente indicato che la versione richiesta è la 2.2.0, ma nel manuale si legge <<...you must make sure you install at least R version 2.2.0..>>. Io comunque ho testato il tutto ed ho avuto una discussione via email con Philippe Grosjean: attualmente è necessario usare la 2.2.0, quindi ho risolto installando sial la 2.4.0 che la 2.2.0. Quest'ultima la uso solo quando avvio SciViews-R.
Comunque, concludendo, io continuo a lavorare con la linea di comando di R, richiamando Rcmdr ogni tanto, soprattutto per l'importazione dei dataset (è veramente comodo), mentre uso SciViews-R solo per richiamare l'esploratore di oggetti. Penso però che si tratti di strumenti utilissimi (soprattutto per chi è alle prime armi) da usare come guida di fronte alla necessità di eseguire un'operazione della quale non si conosce bene il codice in linguaggio R.

14 novembre 2006

MARS: multivariate adaptive regression splines

Tra le varie tecniche di analisi dati sviluppatesi ultimamente nell'ambito del data mining, in relazione al tanto noto problema di modellazione statistica con un numero elevato di variabili esplicative, segnalo i modelli MARS. A differenza di altre tecniche statistiche, inoltre, penso ci sia meno materiale in giro (in particolare in italiano). In questo mio articolo, comunque, non intendo affrontare l'argomento nello specifico, ma segnalare solo alcuni link dal quale trarre le giuste informazioni. La logica alla base del modello si sviluppa, anche in questo caso, nel mitico dipartimento di statistica della Stanford University. Ovviamente penso che la consultazione di tale sito sia d'obbligo per chi vuole essere aggiornato sugli sviluppi scientifici del data mining: si provi, tra i tanti, a dare un'occhiatina alla pagina di Jerome H. Friedman...Il rischio di "partire" con altre discussioni off topic è davvero elevato se si dovessere prendere spunto da tutto quello che ha scritto Friedman...Comunque, ritornando ai modelli MARS, ci sono tanti articoli liberamente scaricabili a questo indirizzo. Potete notare che il materiale deriva dal sito della Salford System, società americana che produce software per sviluppo di analisi di data mining. Non a caso, la società collabora con i big della Stanford University (...non ho ben capito che legame ci sia tra l'università e l'azienda, comunque nel sito dell'università non sono pochi i link che rimandano alla Salford System...). In Italia non vi sono sedi di tale società, ma il software è ad esempio distribuito dalla TStat. Comunque, tornando ai modelli MARS, penso che per la comprensione a fondo dell'argomento sia anche qui necessaria una buona preparazione di matematica, infatti come lo stesso Friedman dice : ...the procedure is implemented by constructing a set of (globally defined) basis functions that span the space of qth order approximations... (in particolare, con tale frase ci si riferisce alle funzioni spline, e a tal proposito un seggerimento lo trovate qui). Infine, voglio riportare una frase molto significativa di Friedman, sottolineando che sulla curse of dimensionality (maledizione della dimensionalità) potete trovare un bel paragrafo nel libro di Azzalini-Scarpa: Analisi dei dati e data mining. Penso che sia un ottimo libro in lingua italiana sul data mining, ma il livello è sicuramente introduttivo. Dimenticavo :-), ecco la frase di cui parlavo:...the direct extension of piecewise parametric modeling to higher dimensions (n > 2) is straightforward in principle but difficult in practice. These difficulties are related to the so called “curse-of-dimensionality,” a phrase coined by Bellman (1961) to express the fact that exponentially increasing numbers of (data) points are needed to densely populate Euclidean spaces of increasing dimension. In the case of spline approximations the subregions are usually constructed as tensor products of K + 1 intervals (defined by K knots) over the n variables. The corresponding global basis is the tensor product over the K + q + 1 basis functions associated with each variable (6). This gives rise to (K + q + 1)^n coefficients to be estimated from the data. Even with a very coarse grid (small K), a very large data sample is required... . Per quanto riguarda la possibilità di implementare un tale modello con strumenti open source, per fortuna che c'è R. Nell' mda Package è disponibile la funzione mars, tuttavia lo stesso autore sottolinea che si tratta di una procedura ancora in fase di test (...svantaggi dell'essere gratis????.... :-)

11 novembre 2006

aritmetica floating point

Spesso mi è capitato di riflettere sull'importanza dell'utilizzo del calcolatore in un contesto lavorativo in cui si analizzano dati. La cosa sorpendente è come la gestione di questi possa avvenire (...entro certi limiti...) senza interrogarsi affatto su quello che accade a livello di linguaggio macchina.Allo stesso tempo, comunque, spinto dal desiderio di capire a fondo le modalità di risoluzione di un problema da parte di un eleboratore, mi sono imbattuto in alcuni testi di calcolo numerico. A tal proposito penso che il corso di laurea in Scienze Statistiche debba necessariamente prevedere un esame in tale ambito, essendo oggi giorno fondamentale per uno statistico capire quello che accade "dietro le quinte" del calcolatore. Allo stato attuale, invece, mi sembra che ciò non accada nelle facoltà italiane di statistica (ma probabilmente è solo una mia impressione sbagliata).Lo studio dell' aritmetica floating point, quindi, è fortemente consigliata. Tra i vari testi che in passato ho utilizzato mi permetto di consigliarne uno introduttivo ed abbastanza semplice:Fondamenti di Calcolo Numerico - G. Monegato - Levrotto&Bella.In particolare, il primo capitolo consiste in un'introduzione chiarissima alla rappresentazione dei numeri in un calcolatore, al condizionamento di un problema e alla stabilità di un algoritmo.Tra il materiale free (in italiano, altrimenti ce n'è una marea) disponibile in rete, invece, segnalo questo e quest'altro.Sempre nel testo di Monegato (...giacché ci troviamo, sperando di non essere off topic... :-) consiglio fortemente anche la lettura del capitolo 5 che riguarda, invece, l'approssimazione di dati e di funzioni. Noi statistici, infatti, siamo continuamente di fronte alla necessità di costruire un modello matematico che descriva sufficientemente bene un insieme di "punti". Gli argomenti trattati in questo capitolo, infatti, possono essere visti come introduzione di taglio matematico ai metodi di analisi dei dati che, in maniera molto generale, mi piace vedere come capitoli del data mining (si pensi, ad esempio, all'interpolazione polinomiale di Lagrange e alle funzioni spline).

05 novembre 2006

Basilea 2



Per chiunque fosse interessato a Basilea 2, il nuovo accordo internazionale sui requisiti patrimoniali delle banche, vi segnalo un buon libro uscito da poco per la FrancoAngeli:Basilea 2: diagnosi e terapie. Guida pratica per le imprese di Marco Muscettola.
Ovviamente :-)))), tra i contributi al libro di altri autori, segnalo il mio, ossia il capitolo in appendice sul rischio di redito. In esso ho cercato di riassumere i concetti di incertezza, rischio e previsione, soffermandomi sui metodi di gestione del rischio di credito e sui metodi di credit scoring a supporto delle decisioni di affidamento.

04 novembre 2006

una breve premessa

Un po' di info su le trovate su linkedin. Se volete, potete contattarmi su micheledemeo-gmail-com.