<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-37227446</id><updated>2012-01-17T21:44:23.655+01:00</updated><title type='text'>the peaceful collision of computing and data analysis</title><subtitle type='html'>micheledemeo gmail com</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>44</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-37227446.post-3576223849707264364</id><published>2012-01-01T16:22:00.000+01:00</published><updated>2012-01-01T16:30:24.062+01:00</updated><title type='text'>Algoritmi per il campionamento da popolazioni finite: un'analisi mediante simulazioni Monte Carlo</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Inizio il nuovo anno con la condivisione delle slide della mia tesi di Ph.D.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Mediante simulazioni Monte Carlo,&amp;nbsp;ho testato il soddisfacimento di alcune proprietà (valide per costruzione) per i seguenti algoritmi di campionamento di tipo PPS (&lt;i&gt;probability proportional to size&lt;/i&gt;):&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif; font-size: x-small; text-align: justify;"&gt;Hanurav-Vijayan;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Rao-Sampford.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Ho effettuato l'analisi in tutti i software statistici che, al momento della realizzazione del mio lavoro di ricerca, mi risultavano essere gli unici a prevedere questi algoritmi: SAS, SPSS e R. In realtà, per l'algoritmo di Hanurav, ho provveduto alla scrittura del relativo codice in R, non essendo disponibile nelle library a me note.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;I risultati sono interessanti e riassunti &amp;nbsp;nelle seguenti slide:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div id="__ss_10750863" style="width: 425px;"&gt;&lt;span style="font-family: Verdana, sans-serif; font-size: x-small;"&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10750863" width="425"&gt;&lt;/iframe&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Spero di condividere al più presto il codice R di Hanurav-Vijayan in un package liberamente scaricabile.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-3576223849707264364?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/3576223849707264364/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=3576223849707264364' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/3576223849707264364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/3576223849707264364'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2012/01/lalgoritmo-di-hanurav-vijayan-unanalisi.html' title='Algoritmi per il campionamento da popolazioni finite: un&apos;analisi mediante simulazioni Monte Carlo'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-5995905000575928694</id><published>2011-12-29T12:37:00.003+01:00</published><updated>2011-12-29T15:01:31.414+01:00</updated><title type='text'>RExcel e rpart</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Nel &lt;a href="http://journal.r-project.org/archive/2011-2/2011-2_index.html"&gt;numero di Dicembre&lt;/a&gt; di "The R Journal" è presente (tra gli altri) un &lt;a href="http://journal.r-project.org/archive/2011-2/RJournal_2011-2_Baier~et~al.pdf"&gt;articolo&lt;/a&gt; inerente lo sviluppo di "applicazioni" mediante RExcel e R. Nello specifico, abbiamo preso come esempio la libreria &lt;a href="http://cran.r-project.org/web/packages/rpart/index.html"&gt;rpart&lt;/a&gt;, quindi gli Alberi di Classificazione, con un esempio di applicazione nel processo di approvazione di richiesta credito.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-5995905000575928694?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/5995905000575928694/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=5995905000575928694' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/5995905000575928694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/5995905000575928694'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2011/12/rexcel-e-rpart.html' title='RExcel e rpart'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-7726703945060233392</id><published>2011-09-27T17:40:00.000+01:00</published><updated>2011-09-27T17:42:07.398+01:00</updated><title type='text'>RStudio per un agevole uso di R</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Dopo un periodo di intenso utilizzo, posso concludere che RStudio sia &amp;nbsp;(... forse...) l'interfaccia più interessante per R (ovviamente, solo in base ad un mio personalissimo parere) . Attualmente, infatti, è divenuto uno strumento fondamentale che mi ha portato ad un utilizzo sempre più raro delle altre gui di cui ho sempre usufruito.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;In particolare, tra le tante, evidenzio la possibilità di importare un dataset &amp;nbsp;in R (in "stile" csv), in maniera molto agevole e senza scrivere codice ... esattamente come accade con i software commerciali.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Il tutto avviene così come nelle immagini in basso, ossia disponendo di un menu sul lato destro della "schermata" del software:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-NbegQ2EEIcU/ToH75YbPlCI/AAAAAAAAAL0/HXtj4SszXkE/s1600/f0.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="67" src="http://3.bp.blogspot.com/-NbegQ2EEIcU/ToH75YbPlCI/AAAAAAAAAL0/HXtj4SszXkE/s320/f0.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-A6PBsWDm3I4/ToH7-58BYJI/AAAAAAAAAL4/GyvQdRdU1Qo/s1600/f1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="270" src="http://3.bp.blogspot.com/-A6PBsWDm3I4/ToH7-58BYJI/AAAAAAAAAL4/GyvQdRdU1Qo/s320/f1.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Quindi, direi problemi risolti per il tanto noioso import di un csv!&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-7726703945060233392?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/7726703945060233392/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=7726703945060233392' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/7726703945060233392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/7726703945060233392'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2011/09/rstudio-per-un-agevole-uso-di-r.html' title='RStudio per un agevole uso di R'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-NbegQ2EEIcU/ToH75YbPlCI/AAAAAAAAAL0/HXtj4SszXkE/s72-c/f0.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-4706800923784241996</id><published>2011-06-05T17:57:00.000+01:00</published><updated>2011-06-05T17:57:37.261+01:00</updated><title type='text'>Rconsole: modificare le preferenze dell'interfaccia di R</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Con questo post tratto un aspetto veramente banale, ma che ho notato essere molto irritante per i newbie&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;(...e non solo...)&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;di questo linguaggio! Effettivamente, mi sento di dire che non è affatto intuitivo il settaggio delle preferenze della GUI, ma che in realtà e tutto molto semplice con qualche piccolo accorgimento.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Innanzitutto, è necessario sottolineare che quando si installa R si sceglie un linguaggio che NON è quello che verrà poi impostato di default nella GUI di R.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Infatti, durante la fase di installazione (ossia, dopo il doppio click sull'installer exe), si otterrà la seguente finestra:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-1Pck3dzfmGk/Teuw472LKxI/AAAAAAAAAKg/B0E9OUa8Z9M/s1600/1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="183" src="http://4.bp.blogspot.com/-1Pck3dzfmGk/Teuw472LKxI/AAAAAAAAAKg/B0E9OUa8Z9M/s320/1.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;in cui si sta scegliendo la lingua per le finestre di dialogo relative alla sola installazione (che dovrebbe essere un approccio tipico di quanto accade, in genere, in Windows) e non alla lingua che si osserverà dopo nell'interfaccia di R.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Se non si cambiano le preferenze in Rconsole (e, dopo, vedremo come!), la lingua che si potrà osservare nei (pochi) menu presenti nella GUI di R e nei messaggi di output, sarà quella prevista per la macchina (pc) su cui avete installato R. Se, ad esempio, lavorate con Windows 7 in italiano, dopo l'installazione di R noterete che i menu saranno proprio in italiano. In pratica, quindi, la lingua di default prevista in R è quella impostata sulla macchina.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;In genere, comunque, io consiglio sempre di impostare la lingua inglese. Oltre, infatti, ad essere una pratica sostanzialmente diffusa tra gli utenti (almeno in base a quanto riportato &lt;a href="http://cran.r-project.org/bin/windows/base/rw-FAQ.html#I-want-R-in-English_0021"&gt;qui&lt;/a&gt;), capiterà sicuramente di volere discutere di problemi (e soluzioni) con il vastissimo gruppo di utenti che, nel mondo, sostengo questo linguaggio (gran punto di forza di R!!!). In tal caso, sarete costretti a scrivere in inglese e, in particolare, a riportare i messaggi di errore che vi restituirà il software (ovviamente, nessuno ci vieta di cercare aiuto nei forum italiani, come &lt;a href="https://groups.google.com/group/rante?hl=it"&gt;questo&lt;/a&gt; e &lt;a href="http://statistica.ning.com/"&gt;quest'altro&lt;/a&gt;).&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Quindi, la modifica delle preferenze dell'interfaccia di R, tra cui la lingua, è possibile dal menu "Modifica&amp;gt;Preferenze interfaccia..." :&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-18hC5GCPUak/Teux9DBv0cI/AAAAAAAAAKk/nj2py_7WfyM/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="221" src="http://3.bp.blogspot.com/-18hC5GCPUak/Teux9DBv0cI/AAAAAAAAAKk/nj2py_7WfyM/s320/2.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Dopo il click si aprirà la seguente maschera che contiene tutte gli aspetti personalizzabili della GUI:&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-1ET-EZHKIwQ/Teu0VRE5ldI/AAAAAAAAAK4/ZhBzGSedLRQ/s1600/2.5.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="275" src="http://2.bp.blogspot.com/-1ET-EZHKIwQ/Teu0VRE5ldI/AAAAAAAAAK4/ZhBzGSedLRQ/s320/2.5.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;In particolare, &amp;nbsp;notiamo che per i singoli "aspetti" da modificare, nonostante stiamo lavorando con un menu in italiano, viene utilizzato il linguaggio inglese. Questo non è un errore, come spiegato meglio anche &lt;a href="http://cran.r-project.org/bin/windows/base/rw-FAQ.html#The-dialog-buttons-are-not-translated"&gt;qui&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Oltre alla lingua, un'altra caratteristica molto importante è l'impostazione di una single o&amp;nbsp;multiple document interface (SDI o&amp;nbsp;MDI, ma non mi dilungo sulle differenze perché si tratta di un &lt;a href="http://en.wikipedia.org/wiki/Single_document_interface"&gt;metodo di organizzazione delle GUI&lt;/a&gt; che non è specifico di R). Un tempo, se non ricordo male, il default era SDI, ma ora dovrebbe essere MDI (e credo che sia preferibile).&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;A questo punto, cambiare le lingua è immediato, in quanto basta impostare "EN" come di seguito:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-uxCcGl2RtL8/TeuyLY2wq2I/AAAAAAAAAKo/4arx2ctAmHo/s1600/3.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="275" src="http://3.bp.blogspot.com/-uxCcGl2RtL8/TeuyLY2wq2I/AAAAAAAAAKo/4arx2ctAmHo/s320/3.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;L'aspetto che confonde tutti è che, probabilmente, viene naturale cliccare su "ok" o su "Apply" , ma &amp;nbsp;purtroppo non è così. Si otterrebbe, infatti, il seguente messaggio:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-fDZGKpJWfpg/Teu07YVL5FI/AAAAAAAAAK8/1GUPIWof5bs/s1600/6.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="147" src="http://4.bp.blogspot.com/-fDZGKpJWfpg/Teu07YVL5FI/AAAAAAAAAK8/1GUPIWof5bs/s320/6.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Il giusto "metodo" consiste nel salvare le impostazioni, prima di vederle attive: si cliccherà, quindi, su "save", scegliendo di salvare il file "Rconsole" nella relativa directory "\etc" che trovate nella cartella in cui è installato R (sostituendo il file già esistente). Normalmente, in Windows 7, sarà la seguente: &amp;nbsp;"C:\Program Files\R\R-2.13.0\etc":&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-MuLC6klGsXE/TeuyNDowqPI/AAAAAAAAAKs/ld87V7s3PHg/s1600/4.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="195" src="http://4.bp.blogspot.com/-MuLC6klGsXE/TeuyNDowqPI/AAAAAAAAAKs/ld87V7s3PHg/s320/4.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;A questo punto, sarà sufficiente cliccare su "cancel" (anche su ok, è la stessa cosa, ma otterrete nuovamente il messaggio di informazione di cui sopra), chiudere R e riaprirlo per vedere modificate le preferenze della GUI.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;In pratica, quindi, Rconsole è un file di testo che contiene tutte le informazioni sulle preferenze di R. Se provate ad aprirlo con un editor di testo (blocco note), capirete che tutte le impostazioni possono essere modificate direttamente da qui.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;L'aver impostato "EN" nella maschera che si apre da "Modifica&amp;gt;Preferenze interfaccia...", è equivalente a scrivere "language=EN" nel file Rconsole:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-eDFrESLO-yw/TeuyN2kEy3I/AAAAAAAAAKw/sTTulEHNLTU/s1600/5.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-eDFrESLO-yw/TeuyN2kEy3I/AAAAAAAAAKw/sTTulEHNLTU/s320/5.PNG" width="319" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Infine, sottolineo che per modificare queste preferenze, dovrete agire da Amministratori. Se non sarà così, otterrete questo messaggio di errore, quando cercherete di salvare le nuove preferenze, cliccando su "save":&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-46_zGQSDuFI/Teuy7TGCeBI/AAAAAAAAAK0/YKM-h2N_6mY/s1600/4.5.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-46_zGQSDuFI/Teuy7TGCeBI/AAAAAAAAAK0/YKM-h2N_6mY/s1600/4.5.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Per aprire R come amministratori, quindi, tasto destro sull'icona di R e "esegui come amministratore".&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Infine, all'atto di salvare le preferenze, sarà fondamentale salvare il file Rconsole nella directory "\etc", appunto la directory di default per salvare le vostre preferenze della GUI!&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Concludo dicendo che, probabilmente, troverete più comodo aprire direttamente il file Rconsole con il blocco note e cambiare direttamente le vostre preferenze! Anche in questo caso, inoltre, sarà necessario agire da Amministratori!&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-4706800923784241996?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/4706800923784241996/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=4706800923784241996' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/4706800923784241996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/4706800923784241996'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2011/06/rconsole-modificare-le-preferenze.html' title='Rconsole: modificare le preferenze dell&apos;interfaccia di R'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-1Pck3dzfmGk/Teuw472LKxI/AAAAAAAAAKg/B0E9OUa8Z9M/s72-c/1.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-6686802990908411202</id><published>2010-12-17T17:19:00.003+01:00</published><updated>2010-12-19T11:05:23.064+01:00</updated><title type='text'>Installazione di RKWard su Windows</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;RKWard è un progetto molto curato in ambiente Linux, mentre è dichiaratamente un "progetto giovane" in ambiente Windows, con diversi bug legati soprattutto alle interfacce di selezione dei file e al download "interattivo" di file da internet (tipicamente, l'installazione di una libreria).&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Tra le GUI che conosco è quella che, forse, si presenta con la migliore "veste grafica".&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Le maschere di dialogo con cui si interagisce sono perfettamente analoghe a software come SPSS o STATISTICA, in cui si seleziona il dataset di input, le variabili e le varie opzioni in base all'output che si vuole ottenere (...con questo non voglio dire che si tratta di strumenti equivalenti...). Ad esempio, questo è il menu per le statistiche descrittive:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_W8s48295mkM/TQt7M1BUbxI/AAAAAAAAAJw/BXactVztUOE/s1600/RWWard-descStat.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="220" src="http://4.bp.blogspot.com/_W8s48295mkM/TQt7M1BUbxI/AAAAAAAAAJw/BXactVztUOE/s400/RWWard-descStat.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;L'output che si ottiene, inoltre, è analogo, ad esempio, a quanto si ottiene in SPSS, ossia un insieme di risultati in formato "report" (il tutto altamente personalizzabile).&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Per quanto riguarda l'installazione, che spesso è l'aspetto che blocca molti utenti (non molto esperti, in ambiente windows) nell'utilizzo di uno strumento software, nella &lt;a href="http://sourceforge.net/apps/mediawiki/rkward/index.php?title=RKWard_on_Windows#Standard_installation:_Complete_installation_bundle"&gt;pagina ufficiale&lt;/a&gt;&amp;nbsp;si suggerisce il download di un "semplice" file .exe, così come avviene, in generale, in Windows.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Diversamente da quanto suggerito in tali pagine, io consiglio l'installazione personalizzata (della quale, comunque, se ne parla sempre nella pagina ufficiale). Quanto riporto di seguito, quindi, è consigliabile per chi dispone già di una versione di R installata sulla propria macchina. Preciso, inoltre, che ci riferiamo a Windows - 32 bit (XP, vista o 7).&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Quindi, la prima cosa da fare è il download di:&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;a href="http://www.winkde.org/pub/kde/ports/win32/installer/kdewin-installer-gui-latest.exe"&gt;l'installer di KDE&lt;/a&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;a href="http://sourceforge.net/projects/rkward/files/Current_Stable_Releases/rkward-0.5.4.tar.gz/download"&gt;l'installer di RKWard&lt;/a&gt;&amp;nbsp;(se il link è errato, scegliete la versione più recente per KDE 4 in &lt;a href="http://sourceforge.net/apps/mediawiki/rkward/index.php?title=Download_RKWard"&gt;questa pagina&lt;/a&gt;).&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;Nello stesso ordine appena riportato, installate queste componenti.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;Per quanto riguarda KDE, scegliete le impostazioni riportate negli screenshot qui di seguito (che dovrebbero presentarsi nello stesso ordine):&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_W8s48295mkM/TQuAEvJjT_I/AAAAAAAAAJ0/-5cOqW2Tweg/s1600/RWWard1.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;img border="0" height="256" src="http://4.bp.blogspot.com/_W8s48295mkM/TQuAEvJjT_I/AAAAAAAAAJ0/-5cOqW2Tweg/s400/RWWard1.JPG" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;il complier mode è MinGW4&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_W8s48295mkM/TQuAhePXuvI/AAAAAAAAAJ4/iwAnAcZNNiQ/s1600/RWWard2.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;img border="0" height="255" src="http://4.bp.blogspot.com/_W8s48295mkM/TQuAhePXuvI/AAAAAAAAAJ4/iwAnAcZNNiQ/s400/RWWard2.JPG" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;qui ho scelto il server ftp.unina.it&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_W8s48295mkM/TQuAhvXXBOI/AAAAAAAAAJ8/zIHXaRQ7qqU/s1600/RWWard3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="258" src="http://1.bp.blogspot.com/_W8s48295mkM/TQuAhvXXBOI/AAAAAAAAAJ8/zIHXaRQ7qqU/s400/RWWard3.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_W8s48295mkM/TQuAiDXMY8I/AAAAAAAAAKA/e_-VcNUadmk/s1600/RWWard4.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;img border="0" height="255" src="http://4.bp.blogspot.com/_W8s48295mkM/TQuAiDXMY8I/AAAAAAAAAKA/e_-VcNUadmk/s400/RWWard4.JPG" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;scegliere kdebase-workspace&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;A questo punto verranno scaricate una serie di pacchetti necessari al funzionamento corretto e sarà necessario un po' di tempo. Evidenzio che la seguente procedura prevede un'installazione su una macchina connessa ad internet!&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Successivamente, si passerà all'installazione di RKWard. Si presenteranno due finestre in cui scegliere le directory di installazione di R e KDE (installato precedentemente). Se state usando questa "guida", immagino (e, in caso non sia così, consiglio) che abbiate una macchina con installazioni "standard" dei vari software che utilizzate. Quindi, la directory di riferimento sarà sempre quella in cui sono installati i programmi.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Ad esempio, nella maschera successiva ho selezionato la directory in cui è installato R:&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_W8s48295mkM/TQuAiqJBz3I/AAAAAAAAAKE/2n7vzZ7qzyE/s1600/RWWard5.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="285" src="http://1.bp.blogspot.com/_W8s48295mkM/TQuAiqJBz3I/AAAAAAAAAKE/2n7vzZ7qzyE/s400/RWWard5.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Analogamente, sceglierò quella in cui è installato KDE:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_W8s48295mkM/TQuD7pBwzaI/AAAAAAAAAKI/HGqVFAP3eEs/s1600/RWWard6.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="288" src="http://4.bp.blogspot.com/_W8s48295mkM/TQuD7pBwzaI/AAAAAAAAAKI/HGqVFAP3eEs/s400/RWWard6.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Al termine di questi step (se tutto è andato a buon fine) l'avvio di RKWard avviene diversamente da quanto siamo abituati con un generico "software" in Windows. Nella classica cartella "Programmi", infatti, non sarà disponibile la relativa directory.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;Per il suo avvio, infatti, sarà necessario cliccare sul file rkward.bat che, se avete effettuato l'installazione in linea con quanto precedentemente indicato, sarà presente nella directory "\KDE\bin". Ad esempio, nella mia installazione su Vista, questa è la directory:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_W8s48295mkM/TQuJ7Z5W60I/AAAAAAAAAKM/Xf12LzolauE/s1600/RWWard7.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="220" src="http://2.bp.blogspot.com/_W8s48295mkM/TQuJ7Z5W60I/AAAAAAAAAKM/Xf12LzolauE/s400/RWWard7.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: sans-serif; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: sans-serif; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-6686802990908411202?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/6686802990908411202/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=6686802990908411202' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/6686802990908411202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/6686802990908411202'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2010/12/installazione-di-rkward-su-windows.html' title='Installazione di RKWard su Windows'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_W8s48295mkM/TQt7M1BUbxI/AAAAAAAAAJw/BXactVztUOE/s72-c/RWWard-descStat.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-5872849552776842237</id><published>2010-11-29T14:44:00.002+01:00</published><updated>2010-11-29T14:45:14.515+01:00</updated><title type='text'>Statistica 10</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;Esce la 10! &lt;a href="http://www.statsoft.com/products/statistica-10-new-features/"&gt;Qui&lt;/a&gt; tutte le info.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-5872849552776842237?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/5872849552776842237/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=5872849552776842237' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/5872849552776842237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/5872849552776842237'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2010/11/statistica-10.html' title='Statistica 10'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-1404310972373325287</id><published>2010-09-20T15:03:00.009+01:00</published><updated>2010-09-21T13:35:09.119+01:00</updated><title type='text'>Importare in R le serie storiche di Yahoo! Finanza</title><content type='html'>&lt;div  style="text-align: justify; font-family: verdana;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;Ho notato non essere chiaro, ad alcuni utenti di R, la possibilità di importazione "diretta" delle Serie Storiche disponibili in Yahoo! Finanza. Con una sola riga di codice, quindi, è possibile effettuare l'importazione del dataset e, quindi, lavorare con l'analisi delle serie storiche.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;Dal sito è, in genere, disponibile il file csv relativo al titolo che ci interessa.  Ad esempio, &lt;a href="http://it.finance.yahoo.com/q/hp?s=%5EIXIC"&gt;qui&lt;/a&gt; dovrebbero essere disponibili le quotazioni storiche del NASDAQ. In fondo alla schermata, è possibile cliccare su "&lt;span style="font-style: italic;"&gt;Preleva i dati su foglio di calcolo&lt;/span&gt;" e salvare i dati in csv.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;Per effettuare l'importazione direttamente in R, è sufficiente eseguire le seguenti istruzioni:&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul  style="text-align: justify;font-family:verdana;"&gt;&lt;li style="font-family: verdana;font-family:verdana;" &gt;&lt;span style="font-size:85%;"&gt;invece di cliccare su "&lt;span style="font-style: italic;"&gt;Preleva i dati su foglio di calcolo&lt;/span&gt;", tasto destro &gt; copia indirizzo;&lt;/span&gt;&lt;/li&gt;&lt;li style="font-family: verdana;"&gt;&lt;span style="font-size:85%;"&gt;digitare in R l'istruzione riportata di seguito (nelle prime tre righe, si può notare l'indirizzo che ho copiato al passo precedente). &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: verdana;font-family:verdana;" &gt;Sucessivamente, in R sarà disponibile il data.frame "db" con i dati del NASDAQ.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;db&lt;-read.table("http://ichart.yahoo.com/table.csv?s=%5EIXIC&amp;amp;d=8&amp;amp;e=21&amp;amp;f=2010&amp;amp;g=d&amp;amp;a=1&amp;amp;b=5&amp;amp;c=1971&amp;amp;ignore=.csv",&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;dec=".",&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;sep=",",&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;header=T)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-1404310972373325287?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/1404310972373325287/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=1404310972373325287' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/1404310972373325287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/1404310972373325287'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2010/09/importare-in-r-le-serie-storiche-di.html' title='Importare in R le serie storiche di Yahoo! Finanza'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-7669148054547116331</id><published>2010-06-24T16:51:00.011+01:00</published><updated>2010-06-25T08:33:12.635+01:00</updated><title type='text'>Test F nel DOE per distribuzioni non normali</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;Chiunque si occupa di DOE (Design of Experiment), quindi di applicazioni della statistica in ambito industriale, si trova nella situazione di dover eseguire un test F per verificare la significatività dei &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-family:verdana;font-size:85%;"  &gt;trattamenti &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;e delle loro &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-family:verdana;font-size:85%;"  &gt;interazioni&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;. Parlando in un gergo più generale, non specifico della Statistica Industriale, tale analisi consiste (in genere) nell'esecuzione di una ANOVA, che sappiamo essere legata alle ipotesi di normalità e omoschedasticità.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;La deviazione dall'assunto di normalità viene gestita mediante analisi non parametriche, mediante trasformazioni delle variabili, oppure giustificando il tutto mediante la &lt;span style="font-style: italic;"&gt;robustezza &lt;/span&gt;del metodo allo scostamento da tale distribuzione&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;In realtà, un'importante giustificazione è riportata in &lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;span id="btAsinTitle" style=""&gt; &lt;span style="font-style: italic;"&gt;Design and  Analysis of Experiments, &lt;/span&gt;noto &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;testo di &lt;a href="http://www.eas.asu.edu/%7Emasmlab/montgomery/"&gt;Montgomery&lt;/a&gt;. Secondo quanto evidenziaato, infatti, basta pensare al test F in un contesto non parametrico e, più precisamente, basato sulla teoria dei &lt;/span&gt;&lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Resampling_%28statistics%29"&gt;&lt;span style="font-style: italic;font-family:verdana;font-size:85%;"  &gt;permutation test&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;Nell'ipotesi nulla di assenza di diversa influenza tra trattamenti, è possibile costruire l'insieme di tutte le &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-family:verdana;font-size:85%;"  &gt;possibili suddivisioni&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt; (senza ripetizione) degli N elementi in k gruppi, dove k è il numero di fattori, N il numero totale di misurazioni (N=n * k). Per ognuna di queste suddivisioni, possiamo calcolare la statistica F (rapporto tra MSE) e considerare come si distribuisce al variare di tutte le &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-family:verdana;font-size:85%;"  &gt;possibili suddivisioni&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;. A questo punto, secondo la metodologia che è alla base dei  &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-family:verdana;font-size:85%;"  &gt;permutation test, &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;è sufficiente verificare se il valore della F osservato mediante il nostro Disegno Fattoriale, è situato "troppo a destra" nella distribuzione ottenuta.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;Ebbene, così come riportato nel testo citato, si dimostra che la distrubuzione "esatta" della statistica F calcolata in questo modo, distribuzione detta &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-family:verdana;font-size:85%;"  &gt;exact randomization distribution&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;, è ben approssimata dalla distribuzione F di Snedecor, relativa all'ipotesi di normalità dei dati. Questo, in altri termini, significa che l'esecuzione di un Disegno Fattoriale mediante la F di Snedecor, quando non è valido l'assunto di normalità, può essere comunque visto come l'esecuzione di un test F non parametrico di tipo &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-family:verdana;font-size:85%;"  &gt;permutation test&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt; (continuando, quindi, a rimanere valido l'intero esperimento!)&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-7669148054547116331?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/7669148054547116331/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=7669148054547116331' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/7669148054547116331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/7669148054547116331'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2010/06/test-f-nel-doe-per-distribuzioni-non.html' title='Test F nel DOE per distribuzioni non normali'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-7460509564001170790</id><published>2010-05-20T13:48:00.015+01:00</published><updated>2010-05-20T15:40:10.529+01:00</updated><title type='text'>Grafici in PostgreSQL con R</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;Nel precedente post ho evidenziato le possibilità di integrazione di R in PostgreSQL, con un esempio sull'esecuzione di un test statistico per la normalità, direttamente nel db.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;In questo breve post, faccio un altro esempio per la creazione di un grafico mediante un'opportuna funzione. Anche in questo caso, il motore di creazione dei grafici è R, eseguito in background mediante il linguaggio PL/R. Le potenzialità di questo metodo di lavoro sono evidenti: in Postgres è  direttamente disponibile una vastissima gamma di grafici di alto livello.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;Ovviamente ciò non significa che, in seguito alla chiamata della funzione, verrà visualizzato il grafico a video. L'esecuzione della procedura, invece, andrà a creare un grafico (nel mio caso, un file jpeg) in un'opportuna cartella.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;Il codice per la creazione della funzione è il seguente e penso sia abbastanza immediato per gli utenti di R.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;br /&gt;&lt;div style="border: 1px dashed black; overflow-x: scroll; text-align: left; background-color: rgb(245, 245, 245);"&gt;&lt;span style="color: rgb(0, 0, 153);font-family:courier new;" &gt;CREATE OR REPLACE FUNCTION createGraph(tb text)&lt;br /&gt;RETURNS text AS&lt;br /&gt;'&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-family:courier new;" &gt; sql&lt;-paste("select * from", tb) &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-family:courier new;" &gt;rs&lt;-pg.spi.exec(sql) &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-family:courier new;" &gt;x&lt;-rs[,1] &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-family:courier new;" &gt;y&lt;-rs[,2]  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-family:courier new;" &gt;jpeg("graph.jpg")  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-family:courier new;" &gt;plot(x,y) &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-family:courier new;" &gt;dev.off()  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-family:courier new;" &gt;print("done")  &lt;/span&gt;&lt;br /&gt;'&lt;br /&gt;LANGUAGE 'plr';&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-family:courier new;" &gt; &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;L'utente dovrà successivamente scegliere un'opportuna tabella contenente dati da visualizzare in un grafico a due dimensioni. I dati saranno quelli contenuti in due specifici campi. Quindi, per esempio, la chiamata della funzione:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;br /&gt;&lt;div style="border: 1px dashed black; overflow-x: scroll; text-align: left; background-color: rgb(245, 245, 245);"&gt;&lt;span style="color: rgb(0, 0, 153);font-family:courier new;" &gt;SELECT createGraph('tbOrdini');&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;andrà a creare un file jpg, contenente il grafico che in R visualizzo con il comando plot(x,y). Sottolineo che la directory di default in cui viene salvato il file è la cartella '...\PostgreSQL\8.X\data'. Ovviamente, è possibile cambiare il percorso in cui salvare il file .jpg, specificandolo nel comando jpeg (utilizzato in PL/R), ma questo potrebbe comportare qualche problema agli utenti Vista, nel caso dell'eventuale assenza di permessi in scrittura.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Ovviamente, l'esempio è volutamente semplice, ma può essere personalizzato ed esteso a situazioni più complesse.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-7460509564001170790?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/7460509564001170790/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=7460509564001170790' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/7460509564001170790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/7460509564001170790'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2010/05/grafici-in-postgresql-con-r.html' title='Grafici in PostgreSQL con R'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-2471195090829417197</id><published>2010-03-05T16:36:00.024+01:00</published><updated>2010-12-28T12:15:11.031+01:00</updated><title type='text'>R in PostgreSQL</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;L'integrazione di R con i DBMS è un aspetto molto importante per la realizzazione di soluzioni analitiche in questo linguaggio. Se si lavora in ambito industriale, ad esempio, i dati saranno raccolti in un database. Quindi, sarà necessario sviluppare un'interfaccia "facile" al motore di calcolo e permettere all'utente di interrogare i dati, sia per estrarre informazioni "semplici" (in tal caso R dovrebbe essere superfluo), sia per applicare una qualche forma di sintesi. Se per quest'ultimo tipo di elaborazione, le funzioni di aggregazione previste nel db non fossero sufficienti, è possibile ricorrere ad R.&lt;/span&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;Una prima possibilità, sicuramente molto più diffusa, è quella di lavorare importando i dati in R ed eseguendo, direttamente in tale ambiente, le necessarie elaborazioni. Tale tipo di approccio, ad esempio, lo si realizza facilmente mediante il package &lt;a href="http://cran.r-project.org/web/packages/RODBC/index.html"&gt;RODBC&lt;/a&gt;.&lt;/span&gt; &lt;br /&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;Esiste tuttavia un'altra possibilità che, in base ad una mia personale sensazione, è poco conosciuta.&lt;/span&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;Nell'universo dei DBMS, esiste ed è molto diffuso &lt;a href="http://www.postgresql.org/"&gt;PostgreSQL&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;. Per tale tipo di database, è prevista la possibilità di utilizzare un particolare linguaggio procedurale, ossia &lt;a href="http://www.joeconway.com/plr/"&gt;PL/R&lt;/a&gt;, che permette di scrivere (ed utilizzare) direttamente in PostgreSQL, funzioni in linguaggio R &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;(in realtà esiste anche la possibilità di lavorare in R mediante &lt;/span&gt;&lt;a href="http://rpgsql.sourceforge.net/"&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;RPgSQL&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;, ma spero di dedicarci un post a parte)&lt;/span&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;. Quindi, saranno disponibili tutte le normali funzioni già previste in R, nelle varie librerie, così come sarà possibile sviluppare nuove funzioni di PostrgreSQL, utilizzando la sintassi di R.&lt;/span&gt; &lt;br /&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;Per l'utilizzo di tali modalità, ovviamente, è necessario avere una certa conoscenza di questo database, oltre che una certa familiarità con R. Per le problematiche di installazione (in particolare, in ambiente Windows) ed utilizzo, in generale, si rimanda ai siti:&lt;/span&gt; &lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;ul style="font-family: verdana;"&gt;&lt;li&gt;&lt;span style="font-size: 85%;"&gt;&lt;a href="http://www.postgresql.org/"&gt;PostgreSQL&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: 85%;"&gt;&lt;a href="http://www.joeconway.com/plr/"&gt;PL/R&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="font-family: verdana;"&gt;&lt;span style="font-size: 85%;"&gt;&lt;span id="ctl00_cphMain_BodyContent"&gt;&lt;span class="headertitle"&gt;&lt;a href="http://www.bostongis.com/PrinterFriendly.aspx?content_name=postgresql_plr_tut01"&gt;Up and Running with PL/R (PLR) in PostgreSQL: An almost Idiot's Guide&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;Oltre a fare questa segnalazione, quindi, intendo riportare degli esempi utili ad evidenziare le potenzialità di tale modalità di sviluppo.&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;Immaginiamo di progettare, in ambito industriale, un database che raccoglie dati sulla produzione di &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;semilavorati&lt;/span&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt; in un centro siderurgico, ad esempio dei tubi &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;di acciaio&lt;/span&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;. Periodicamente, a campione, viene misurata e registrata la circonferenza esatta di tali prodotti che, ovviamente, deve rispettare determinati livelli di tolleranza prestabiliti. In tale processo industriale, quindi, ci si aspetta un "errore" nella produzione, ossia degli scostamenti dalla circonferenza media prevista. Per controlloare questo aspetto, ad esempio, si cercherà di testare l'ipotesi di normalità dei dati, quindi la casualità degli scarti. Nell'esempio che propongo successivamente, quindi, vado proprio ad eseguire un test statistico sulla normalità dei dati direttamente nel database, &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;in maniera "nativa". A mio parere, questo è un risultato eccezionale! Non mi sembra esistano possibilità analoghe in altri DBMS!&lt;/span&gt; &lt;br /&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;Non è superfluo evidenziare che si tratta solo di un esempio! Nell'ambito del controllo statistico della qualità, il controllo della produzione è realizzato mediante processi più complessi.&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;Quindi, riepilogando, è sufficiente crare un'apposita funzione in PostgreSQL, mediante il seguente codice:&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: whitesmoke; border-bottom: black 1px dashed; border-left: black 1px dashed; border-right: black 1px dashed; border-top: black 1px dashed; overflow-x: scroll; text-align: left;"&gt;&lt;span style="color: #000099; font-family: courier new;"&gt;CREATE OR REPLACE FUNCTION testNormality(tb text, col text) &lt;br /&gt;RETURNS double precision AS &lt;br /&gt;' &lt;br /&gt;&lt;span style="color: #000099; font-family: courier new;"&gt;sql&amp;lt;-paste("select", col, "from", tb) &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000099; font-family: courier new;"&gt;rs&amp;lt;-pg.spi.exec(sql) &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000099; font-family: courier new;"&gt;shapiro.test(rs[,1])$p.value &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000099; font-family: courier new;"&gt;' &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000099; font-family: courier new;"&gt;LANGUAGE 'plr'; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;In generale, in PostgreSQL è possibile utilizzare diversi estensioni di linguaggio procedurale (come pgSQL, Python, Java ...), che rendono altamente personalizzabili le funzioni presenti nel database. Nello specifico, qui stiamo usando il linguaggio PL/R che, appunto, mi permette di scrivere in R. La documentazione ufficiale la trovate &lt;a href="http://www.joeconway.com/plr/doc/index.html"&gt;qui&lt;/a&gt;. In particolare, si noti che tra gli apici va riportato il codice R, che verrà eseguito alla chiamata della funzione.&lt;/span&gt; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;Nel nostro caso, quindi, sto definendo la funzione &lt;span style="font-family: courier new;"&gt;testNormality&lt;/span&gt; che prende in input due parametri di tipo testo: il nome di una tabella (&lt;span style="font-family: courier new;"&gt;tb)&lt;/span&gt; e il nome di un campo di quest'ultima (&lt;span style="font-family: courier new;"&gt;col)&lt;/span&gt;. Tali informazioni vengono "passate" ad R in cui creo la stringa &lt;span style="font-family: courier new;"&gt;sql &lt;/span&gt;che, appunto è la query in linguaggio SQL:&lt;/span&gt;&lt;span style="font-family: &amp;quot;; font-size: 10pt;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background-color: whitesmoke; border-bottom: black 1px dashed; border-left: black 1px dashed; border-right: black 1px dashed; border-top: black 1px dashed; overflow-x: scroll; text-align: left;"&gt;&lt;span style="color: #000099; font-family: courier new;"&gt;&lt;span style="font-size: 85%;"&gt;SELECT col FROM tb;&lt;/span&gt;&lt;span style="color: #000099; font-family: courier new; font-size: 85%;"&gt;&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-2471195090829417197?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/2471195090829417197/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=2471195090829417197' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/2471195090829417197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/2471195090829417197'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2010/03/r-in-postgresql.html' title='R in PostgreSQL'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-449828613449477166</id><published>2010-02-10T15:14:00.003+01:00</published><updated>2010-02-10T15:51:06.407+01:00</updated><title type='text'>Statistica e Scienza dell’Informazione: riflessioni di uno statistico</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;Non so quanti di voi siano informati del fatto che la SIS, Società Italiana di Statistica, dedica una sezione del sito per pubblicare il &lt;a href="http://sis-statistica.it/magazine/"&gt;Sis-Magazine&lt;/a&gt;, giornale online ricco di riflessioni. Io ho l'impressione che sia poco conosciuto nel mondo di quelli che chiamo "statistici applicati", ossia quelli che lavorano per aziende private, ovviamente in ambito statistico. E' evidente che vengono trattati anche argomenti interessanti per questo tipo di utenti.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;Ebbene, lo scorso mese è stato pubblicato un articolo (veramente bello) del prof. &lt;a href="http://lib.stat.cmu.edu/%7Eisabella/"&gt;Isabella Verdinelli&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;, ricco di riflessioni sulle similarità e differenze tra Metodi &lt;/span&gt;&lt;span style="font-style: italic;font-family:verdana;" &gt;Statistici &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;e Metodi di &lt;/span&gt;&lt;span style="font-style: italic;font-family:verdana;" &gt;Machine Learning&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;.  &lt;a href="http://sis-statistica.it/magazine/spip.php?article171"&gt;Questo&lt;/a&gt; il link, invito tutti a leggerlo!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;In merito a quanto scritto, io direi che uno statistico deve essere oggi anche un informatico: deve programmare, deve lavorare con i database, deve conoscere i sistemi operativi. Inoltre, non è pensabile oggi di proporre un  metodo statistico senza valutare la sua fattibiltà da un punto di vista computazionale. Lo sforzo importante, in base a quelle che sono state le mie esperienze lavorative, sarebbe quello di "orientare" maggiormente all'informatica i corsi di laurea in Statistica (...ammesso ovviamente che questo oggi non stia già accadendo...).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-449828613449477166?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/449828613449477166/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=449828613449477166' title='4 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/449828613449477166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/449828613449477166'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2010/02/statistica-e-scienza-dellinformazione.html' title='Statistica e Scienza dell’Informazione: riflessioni di uno statistico'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-6471079909735677611</id><published>2009-12-22T11:07:00.030+01:00</published><updated>2009-12-22T16:03:56.091+01:00</updated><title type='text'>SQL join in R</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;Consideriamo un classico esempio di 3 tabelle di un database, ognuna con i rispettivi campi:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;ol style="text-align: justify;"&gt;&lt;li&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;acquisti (codFornitore, numeroColli, codProdotto, codQualità)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;prodotti (codice, qualità, descrizione)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;fornitori (codice, nome)&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;I fornitori hanno un codice numerico ed un nome. Ogni prodotto ha un codice numerico ed uno di qualità e, per ognuna di queste combinazioni, c'è una descrizione. Infine, gli acquisti prevedono un codice di fornitori, uno di prodotto e di qualità, infine il numero colli acquistati.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;In una situazione di questo tipo, è comune eseguire le operazioni di "congiunzione" (appunto, join) tra tabelle. Per ogni comando SQL in un db, esiste un analogo in R mediante la funzione &lt;span style="font-family:courier new;"&gt;merge&lt;/span&gt;. Riporto di seguito degli esempi di comparazione dei due linguaggi, ipotizzando di disporre in R dei relativi dataframe&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;Visualizzo gli acquisti assieme al nome del fornitore.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;Inner join in SQL:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div  style="border: 1px dashed black; overflow-x: scroll; text-align: left; background-color: rgb(245, 245, 245);font-family:verdana;"&gt;&lt;nobr&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SELECT a.*,  b.nome&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;FROM acquisti AS a INNER JOIN fornitori AS b&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ON a.codFornitore = b.codice; &lt;/span&gt;&lt;/span&gt;&lt;/nobr&gt;&lt;/div&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;br /&gt;Inner join in R:&lt;br /&gt;&lt;/span&gt;&lt;div  style="border: 1px dashed black; overflow-x: scroll; text-align: left; background-color: rgb(245, 245, 245);font-family:verdana;"&gt;&lt;nobr&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&gt;merge(acquisti,fornitori,by.x="codFornitore",by.y="codice")&lt;/span&gt;&lt;/span&gt;&lt;/nobr&gt;&lt;/div&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;Visualizzo gli acquisti assieme a tutti i fornitori, compresi quelli dai quali non ho comprato prodotti.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;br /&gt;Right join in SQL:&lt;br /&gt;&lt;/span&gt;&lt;div  style="border: 1px dashed black; overflow-x: scroll; text-align: left; background-color: rgb(245, 245, 245);font-family:verdana;"&gt;&lt;nobr&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SELECT a.*,  b.nome&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;FROM Acquisti AS a  RIGHT JOIN  Fornitori AS b&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ON b.codice = a.codFornitore; &lt;/span&gt;&lt;/span&gt;&lt;/nobr&gt;&lt;/div&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;br /&gt;Right join in R:&lt;br /&gt;&lt;/span&gt;&lt;div  style="border: 1px dashed black; overflow-x: scroll; text-align: left; background-color: rgb(245, 245, 245);font-family:verdana;"&gt;&lt;nobr&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&gt;merge(acquisti,fornitori,by.x="codFornitore",by.y="codice",all.y=T) &lt;/span&gt;&lt;/span&gt;&lt;/nobr&gt;&lt;/div&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;Visualizzo gli acquisti assieme alla descrizione del prodotto (descrizione relativa al tipo di prodotto ed alla sua qualità), compresi i prodotti che non sono stati acquistati.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;Left join in SQL:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div  style="border: 1px dashed black; overflow-x: scroll; text-align: left; background-color: rgb(245, 245, 245);font-family:verdana;"&gt;&lt;nobr&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SELECT a.*, b.codFornitore, b.numeroColli&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;FROM Prodotti as a LEFT JOIN Acquisti as b&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ON (a.qualità = b.codQualità) AND (a.codice = b.codProdotto); &lt;/span&gt;&lt;/span&gt;&lt;/nobr&gt;&lt;/div&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;br /&gt;Left join in R:&lt;br /&gt;&lt;/span&gt;&lt;div  style="border: 1px dashed black; overflow-x: scroll; text-align: left; background-color: rgb(245, 245, 245);font-family:verdana;"&gt;&lt;nobr&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&gt;merge(prodotti,acquisti,by.x=c("codice","qualità"),by.y=c("codProdotto","codQualità"),all.x=T) &lt;/span&gt;&lt;/span&gt;&lt;/nobr&gt;&lt;/div&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;Infine, solo per completezza, riporto il codice di una full, ma in tal caso il risultato è analogo alla left.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;Full join in SQL:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div  style="border: 1px dashed black; overflow-x: scroll; text-align: left; background-color: rgb(245, 245, 245);font-family:verdana;"&gt;&lt;nobr&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SELECT a.*, b.codFornitore, b.numeroColli&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;FROM Prodotti as a FULL JOIN Acquisti as b&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ON (a.qualità = b.codQualità) AND (a.codice = b.codProdotto); &lt;/span&gt;&lt;/span&gt;&lt;/nobr&gt;&lt;/div&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;br /&gt;Full join in R:&lt;br /&gt;&lt;/span&gt;&lt;div  style="border: 1px dashed black; overflow-x: scroll; text-align: left; background-color: rgb(245, 245, 245);font-family:verdana;"&gt;&lt;nobr&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&gt;merge(prodotti,acquisti,by.x=c("codice","qualità"),by.y=c("codProdotto","codQualità"),all.x=T,all.y=T) &lt;/span&gt;&lt;/span&gt;&lt;/nobr&gt;&lt;/div&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;Riassumendo, quindi, la logica in R è molto intuitiva, alla pari dell'SQL.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;Con &lt;span style="font-family: courier new;"&gt;by.x&lt;/span&gt; e &lt;span style="font-family: courier new;"&gt;by.y&lt;/span&gt;, si determinano i campi su qui eseguire la join, ossia i campi da "legare". Mediante &lt;span style="font-family: courier new;"&gt;all.x&lt;/span&gt; e &lt;span style="font-family: courier new;"&gt;all.y&lt;/span&gt; si stabilisce se left, right o full join.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;Per tutte le varianti della funzione, si rimanda all'help di R.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-6471079909735677611?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/6471079909735677611/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=6471079909735677611' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/6471079909735677611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/6471079909735677611'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2009/12/sql-join-in-r.html' title='SQL join in R'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-5604146065529222981</id><published>2009-11-26T09:42:00.007+01:00</published><updated>2009-11-30T15:39:03.740+01:00</updated><title type='text'>Configurazione di natbib_ita in MikTex 2.8 per Vista</title><content type='html'>&lt;div  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;Mi arrivano parecchie richieste relative all'installazione su Vista di MikTex. Io ho effettuato alcune configurazioni e non ho avuto particolari problemi. Quindi, l'installazione rimane esattamente  quella descritta in &lt;a href="http://micheledemeo.blogspot.com/2009/01/installazione-di-latex-in-ambiente.html"&gt;questo mio post&lt;/a&gt;. Ovviamente, è necessario procedere con privilegi da amministratore!&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;Qualche "problemino" di configurazione riguarda invece natbib_ita, il pacchetto per la gestione della bibliografia in italiano. In MikTex (versione &gt;=2.7) sono già previsti alcuni file .bst che servono all'uso di bibtex, ma non quelli per lo "stile" italiano.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;Quindi, &lt;a href="http://www.guit.sssup.it/downloads/natbib_ita.zip"&gt;qui&lt;/a&gt; scaricate quello che vi serve, e noterete i seguenti file:&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ol  style="text-align: justify;font-family:verdana;"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;natbib.sty&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;plain_ita.bst&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;natbib_ita.bst&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;natbib.bst&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;Gli altri file servono per testare la configurazione, consiglio di leggerli attentamente!!!&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;A questo punto:&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ol  style="text-align: justify;font-family:verdana;"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;copiate il file &lt;/span&gt;&lt;span style="font-size:85%;"&gt;natbib.sty&lt;/span&gt;&lt;span style="font-size:85%;"&gt; in&lt;/span&gt;&lt;span style="font-size:85%;"&gt; "C:\Program Files\MiKTeX 2.8\tex\latex\natbib" (cancellando quindi il file con lo stesso nome che trovate in questa cartella);&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;copiate i rimaneti 3 file in "&lt;/span&gt;&lt;span style="font-size:85%;"&gt;C:\Program Files\MiKTeX 2.8\bibtex\bst\base";&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;tramite il "programma" miktex options (start -&gt; tutti i programmi -&gt; MikTex 2.8 -&gt; Maintenance -&gt; &lt;/span&gt;&lt;span style="font-size:85%;"&gt;Settings), eseguite il refresh, ossia, nella scheda General, cliccate su "Refresh FNDB" e su "Update Formats".&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;Nelle configurazioni eseguite non ho riscontrato nessun problema. Per maggiori informazioni c'è sempre il sito del &lt;a href="http://www.guit.sssup.it/"&gt;GUIT&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-5604146065529222981?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/5604146065529222981/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=5604146065529222981' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/5604146065529222981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/5604146065529222981'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2009/11/configurazione-di-natbibita-in-miktex.html' title='Configurazione di natbib_ita in MikTex 2.8 per Vista'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-8547983606991889270</id><published>2009-10-26T16:01:00.045+01:00</published><updated>2009-11-05T16:37:46.356+01:00</updated><title type='text'>Vectorizing computing in R</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;Un forte limite nell'utilizzo di R (in particolare per chi è già abituato a sviluppare in altri linguaggi di programmazione) è la lentezza dell'esecuzione di algoritmi basati sui classici "cicli di for". Eseguire un blocco di codice ripetutamente, infatti, è un'operazione concettualmente semplice che, quindi, ci permette di gestire facilmente la ripetizione di un insieme di "operazioni" (eventualmente effettuando il controllo di alcune condizioni con dei sempici "if"). Putroppo in R è fortemente sconsigliato questo approccio e per questo motivo si parla di vectorizing computing: trasformare il ciclo di for in operazioni tra vettori o matrici. Quindi la ripetizione di un blocco di codice controllato  da un contatore deve essere trasformato, ad esempio, in un prodotto di matrici. Questo metodo di sviluppo ha come fine quello di sfruttare al meglio il motore di calcolo di R, che è appunto ottimizzato per il calcolo matriciale. Ovviamente questo approccio può portare ad altro tipo di problemi, ossia alla gestione dei dati mediante matrici "troppo grandi" e difficilmente gestibili. L'esperienza comunque permette di arrivare alla soluzione megliore, e non credo si possa stilare un elenco di situazioni in cui preferire un approccio ad un altro: ogni soluzione va valutata singolarmente "sul campo" (...bella novità...).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Riporto di seguito alcuni esempi di for in R con le relative "vettorizzazioni".&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Creo un vettore p composto da 500.000 valori estratti da una normale standardizzata e, da questo, ne derivo il vettore formato dagli stessi 500.000 valori rapportati alla loro somma. Forse la vettorizzazione di questo esempio è veramente banale, ma serve a rendersi conto dei tempi di esecuzione.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Il relativo ciclo di for è semplicissimo:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="border: 1px dashed black; overflow: auto; background-color: rgb(245, 245, 245);"&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt; p&lt;-rnorm(500000)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt; s&lt;-sum(p)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt; for (i in 1:500000) p[i]&lt;-p[i]/s&lt;/span&gt; &lt;span style=";font-family:courier new;color:red;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;Per la valutazione dei tempi di esecuzione basta osservare il risultato di &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;system.time()&lt;/span&gt;,&lt;span style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;c&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;he esegue il codice in parentesi e riporta il tempo in secondi. Nel nostro caso ci limitiamo ad osservare il tempo&lt;/span&gt;&lt;/span&gt; &lt;span style=";font-family:courier new;font-size:85%;"  &gt;elapsed&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; &lt;/span&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;span style="font-size:85%;"&gt;(in blu è roportato l'output di R)&lt;/span&gt;:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px dashed black; background-color: rgb(245, 245, 245);"&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;system.time(for (i in 1:500000) p[i]&lt;-p[i]/s)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-family:courier new;" &gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="color: rgb(0, 0, 153);"&gt;user  system elapsed &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    3.2 0.0 3.2&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;color:red;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;La cosiddetta vettorizzazione è in tal caso banale (p/s), ma il risultato è notevole:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;div style="border: 1px dashed black; background-color: rgb(245, 245, 245);"&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="color: rgb(255, 0, 0);"&gt;system.time(p&lt;-p/s)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;user  system elapsed &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    0.0 0.02 0.02&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;color:red;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;In termini assoulti, un risparmio di 3.18 secondi può sembrare inutile, ma se si ragiona in termini relativi si osserva un risparmio del 99% del tempo di esecuzione, quindi molto importante &lt;/span&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;per calcoli più complessi!&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Prendiamo in esame un esempio in cui la vettorizzazione è meno immediata.&lt;br /&gt;Consideriamo un insieme di 1.000.000 di dati estratti da una normale standardizzata. Pensate ad esempio ad un tipica applicazione in ambito industriale, in cui si controlla che il prodotto rispetti determinate caratteristiche (peso, dimensioni, ecc. ...) e in cui ci si aspetti che gli "errori" nella produzione siano distribuiti normalmente. In elaborazioni effettuate in tale ambito, quindi, si dispone di un vettore  di questo tipo. I calcoli che svolgo di seguito, comunque, sono solo a titolo di esempio e non rappresentano alcun indicatore o controllo tipico della statistica industriale.&lt;br /&gt;Immaginiamo di avere i dati in forma matriciale: 1000 casi controllati (in riga) per 1000 caratteristiche (in colonna). Da questo dataset vogliamo ricavare una matrice di valori dicotomici, con 1 o 0 a seconda che il valore sia maggiore o uguale a zero (1), oppure negativo (0), rispettivamente.&lt;br /&gt;Anche in questo caso il codice da usare per un ciclo di for è immediato:&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px dashed black; overflow-x: scroll; background-color: rgb(245, 245, 245);"&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span&gt;&lt;span style="color:red;"&gt;N&lt;-1000&lt;/span&gt;&lt;br /&gt;&lt;span style="color:red;"&gt;mtx&lt;-matrix(rnorm(N*N),N,N)&lt;/span&gt;&lt;br /&gt;&lt;span style="color:red;"&gt;mtx2&lt;-matrix(0,N,N)  &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:red;"&gt;&lt;nobr&gt;system.time(for (i in 1:N) for (j in 1:N) if(mtx[i,j]&gt;=0) mtx2[i,j]&lt;-1) &lt;/nobr&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;user  system elapsed &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   6.20    0.00    6.52&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;color:red;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;La vettorizzazione si può effettuare mediante il comando &lt;span style="font-family:courier new;"&gt;ifelse(),&lt;/span&gt; che analizza ogni singolo elemento della matrice e esegue un'operazione a seconda che il test sia positivo o negativo (da notare che è differente da &lt;span style="font-family:courier new;"&gt;if() else&lt;/span&gt;):&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px dashed black; overflow: auto; background-color: rgb(245, 245, 245);"&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span&gt;&lt;span style="color:red;"&gt;system.time(mtx2&lt;-ifelse(mtx&gt;=0,1,0))&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;user  system elapsed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;0.90    0.05    0.98 &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;color:red;"  &gt;&lt;span style=";font-family:courier new;color:red;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Anche qui la riduzione del tempo di elaborazione è molto significativa: 85%.&lt;br /&gt;&lt;br /&gt;Riporto infine un esempio di vectorizing computing in cui si fa uso di matrici triangolari, molto utili in questo tipo di programmazione in R.&lt;br /&gt;Consideriamo sempre la matrice &lt;span style="font-family:courier new;"&gt;mtx&lt;/span&gt; di 1000 casi per 1000 caratteristiche. Per ogni singolo caso (vettore riga) vogliamo calcolare il rapporto tra l'(i)-esimo elemento e la somma dei successivi 1000-i elementi (quindi la somma dei casi da (i+1) a 1000). La soluzione con un for necessita lo scorrimento dell'intera matrice in questo semplice modo:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="border: 1px dashed black; overflow-x: scroll; text-align: left; background-color: rgb(245, 245, 245);"&gt; &lt;nobr&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;color:red;"  &gt;N&lt;-1000 &lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;color:red;"  &gt;mtx&lt;-matrix(rnorm(N*N),N,N)&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;color:red;"  &gt;mtx2&lt;-matrix(0,N,N)  &lt;/span&gt;&lt;span style=";font-family:courier new;color:red;"  &gt;system.time(for (i in 1:N) for (j in 1:(N-1))  mtx2[i,j]&lt;-mtx[i,j]/sum(mtx[i,(j+1):N]))   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-family:courier new;" &gt;  user  system elapsed  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-family:courier new;" &gt;    37.99    0.17   39.93  &lt;/span&gt;&lt;span style=";font-family:courier new;color:red;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/nobr&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Per la trasformazione in codice vettorizzato faccio uso del comando &lt;span style="font-family:courier new;"&gt;lower.tri()&lt;/span&gt;, che crea una matrice triangolare inferiore con valori TRUE e FALSE. Dal relativo help di R: &lt;/span&gt;"&lt;span style="font-family:verdana;"&gt;Returns a matrix of logicals the same size of a given matrix with entries TRUE in the lower or upper triangle&lt;/span&gt;".&lt;/span&gt; &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;Questo il codice:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px dashed black; text-align: left; background-color: rgb(245, 245, 245);"&gt; &lt;nobr&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;color:red;"  &gt;N&lt;-1000 &lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;color:red;"  &gt;mtx&lt;-matrix(rnorm(N*N),N,N)&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;color:red;"  &gt;mtx2&lt;-matrix(0,N,N)  &lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;color:red;"  &gt;system.time(mtx2&lt;-mtx/(mtx%*%(1*lower.tri(matrix(0,N,N)))))&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-family:courier new;" &gt;  user  system elapsed  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-family:courier new;" &gt;&lt;span style="color: rgb(0, 0, 153);font-family:courier new;" &gt;    2.55    0.00    2.67&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/nobr&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Ho praticamente sostituito lo scorrimento dei dati mediante for, con un prodotto matriciale in cui vi è un'opportuna matrice triangolare inferiore.  La riduzione del tempo di elaborazione è del 93%. &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-8547983606991889270?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/8547983606991889270/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=8547983606991889270' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/8547983606991889270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/8547983606991889270'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2009/10/vectorizing-computing-in-r.html' title='Vectorizing computing in R'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-3751506007642757262</id><published>2009-10-16T11:04:00.003+01:00</published><updated>2009-10-16T11:13:34.272+01:00</updated><title type='text'>The Elements of Statistical Learning : download del libro !</title><content type='html'>&lt;div style="text-align: justify; font-family: verdana;"&gt;&lt;span style="font-size:85%;"&gt;Ho scoperto (solo ora) che è possibile scaricare  il libro in oggetto!!!! Sicuramente da non perdere!!!&lt;br /&gt;Downoald &lt;a href="http://www-stat.stanford.edu/%7Ehastie/Papers/ESLII.pdf"&gt;qui&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-3751506007642757262?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/3751506007642757262/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=3751506007642757262' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/3751506007642757262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/3751506007642757262'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2009/10/elements-of-statistical-learning.html' title='The Elements of Statistical Learning : download del libro !'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-9004866944280575867</id><published>2009-08-25T14:42:00.023+01:00</published><updated>2010-12-28T12:24:38.705+01:00</updated><title type='text'>R in Word: SWord</title><content type='html'>&lt;div style="font-family: verdana; text-align: justify;"&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;Un rientro dalle ferie con una bella novità: SWord per implementare soluzioni analitiche direttamente in Word, utilizzando R come motore di analisi dati. Il sito ufficiale è sempre quello di &lt;a href="http://rcom.univie.ac.at/"&gt;Statconn&lt;/a&gt;.&lt;/span&gt;&lt;span style="font-size: 85%;"&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;Analogamente a quanto avviene in RExcel (come già trattato in miei altri post) è possibile direttamente in Word lavorare con R in modalità background o foreground. L'uso di tale package permette quindi di sviluppare un sistema di "reporting" mediante questo diffusissimo software di creazione di documenti. Si potrebbe pensare a "modelli" di documenti Word in cui riportare i risultati delle nostre analisi statistiche "al volo": l'utente apre il file .doc, clicca un tasto e visualizza i risultati delle eleborazioni in formato "testuale". Ovviamente, dietro le quinte ci sarà l'importazione di un dataset in R (ad esempio da un database esterno), l'elaborazione di un modello statistico e la visalizza&lt;/span&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;zione dei risultati nel testo!&lt;/span&gt;&lt;span style="font-size: 85%;"&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;Un'altra possibilità potrebbe essere l'utilizzo di SWord per creare dei documenti "interattivi" per illustrare il funzionamento di R. L'utente legge delle istruzioni e clicca un bottone per visulizzare ciò che avviene in R.&lt;/span&gt;&lt;span style="font-size: 85%;"&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;Riporto un esempio semplicissimo, rimandando al sito ufficiale per gli approfondimenti.&lt;/span&gt;&lt;span style="font-size: 85%;"&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;Come prima cosa, l'installazione: un semplice click sul file .exe che trovate &lt;a href="http://rcom.univie.ac.at/download.html"&gt;qui&lt;/a&gt;.&lt;/span&gt;&lt;span style="font-size: 85%;"&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;Sottolineo che l'uso in word di tale package si basa sui "Codici di campo", ossia dei "tag" molto utili per i quali si rimanda alla &lt;a href="http://office.microsoft.com/it-it/word/HA101004261040.aspx"&gt;documentazione ufficiale&lt;/a&gt;. Per tale motivo è importante accertarsi che sia impostata la visualizzazione di essi. In Word 2003 si possono seguire le seguenti istruzioni: Strumenti&amp;nbsp;&amp;gt; Opzioni &amp;gt; Visualizza &amp;gt; segno di spunta in corrispondenza di "Codici di campo". Consiglio anche di impostare "Ombreggiatura campo" a "Sempre".&lt;/span&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-9004866944280575867?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/9004866944280575867/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=9004866944280575867' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/9004866944280575867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/9004866944280575867'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2009/08/r-in-word-sword.html' title='R in Word: SWord'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-8190405588346828007</id><published>2009-06-23T14:24:00.008+01:00</published><updated>2009-10-27T09:50:21.543+01:00</updated><title type='text'>Prevedere il "brain drain" mediante un algoritmo</title><content type='html'>&lt;div  style="text-align: justify; font-family: verdana;font-family:trebuchet ms;"&gt;&lt;span style="font-size:100%;"&gt;Uso intensivo dei dati come guida alle decisioni umane, una filosofia comune ormai a molte realtà aziendali.&lt;br /&gt;Ovviamente google è un esempio vincente di uso di dati, e lo sviluppo di un modello per prevedere gli individui "più probabili" all'abbandono dell'azienda è un bel tentativo di previsione del comportamento umano!&lt;br /&gt;Non ho trovato comunicazioni ufficiali della Google Inc. in cui vengono spiegati i dettagli dell'algoritmo (... chissà se c'è di mezzo l'uso di R ...), ma &lt;a href="http://online.wsj.com/article/SB124269038041932531.html"&gt;qui&lt;/a&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt; trovate maggiori informazioni.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-8190405588346828007?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/8190405588346828007/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=8190405588346828007' title='3 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/8190405588346828007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/8190405588346828007'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2009/06/prevedere-il-brain-drain-mediante-un.html' title='Prevedere il &quot;brain drain&quot; mediante un algoritmo'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-3539282997344414277</id><published>2009-05-22T16:26:00.046+01:00</published><updated>2010-10-05T10:02:17.786+01:00</updated><title type='text'>Alberi di Classificazione in Excel</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;Il titolo&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt; del post è &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;veramente "forte", nel senso che sto dicendo che in Excel è possibile ricorrere ai famosi Alberi di Classificazione, più noti con il termine di CART: Classification and Regression Trees. In realtà c'è il solito trucchetto: il dataset è in Excel, ma le elaborazioni le fa R. La comunicazione tra i due strumenti,  come ampiamente ripetuto in questo blog, avviene mediante statconnDCOM.&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;Prima di tutto, quindi, è necessario avere sulla propria macchina i giusti &lt;span style="font-style: italic;"&gt;tools&lt;/span&gt;, come già descritto in questo mio &lt;a href="http://micheledemeo.blogspot.com/2009/04/le-novita-di-rdcom-statconndcom.html"&gt;precedente post&lt;/a&gt;. In realtà alla data in cui scrivo è disponbile &lt;a href="http://sunsite.univie.ac.at/rcom/download.html"&gt;RAndFriends&lt;/a&gt;, che fino a poco&lt;/span&gt;&lt;span style="font-size:85%;"&gt; tempo fa era disponibile solo in versione "light". Io direi quindi di installare tutto, evitando scelte personalizzate delle componenti . In genere, comunque, nelle applicazioni eseguite in XP non ho mai riscontrato problemi di installazione (come ad esempio installare solo &lt;span style="font-style: italic;"&gt;statconnDCOM&lt;/span&gt;).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Per quanto riguarda gli Alberi di Classificazione si fa riferimento a &lt;a href="http://www.amazon.com/Classification-Regression-Trees-Leo-Breiman/dp/0412048418#reader_0412048418"&gt;questa monografia&lt;/a&gt;, il cui progetto è coperto da copyright ed il cui software originale è distribuito dalla &lt;a href="http://www.salford-systems.com/cart.php"&gt;Salford System&lt;/a&gt;. In R è disponibile la libreria &lt;a href="http://cran.r-project.org/web/packages/rpart/index.html"&gt;rpart&lt;/a&gt;, il cui maintainer è Brian Ripley (che a sua volta ha "portato" in R il codice disponibile in SPLUS, vedi &lt;a href="http://mayoresearch.mayo.edu/mayo/research/biostat/splusfunctions.cfm"&gt;qui&lt;/a&gt; per maggiori info). In R quindi si parla di &lt;span style="font-style: italic;"&gt;Recursive partitioning and regression trees&lt;/span&gt;, e considerando l'autore dovremmo poter avere una certa fiducia per quanto riguarda l'affidabilità del codice!&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;La teoria che è alla base è abbastanza semplice da un punto di vista matematico, io infatti ho ritenuto molto scorrevole da lettura del libro di Friedman.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Per quanto riguarda lo sviluppo in Excel, direi che è praticamente semplicissimo, non dovendo fare altro che riportare in VBA il codice che si è testato direttamente in R. Nell'esempio seguente ho lavorato in modalità "Macro programming", ossia ricorrendo a RExcel.xla. Nell'&lt;a href="http://micheledemeo.blogspot.com/2008/02/usare-r-in-access.html"&gt;esercizio riportato in Access&lt;/a&gt;, invece, si è sviluppato in modalità "RDCOM Server". La prima, infatti, è possibile solo in Excel. Nessuno comunque ci vietava di fare ricorso anche qui in Excel all'oggetto &lt;span style="font-style: italic;"&gt;StatConnector&lt;/span&gt;. Su questa differenza, comunque, scriverò presto un post (nel frattempo, quello che c'è da sapere è sempre &lt;a href="http://sunsite.univie.ac.at/rcom/"&gt;qui&lt;/a&gt;!!!!!).&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Passiamo ora alla descrizione del dataset utilizzato per l'esempio.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Ho pensato di toccare un argomento molto attuale, ossia la previsione dello spam. Trattasi di un tipico esempio di classificazione di una variabile dicotomica sulla base di informazioni relative al testo dell'email. Quindi la variabile risposta assumerà valori 0 (non spam) o 1 (spam).&lt;br /&gt;Nel nostro dataset di esempio le variabile predittive sono semplicemente variabili di conteggio relative all presenza (in  %) di alcune parole. Potete scaricare i dati e tutte le informazioni direttamente &lt;a href="http://archive.ics.uci.edu/ml/datasets/Spambase"&gt;qui&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;Riporto di seguito il codice associato ad un pulsante di comando. Al suo click ai avvia R in back-end e si caricano in R i dati disponibili in Excel (in un foglio nominato "dbxls"). Successivamente avviene la stima del modello e la visualizzazione dell'albero di classificazione finale. Ovviamente quando si chiude il server (&lt;span style="font-style: italic;"&gt;Call Rinterface.StopRServer&lt;/span&gt;) si chiuderà anche la visualizzazione del grafico. Per evitare questo ho semplicemente messo un MsgBox che permette la visualizzazione dell'immagine fino al click su OK. Se volete riprovare ad eseguire il tutto dovete cambiare i nomi delle variabili p&lt;/span&gt;&lt;span style="font-size:85%;"&gt;redittive in v1, v2, ... , v57, mentre l'ultima sarà nominata "spam" (appunto la variabile dipendente).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Trattandosi di un esempio, non mi sono soffermato su vari aspetti della costruzione dell'Albero (quali previsione e pruning), ma la loro implementazione è semplice una volta capito il meccanismo.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;Riporto il codice VBA:&lt;/span&gt;&lt;/div&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;br /&gt;'*************************************&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;Private Sub cmd_Click()&lt;br /&gt;On Error GoTo errore&lt;br /&gt;Dim rng As Range&lt;br /&gt;Set rng = Worksheets("dbxls").Range("A1:BF4602")&lt;br /&gt;Call Rinterface.StartRServer&lt;br /&gt;Call Rinterface.RRun("library(rpart)")&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;br /&gt;Call Rinterface.PutDataFrame("db", rng)&lt;br /&gt;Call Rinterface.RRun _&lt;br /&gt;("db&lt;-cbind(db[,1:57],spam=as.factor(db[,58]))") Call Rinterface.RRun("fit&lt;-rpart(spam~.-spam, data=db)") Call Rinterface.RRun("plot(fit)") Call Rinterface.RRun("text(fit)") &lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;MsgBox _&lt;br /&gt;"Cliccando ok procedi con la chiusura di RServer"&lt;br /&gt;Call Rinterface.StopRServer&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;Exit Sub&lt;br /&gt;errore:&lt;br /&gt;Call Rinterface.StopRServer&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;End Sub&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;'*************************************&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div  style="text-align: justify;font-family:verdana;"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;La bellezza di t&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;ale metodo sta prima di tutto nell'immediatezza del grafico. Come potete vedere, facendo "cadere" un dato attraverso l'albero si arriva immediatamente alla soluzione:&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;ol&gt;&lt;li  style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;v53 è minore di 0.05? Sì, &lt;span style=""&gt;allora vai a destra dell'albero.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;v25 è &gt;= 0.4? Sì, allora vai a destra dell'albero. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;spam=1 &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;quindi la previsione più probabile è che l'email in questione sia spam! Una p&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;iccola curiosità: in tali dati la variabile più significativa (quella che determina lo split più discriminante) è la v53, ossia la presenza in percentuale del carattere dollaro: "$". Se tale percentuale supera il 5.5% si pas&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;sa ad analizzare la v25, ossia la presenza della parola "hp". Se quest'ultima è a sua volta presente con una percentuale maggiore o uguale al 40% allora l'email è considerata spam. Sicuramente più interessante (in quanto meno scontata) è l'analisi dell'albero a sinistra del primo split:&lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;v53: &lt;/span&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;percentage of character "$"&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;v25: percentage of word "hp"&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;v7: percentage of word "remove"&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;v52: percentage of character "!"&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;v57: sum of length of uninterrupted sequences of capital letters&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;v16: &lt;/span&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;percentage of word "&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;free".&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;Infine una piccola considerazione.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;La "facilità" di cui parlo sempre per l'uso di R ed Excel (o Access) è sempre legata ad una certa padronanza di R e di VBA, ovviamente! Nello stesso tempo è necessaria una certa conoscenza teorica del metodo che si andrà ad utilizzare. Inoltre l'uso contemporaneo di Excel/Access ed R è da me pensato per un'implementazione (facile) di modelli statistici di analisi e previsione da parte di uno statistico che lavora per utente finale "non esperto" (e che quindi vuole una soluzione finale del tipo "click and go" :-) .&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_W8s48295mkM/ShwL9aSWyrI/AAAAAAAAAG8/mLGUR63-sQw/s1600-h/ac.bmp"&gt;&lt;img style="cursor: pointer; width: 353px; height: 364px;" src="http://2.bp.blogspot.com/_W8s48295mkM/ShwL9aSWyrI/AAAAAAAAAG8/mLGUR63-sQw/s400/ac.bmp" alt="" id="BLOGGER_PHOTO_ID_5340156407810804402" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-3539282997344414277?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/3539282997344414277/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=3539282997344414277' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/3539282997344414277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/3539282997344414277'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2009/05/alberi-di-classificazione-in-excel.html' title='Alberi di Classificazione in Excel'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_W8s48295mkM/ShwL9aSWyrI/AAAAAAAAAG8/mLGUR63-sQw/s72-c/ac.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-8372035568011679857</id><published>2009-04-28T16:31:00.008+01:00</published><updated>2009-04-28T17:10:14.053+01:00</updated><title type='text'>OLAP e Statistical Databases: similarità nella terminologia</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;Veramente interessante &lt;a href="https://eprints.kfupm.edu.sa/53945/1/53945.pdf"&gt;questo articolo&lt;/a&gt; di Arie Shoshani sulle similarità (e differenze) esistenti tra le  terminologie tipiche della Statistica, da un lato, e del Data Mining &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;, dall'altro &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;(...quest'ultimo inteso in senso molto generale...)&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;. Anche se di una decina di anni fa, l'articolo è sicuramente attuale per chi lavora in ambito "analitico". Chi infatti ha una formazione "statistica" e si trova a lavorare con i database, rifletterà sicuramente sulle analogie esistenti tra i termini normalmente utilizzati nei testi di Statistica e quelli molto utilizzati dai produttori di software per il Data Mining e la Business Intelligence. L'esempio più evidente è l'analogia tra &lt;span style="font-style: italic;"&gt;multidimensional space&lt;/span&gt; e &lt;span style="font-style: italic;"&gt;data cube&lt;/span&gt;. Direi che di grande significatività è la tabella dell'articolo sulle corrispondenze tra le due differenti terminologie:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_W8s48295mkM/Sfcne-iIe-I/AAAAAAAAAGc/1QKIFR2xVEo/s1600-h/f12.bmp"&gt;&lt;img style="cursor: pointer; width: 306px; height: 196px;" src="http://1.bp.blogspot.com/_W8s48295mkM/Sfcne-iIe-I/AAAAAAAAAGc/1QKIFR2xVEo/s320/f12.bmp" alt="" id="BLOGGER_PHOTO_ID_5329772097151990754" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-8372035568011679857?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/8372035568011679857/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=8372035568011679857' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/8372035568011679857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/8372035568011679857'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2009/04/olap-e-statistical-databases-similarita.html' title='OLAP e Statistical Databases: similarità nella terminologia'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_W8s48295mkM/Sfcne-iIe-I/AAAAAAAAAGc/1QKIFR2xVEo/s72-c/f12.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-4909155795067881911</id><published>2009-04-02T16:11:00.003+01:00</published><updated>2009-04-02T16:35:45.448+01:00</updated><title type='text'>Le novità di R(D)COM: statconnDCOM</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Da un po' aspettavo questo aggiornamento e devo dire che le cose sono cambiate abbastanza! Non solo è cambiato il sito, ma anche le modalità di installazione, configurazione e download. Diventa anche più evidente la relazione tra il progetto &lt;a href="http://rcom.univie.ac.at/"&gt;rcom&lt;/a&gt; e la &lt;a href="http://www.statconn.com/"&gt;statconn&lt;/a&gt; di Thomas Baier ed Erich Neuwirth (e quindi i relativi corsi di formazione).&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;La novità più evidente è la possibilità di scaricare &lt;a href="http://rcom.univie.ac.at/download/RAndFriends.distro/RAndFriendsLightSetup2081V3.0-11-1.exe"&gt;RAndFriendsLight&lt;/a&gt;, ossia un pacchetto che contemporaneamente installa e configura tutto il necessario:&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;R 2.8.1&lt;br /&gt;rscproxy 1.0-12&lt;br /&gt;rcom 2.xx&lt;br /&gt;RExcel 3.0-11 .&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Credo comunque che la situazione più frequente sia quella in cui lo sviluppatore disponga già di R sulla propria macchina. In tale caso (considerando che è obbligatoria una versione &gt;= 2.7.2) sarà necessario optare per le altre modalità indicate nell'area &lt;/span&gt;&lt;a href="http://rcom.univie.ac.at/download.html"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;downolad&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;La procedura di configurazione, comunque, è chiaramente descritta &lt;/span&gt;&lt;a href="http://learnserver.csd.univie.ac.at/rcomwiki/doku.php?id=how_to_install"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;qui&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;. &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;Ovviamente con questa nuova struttura del progetto si sottolinea (giustamente!!!) che la redistribuzione del prodotto in altre soluzioni necessità di una licenza commerciale...&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-4909155795067881911?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/4909155795067881911/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=4909155795067881911' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/4909155795067881911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/4909155795067881911'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2009/04/le-novita-di-rdcom-statconndcom.html' title='Le novità di R(D)COM: statconnDCOM'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-4621331128876623802</id><published>2009-03-24T09:30:00.003+01:00</published><updated>2009-03-24T10:49:57.891+01:00</updated><title type='text'>I package "orfani" di R</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Mi son sempre chiesto quale fosse la procedura adottata dal team di R nel caso in cui il &lt;em&gt;maintainer&lt;/em&gt; di una libreria si rendesse irreperibile o non fosse più disposto al relativo "sviluppo".  Ovviamente &lt;/span&gt;&lt;a href="http://cran.r-project.org/src/contrib/Orphaned/README"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;la risposta &lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;è sul sito del CRAN: semplicemente il pacchetto continuerà ad essere disponibile fin quando passerà il test &lt;&lt;&lt;a href="http://cran.r-project.org/doc/manuals/R-exts.pdf"&gt;R CMD check&lt;/a&gt;&gt;&gt;. Ora che scrivo ve ne sono &lt;/span&gt;&lt;a href="http://cran.r-project.org/src/contrib/Orphaned/PACKAGES.csv"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;57&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt; di librerie &lt;em&gt;orphaned&lt;/em&gt;, quindi effettivamente si corre un rischio (...a mio parere minimo...) di ritrovarsi senza il pacchetto sul quale si era investito tempo e denaro...&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-4621331128876623802?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/4621331128876623802/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=4621331128876623802' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/4621331128876623802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/4621331128876623802'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2009/03/i-package-orfani-di-r.html' title='I package &quot;orfani&quot; di R'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-5926867067764670902</id><published>2009-02-27T10:11:00.021+01:00</published><updated>2009-09-03T09:59:25.363+01:00</updated><title type='text'>Numeri pseudo-casuali e software statistici</title><content type='html'>&lt;div align="justify"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;La generazione di numeri pseudo-casuali è un argomento di fondamentale importanza per le applicazioni in statistica. La "bontà" dell'algoritmo utilizzato in un software è quindi decisivo per la validità delle simulazioni eseguite mediante esso. In questo breve post intendo soffermermi sugli algoritmi impementati in R, SAS ed SPSS.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;L'argomento è stato trattato ampiamente dagli studiosi e continua ad attirare l'attenzione di statistici ed informatici (...ammesso che in tale ambito sia possibile fare questa distinzione tra le due discipline...), ed ovviamente gli sviluppatori dei software sopra citati non possono che seguire gli sviluppi della scienza.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;I numeri peseudo-casuali sono chiamati in tale modo appunto perché sono "deterministici" ma "sembrano" casuali. Sono generati da un algoritmo implementato in un calcolatore (quindi deterministisco) ma soddisfano una serie di proprietà che li fanno "sembrare" casuali per gli scopi prefissati, quindi per la simulazione di un qualche fenomeno. L'algoritmo più famoso è il Generatore Lineare Congruente (Linear Congruential Generators) riassunto dalla seguente &lt;em&gt;funzione di trasferimento&lt;/em&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;em&gt;f(x) = (ax + c) mod m&lt;/em&gt; .&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;em&gt;mod &lt;/em&gt;è la funzione che fornisce il resto della divisione intera, ossia:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;em&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;x mod y = y ( x/ y - [x/y] )&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;dove &lt;em&gt;[h]&lt;/em&gt; è la parte intera inferiore di &lt;em&gt;h. &lt;/em&gt;Quindi ad esempio 11 mod 3 = 3 * (11/3 - [11/3]) = 3*(3.6667 - 3) = 2.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;Qundi si fissano &lt;em&gt;a&lt;/em&gt;, &lt;em&gt;c&lt;/em&gt; ed &lt;em&gt;m, &lt;/em&gt;si parte da un valore inziale &lt;em&gt;X_0&lt;/em&gt; e si ottiene &lt;em&gt;X_1 = f(X_0) &lt;/em&gt;. A questo punto si genererà il numero pseudo-casuale (in [0, 1[ ) mediante una &lt;em&gt;funzione output&lt;/em&gt; (la più semplice è &lt;em&gt;X_j /m)&lt;/em&gt;. La &lt;em&gt;funzione di trasferimento&lt;/em&gt; più semplice e più conosciuta è invece quella di Park-Miller, in cui si impone semplicemente&lt;em&gt; c=0&lt;/em&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;Per una trattazione teorica molto chiara ed esaustiva si legga &lt;/span&gt;&lt;a href="http://cran.r-project.org/web/packages/randtoolbox/vignettes/randtoolbox.pdf"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;qui&lt;/span&gt;&lt;/a&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;La tipologia di algoritmo appena citato è stato nel tempo criticato e praticamente sostituito dal generatore di Mersenne-Twister (M-T). &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;Ovviamente, poiché R è sempre "avanti" :-) , quest'ultimo è l'algoritmo di default già da tempo, mentre gli altri software sono stati aggiornati da un po'.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;In SAS infatti, fino alla versione 9.0, l'unico algoritmo disponibile era il Generatore Lineare Congruente nella versione di Park-Miller con i seguenti parametri:&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;em&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;c=0&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;em&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;a=397204094&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;em&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;m=2^31-1 .&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;Solo dalla 9.1 è finalmente disponibile anche la funzione RAND che appunto si basa sull'algoritmo di M-T!!!! (chi vuole approfondire può leggere &lt;/span&gt;&lt;a href="http://www.sascommunity.org/wiki/How_the_SAS_Random_Number_Generators_Work"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;qui&lt;/span&gt;&lt;/a&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;).&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;Mi dilungo sul SAS perché trovo molto macchinoso il procedimento di gestione delle sequenze dei numeri casuali. Utilizzando la funzione RANUNI(seed) in un datastep, cambiare il seed (ossia il valore di x_0 nel generatore) non avrà influenza sulla sequenza di numeri casuali poiché l'estrazione avverrà sempre dallo stesso &lt;em&gt;stream (&lt;/em&gt;ossia flusso, ma in inglese fa più figo :-) ).&lt;em&gt; &lt;/em&gt;Per avere un controllo della sequenza sarà necessario ricorrere a CALL RUNUNI(seed) dove il seed deve essere una variabile e non una costante.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;Si provi ad eseguire il seguente codice per capire la distinzione:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:georgia;font-size:85%;"  &gt;&lt;strong&gt;data test;&lt;br /&gt;do i=1 to 10;&lt;br /&gt;x = RANUNI(1);&lt;br /&gt;output;&lt;br /&gt;end;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:georgia;font-size:85%;"  &gt;&lt;strong&gt;run; &lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=";font-family:georgia;font-size:85%;"  &gt;&lt;strong style="font-family: georgia;"&gt;&lt;/strong&gt;&lt;div align="justify"&gt;&lt;strong style="font-family: georgia;"&gt;&lt;br /&gt;data test_i;&lt;br /&gt;do i=1 to 10;&lt;br /&gt;x = RANUNI(i);&lt;br /&gt;output;&lt;br /&gt;end;&lt;br /&gt;run;&lt;/strong&gt;&lt;strong&gt;&lt;br /&gt;&lt;br /&gt;data test_call;&lt;br /&gt;do i=1 to 1;&lt;br /&gt;call RANUNI(i,x); /*con ranuni(1,x) va in errore*/&lt;br /&gt;output;&lt;br /&gt;end;&lt;br /&gt;run;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: normal;font-family:verdana;" &gt;Per quanto riguarda infine l'SPSS, si faccia riferimento al menu " Trasforma / Generatori numeri casuali " per scoprire il tipo impostato. Consiglio ovviamente di utilizzare il generatore di Mersenne-Twister con inizializzazione casuale (ossia derivata dall'orologio di sistema). Più semplice forse farlo direttamente aprendo un file di sintassi .sps e settando mediante codice:&lt;br /&gt;SET RNG=MT MTINDEX=RANDOM.&lt;/span&gt;&lt;/strong&gt;&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 11"&gt;&lt;meta name="Originator" content="Microsoft Word 11"&gt;&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CIMPOST%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:hyphenationzone&gt;14&lt;/w:HyphenationZone&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;  &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" latentstylecount="156"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:Georgia; 	panose-1:2 4 5 2 5 4 5 2 3 3; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:647 0 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:""; 	margin:0cm; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-fareast-font-family:"Times New Roman";} @page Section1 	{size:612.0pt 792.0pt; 	margin:70.85pt 2.0cm 2.0cm 2.0cm; 	mso-header-margin:36.0pt; 	mso-footer-margin:36.0pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Tabella normale"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman"; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;} &lt;/style&gt; &lt;![endif]--&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-size:10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:hyphenationzone&gt;14&lt;/w:HyphenationZone&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;  &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" latentstylecount="156"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:Georgia; 	panose-1:2 4 5 2 5 4 5 2 3 3; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:647 0 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:""; 	margin:0cm; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-fareast-font-family:"Times New Roman";} @page Section1 	{size:612.0pt 792.0pt; 	margin:70.85pt 2.0cm 2.0cm 2.0cm; 	mso-header-margin:36.0pt; 	mso-footer-margin:36.0pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --&gt; &lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Tabella normale"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman"; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;} &lt;/style&gt; &lt;![endif]--&gt;&lt;strong face="verdana"&gt;&lt;/strong&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:hyphenationzone&gt;14&lt;/w:HyphenationZone&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;  &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" latentstylecount="156"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:Georgia; 	panose-1:2 4 5 2 5 4 5 2 3 3; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:647 0 0 0 159 0;} @font-face 	{font-family:Verdana; 	panose-1:2 11 6 4 3 5 4 4 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:536871559 0 0 0 415 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:""; 	margin:0cm; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-fareast-font-family:"Times New Roman";} @page Section1 	{size:612.0pt 792.0pt; 	margin:70.85pt 2.0cm 2.0cm 2.0cm; 	mso-header-margin:36.0pt; 	mso-footer-margin:36.0pt; 	mso-paper-source:0;} div.Section1 	{page:Se&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Tabella normale"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman"; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;} &lt;/style&gt; &lt;![endif]--&gt;&lt;strong&gt;&lt;/strong&gt;&lt;span style=";font-family:georgia;font-size:85%;"  &gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-5926867067764670902?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/5926867067764670902/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=5926867067764670902' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/5926867067764670902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/5926867067764670902'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2009/02/numeri-pseudo-casuali-e-software.html' title='Numeri pseudo-casuali e software statistici'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-8445182221362554551</id><published>2009-01-30T16:48:00.006+01:00</published><updated>2009-04-08T17:01:23.791+01:00</updated><title type='text'>Licenze commerciali di R che spuntano come funghi...</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Mentre un enorme gruppo di sviluppatori, più o meno volontari, garantisce lo sviluppo del software statistico più aggiornato del mondo, c'è chi pensa (giustamente) di fornire licenze commerciali di R che dovrebbero garantire un maggiore supporto ed una migliore funzionalità (altrimenti non resisterebbero molto sul mercato).&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Queste sono quelle che conosco, ma solo di nome:&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;a href="http://www.xlsolutions-corp.com/"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;R Plus&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;a href="http://www.revolution-computing.com/products/revolution-r.php"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;REvolution R&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;a href="http://random-technologies-llc.com/products/RStat/rstat"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;RStat&lt;/span&gt;&lt;/a&gt; &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;La mia paura è che gli sviluppatori di RDCOM seguano prima o poi una strada simile ... e diciamo pure che seguendo i relativi dibattiti nei newsgroup si comincia a respirare quest'aria...&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-8445182221362554551?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/8445182221362554551/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=8445182221362554551' title='3 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/8445182221362554551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/8445182221362554551'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2009/01/licenze-commerciali-di-r-che-spuntano.html' title='Licenze commerciali di R che spuntano come funghi...'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-8727530146870427148</id><published>2009-01-07T15:58:00.018+01:00</published><updated>2011-12-01T15:48:08.328+01:00</updated><title type='text'>Installazione di Latex in ambiente Windows</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;L'utilizzo di Latex per chi lavora in ambito statistico è sicuramente consigliato, soprattutto per evitare gli incovenienti dell'uso di Equation Editor in Word. La qualità "grafica" di un testo scritto in Latex è inoltre sorprendente, a patto di un piccolissimo sforzo iniziale per l'apprendimento. Ovviamente anche l'uso di Word a livello professionale (che non significa semplicemente cliccare su di un file .doc e poi scriverci sopra!) necessita di molta pratica e di approfondimenti. Quindi un po' di studio di Latex potrebbe davvero valerne la pena.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;Come indicato nel titolo, faccio riferimento a Windows (così come in tutto il resto del blog). Le installazioni che ho eseguito fino ad ora sono avvenute tutte in XP, ma come sempre immagino che con pochi accorgimenti si possa facilmente generalizzare ad altre versioni.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;Nell'illustrazione dei diversi step non mi soffermo sul significato delle diverse "componenti", un po' perché non ne ho le capacità e un po' perché esiste molto materiale in rete (il miglior punto di partenza e anche di arrivo è sicuramente il &lt;/span&gt;&lt;a href="http://www.guit.sssup.it/installazione/"&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;sito del GuIT&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;Quindi di seguito riporto dei consigli veloci per l'installazione di tutto, mentre vi consiglio di leggere &lt;/span&gt;&lt;a href="http://www.lorenzopantieri.net/LaTeX_files/ArteLaTeX.pdf"&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;questo documento&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;.&lt;/span&gt; &lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;installare &lt;a href="http://miktex.org/"&gt;MikTex&lt;/a&gt;.&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;installare &lt;a href="http://www.texniccenter.org/"&gt;TEXnicCenter&lt;/a&gt;.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family: Verdana; font-size: 85%;"&gt;installare &lt;a href="http://pages.cs.wisc.edu/~ghost/gsview/"&gt;GSView&lt;/a&gt;.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family: Verdana; font-size: 85%;"&gt;installare &lt;a href="http://pages.cs.wisc.edu/~ghost/"&gt;Ghostscript&lt;/a&gt;.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-family: Verdana; font-size: 85%;"&gt;Ora dovrebbe essere tutto pronto. Si riavvia il pc, si apre TEXnicCenter e partono alcuni messaggi che chiedono di indicare una directory. Trovate la risposta alle vostre domande in questo video:&lt;/span&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/-h8Oi1oCTQg&amp;amp;hl=it&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;br /&gt;&lt;embed src="http://www.youtube.com/v/-h8Oi1oCTQg&amp;amp;hl=it&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-8727530146870427148?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/8727530146870427148/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=8727530146870427148' title='10 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/8727530146870427148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/8727530146870427148'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2009/01/installazione-di-latex-in-ambiente.html' title='Installazione di Latex in ambiente Windows'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-3896560410829470643</id><published>2008-11-28T11:24:00.003+01:00</published><updated>2008-11-28T11:33:10.748+01:00</updated><title type='text'>Nona Conferenza Nazionale di Statistica</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Il prossimo 15 e 16 Dicembre si ripeterà a Roma l'appuntamento biennale della Conferenza Nazionale di Statistica. Io ci sono stato nel 2006 e credo ci andrò anche quest'anno. &lt;/span&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Consiglio la partecipazione a chiunque sia interessato a reperire informazioni sul mondo della &lt;em&gt;Statistica Ufficiale&lt;/em&gt; italiana.&lt;/span&gt;&lt;/div&gt;&lt;a href="http://www.istat.it/istat/eventi/conferenze/nonaconf/"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Questo&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt; il link di riferimento.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-3896560410829470643?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/3896560410829470643/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=3896560410829470643' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/3896560410829470643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/3896560410829470643'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2008/11/nona-conferenza-nazionale-di-statistica.html' title='Nona Conferenza Nazionale di Statistica'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-2431874535017080030</id><published>2008-11-03T17:20:00.003+01:00</published><updated>2008-11-03T17:58:15.823+01:00</updated><title type='text'>Lezioni di Statistica su YouTube</title><content type='html'>In rete c'è veramente di tutto, perfino dei &lt;a href="http://it.youtube.com/watch?v=mL27TAJGlWc"&gt;video-tutorials &lt;/a&gt; per R !&lt;br /&gt;Ma quello che mi è piaciuto di più è il teorema di Bayes (in spagnolo) con tanto di sottofondo degli Enigma :-)&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/DokgkFPhOtk&amp;amp;hl=it&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/DokgkFPhOtk&amp;hl=it&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-2431874535017080030?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/2431874535017080030/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=2431874535017080030' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/2431874535017080030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/2431874535017080030'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2008/11/lezioni-di-statistica-su-youtube.html' title='Lezioni di Statistica su YouTube'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-1884943794844337700</id><published>2008-10-29T15:31:00.033+01:00</published><updated>2008-10-31T10:08:47.762+01:00</updated><title type='text'>Odds Ratio in Statistica Medica e Sanitaria</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Il concetto di &lt;em&gt;Odds Ratio&lt;/em&gt; è ampiamente diffuso in Medicina, Epidemiologia, Statistica Medica, Statistica Sanitaria...e chi ne ha più ne metta! Normalmente ci si sforza di descrivere il concetto ad un pubblico di utenti "non esperti" cercando di rendere il più semplice possibile tale numero, che altro non è che un rapporto di rapporti :-) . &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;In base alle mie esperienze ho notato, invece, che molte volte è lo statistico stesso a perdere di vista il vero fine di tale indice, lasciandosi andare in riflessioni sugli aspetti "matematici" che poco interessano l'utente. &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;L'Odds Ratio si basa su di una tabella che è alla base di tutto, una tabella a doppia entrata relativa a due variabili dicotomiche: Fattore di Rischio ed Insorgenza Malattia.&lt;/span&gt;&lt;a href="http://4.bp.blogspot.com/_W8s48295mkM/SQiB9Mgh9yI/AAAAAAAAAEg/994dTXNM9CE/s1600-h/or.bmp"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5262599052912097058" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 400px; CURSOR: hand; HEIGHT: 201px" alt="" src="http://4.bp.blogspot.com/_W8s48295mkM/SQiB9Mgh9yI/AAAAAAAAAEg/994dTXNM9CE/s400/or.bmp" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Il fattore di rischio è una variabile che si pensa possa avere influenza sull'insorgenza malattia. Quest'ultima, invece, non ha bisogno di commenti: c'è o non c'è. Ovviamente si può anche considerare il verificarsi di un altro fenomeno che non sia necessariamente una malattia, ad esempio il superamento del livello di colesterolo nel sangue (superato o non superato). &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;In maniera perfettamente analoga, il fattore di rischio potrebbe essere la somministrazione di un farmaco (presente=somministrato, assente= non somministrato o placebo), e quindi potremmo essere interessati a valutare, o meglio a &lt;em&gt;testare&lt;/em&gt; il farmaco come fattore di guarigione dalla malattia, o al contrario come fattore di insorgenza di effetti collaterali. Insomma, trattasi di variabile dicotomiche: uno o zero sia per la variabile antecedente che per quella conseguente. &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Nella tabella ho utilizzato le lettere &lt;em&gt;a, b , c , d &lt;/em&gt;per&lt;em&gt; &lt;/em&gt;specificare la numerosità dei casi. Quindi &lt;em&gt;a&lt;/em&gt; è il numero di individui in cui è presente il fattore di rischio e la malattia è insorta, ecc.... (la spiegazione del significato delle altre lettere mi pare banale). &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;L'utilizzo dei dati contenuti in tale tabella dipende sostanzialmente dalle modalità di raccolta dati, ossia dalla distinzione tra indagini prospettiche o longitudinali e indagine retrospettive o trasversali. In realtà questa mia classificazione non è assolutamente esaustiva per le varie situazioni che si presentano in Medicina, ma lo è ai fini del calcolo di un &lt;em&gt;Odds Ratio&lt;/em&gt;. &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;In un indagine prospettica il ricercatore dispone di un gruppo di individui già classificati a seconda del fattore di rischio: un gruppo in cui è presente, un altro in cui non lo è. Lui si "limita" a seguirli nel tempo e a verificare l'insorgenza (Sì) o meno (No) della malattia. In maniera analoga, per testare un farmaco, si disporrà di un gurppo di individui a cui viene somministrato il farmaco contro un placebo. Quindi, in genere, quando parte l'indagine il ricercatore conosce &lt;em&gt;a+b&lt;/em&gt; e &lt;em&gt;c+d&lt;/em&gt;, mentre conoscerà la scomposizione in &lt;em&gt;a, b, c &lt;/em&gt;e&lt;em&gt; d&lt;/em&gt; solo successivamente, in base appunto all'insorgenza della malattia. E' molto utile la seguente illustrazione per rappresentare un'&lt;em&gt;indagine prospettica o longitudinale&lt;/em&gt;:&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;a href="http://1.bp.blogspot.com/_W8s48295mkM/SQiKbiIwc-I/AAAAAAAAAEw/Gjy_e2EPA9g/s1600-h/or_prosp.bmp"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5262608370207060962" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 400px; CURSOR: hand; HEIGHT: 201px" alt="" src="http://1.bp.blogspot.com/_W8s48295mkM/SQiKbiIwc-I/AAAAAAAAAEw/Gjy_e2EPA9g/s400/or_prosp.bmp" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Dall'immagine si evince anche il perché si parla di indagine longitudinale: se si guarda un mappamondo, la longitudine è una linea orizzontale, proprio come la freccia (una barbara definizione che rende l'idea). La figura mette in risalto i dati disponibili a priori dal ricercatore: a+b e c+d e nel tempo potrà poi suddividere i dati in base all'insorgenza della malattia. &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;In un'indagine retrospettiva, invece, accade esattamente il contrario. Il ricercatore dispone degli individui già classificati in base all'insorgenza della malattia e lo scopo della sua indagine è procedere a "ritroso" per risalire al fattore di rischi e quindi classificare in soggetti con o senza fattore di rischio. Un classico esempio è un gruppo di malati di tumore (insorgenza malattia: Sì) ed uno di sani (insorgenza malattia: No) ai quali viene chiesto se in passato hanno fumato (fattore di rischio: presente) o meno (fattore di rischio: assente). Si deduce facilmente che si può rappresentare &lt;em&gt;l'indagine retrospettiva&lt;/em&gt; nel seguente modo:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;a href="http://2.bp.blogspot.com/_W8s48295mkM/SQiWBdJ2QLI/AAAAAAAAAFA/lpHqCl3r6gM/s1600-h/or_retr.bmp"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5262621116332392626" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 400px; CURSOR: hand; HEIGHT: 201px" alt="" src="http://2.bp.blogspot.com/_W8s48295mkM/SQiWBdJ2QLI/AAAAAAAAAFA/lpHqCl3r6gM/s400/or_retr.bmp" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;a href="http://2.bp.blogspot.com/_W8s48295mkM/SQiUiceeL3I/AAAAAAAAAE4/NH3hc699_UU/s1600-h/or_prosp.bmp"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Il ricercatore, quindi, conosce a priori &lt;em&gt;a+c&lt;/em&gt; e &lt;em&gt;b+d&lt;/em&gt; e solo dopo l'indagine potrà risalire all'eventuale presenza del fattore di rischio.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;A questo punto è abbastanza semplice scegliere un indice che spieghi il meglio possibile la relazione tra le due variabili dicotomiche rappresentate in tabella.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Nel caso di indagine prospettica, è intuitivo procedere al calcolo della probabilità che insorga la malattia, distinguendo in base all'appartenenza ad uno dei due gruppi:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;1- probabilità che insorga la malattia in un individuo esposto al fattore di rischio: pr(Sì \ presente) = &lt;em&gt;a / (a+b)&lt;/em&gt;;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;2- probabilità che insorga la malattia in un individuo non esposto al fattore di rischio: pr(Sì \ assente) = &lt;em&gt;c / (c+d) .&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Come giè spiegato prima, in un'indagine longitudinale è logico costruire questi due indici. Il ricercatore, infatti, dispone dei due campioni (&lt;em&gt;a+b&lt;/em&gt; e &lt;em&gt;c+d)&lt;/em&gt; prima di inziare l'indagine e solo successivamente osserva il fenomeno di insorgenza malattia. Confrontando semplicemente il rapporto 1 con il rapporto 2 tenterà di rispondere alla domanda: il fattore di rischio aumenta significativamente la probabilità che si presenti la malattia? E' ovvio che siamo portati a dare risposta affermativa quanto più la prima probabilità è maggiore della seconda. Ovviamente questo ragionamento sarà un po' più complicato in quanto accompagnato da un insieme di strumenti statistici sui quali non mi soffermo (verifica di ipotesi, modelli logit, ecc....).&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;In Epidemiologia si è soliti parlare di &lt;em&gt;rischio assoluto&lt;/em&gt; invece che di probabilità, quindi il medico e lo statistico cercheranno di valutare se il rischio di tipo 1 è maggiore del rischio di tipo 2. La valutazione di questo semplice aspetto può avvenire rapportando il rischio o probabilità 1 al rischio o probabilità 2. Quanto più tale rapporto sarà maggiore di 1, tanto più saremo portati a pensare che il rischio di insorgenza malattia sia più forte se il fattore di rischio è presente. Tal rapporto viene detto &lt;em&gt;rischio relativo:&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;em&gt;a /(a+b) &lt;span style="font-size:130%;"&gt;/&lt;/span&gt; c/(c+d).&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;A questo punto chi ha una forma mentis &lt;em&gt;quantitativa&lt;/em&gt; (...proprio come lo statistico...) si divertirà nella ricerca di forme matematiche diverse di tale rapporto, ma io direi che poco interessano e poco servono a chi è interessato alla comprensione del fenomeno. Anzi direi che potrebbero essere addirittura controproducenti, portando il ricercatore a perdere di vista l'obiettivo.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Il caso appena discusso riguarda l'indagine prospettica, vediamo ora cosa accade nell'altro caso.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Nell'indagine retrospettiva abbiamo illustrato chiaramente che a priori non si dispone del campione suddiviso per fattore di rischio, ossia mediante il fattore logicamente antecedente, ma si disporrà dei malati e dei sani. Procedendo "retrospettivamente" alla classificazione in base alla presenza o l'assenza del fattore di rischio (...fumavi in passato?...) si riempirà la tabellina in ognuna delle quattro caselle, ma il calcolo del rischio relativo non ha più senso. La freccia disegnata, infatti, non segue più lo stesso "senso dei dati" (è verticale, non più orizzonatale). I campioni sono ora &lt;em&gt;a+c&lt;/em&gt; e &lt;em&gt;b+d&lt;/em&gt;, e mischiare &lt;em&gt;a&lt;/em&gt; con &lt;em&gt;b&lt;/em&gt; e &lt;em&gt;c&lt;/em&gt; con &lt;em&gt;d&lt;/em&gt; potrebbe portare a risultati fortemente errati. Le numerosità dei due campioni, infatti, saranno in genere molto diverse, con un campione di sani generalmente più grande di quello di malati (&lt;em&gt;b+d&lt;/em&gt; &gt; &lt;em&gt;a+c&lt;/em&gt;).&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Immaginiamo paradossalmente di disporre di 8 malati (&lt;em&gt;a+c&lt;/em&gt;) e 200 sani (&lt;em&gt;b+d&lt;/em&gt;). Li interroghiamo sulle loro abitudini di vita e scompriamo che degli 8 malati, 3 hanno fumato (quindi &lt;em&gt;a&lt;/em&gt;=3) mentre trai i 200 hanno fumato in 150 (&lt;em&gt;b&lt;/em&gt;=150). A questo punto ve la sentireste di dire che 3 / (3+150) (ossia il rischio &lt;em&gt;a/a+b&lt;/em&gt;) è la probabilità di ammalarsi essendo stati fumatori? Io direi che non ha senso sommare 3 a 150 poiché i dati sono di campioni diversi; non abbiamo mica seguito nel tempo 153 individui fumatori valutando così l'insorgenza della malattia! Essendo errato il calcolo del rischio assoluto e ralativo in tale caso, si usa studiare il fenomeno con &lt;em&gt;l'Odds Ratio&lt;/em&gt;.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Innanzitutto, diciamo che un Odds è un rapporto di probabilità. Consideriamo un campione suddiviso in base alla presenza o assenza di una caratteristica, ossia la nostra variabilie dicotomica (maschio/femmina, fumatore/non fumatore, bello/brutto, ecc....). Se &lt;em&gt;a&lt;/em&gt; sono i fumatori e &lt;em&gt;c&lt;/em&gt; i non fumatori (nel campione di malati) , a&lt;em&gt; / (a+c)&lt;/em&gt; è la probabilità di trovare un fumatore nel nostro campione. Analogamente, &lt;em&gt;c / (a+c)&lt;/em&gt; è la probabilità di trovare un non fumatore. L'Odds (relativamente ai malati) per tale variabile dicomotica è quindi il rapporto tra la probabilità che una unità del campione sia fumatrice e la probabilità che sia non fumatrice: &lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;em&gt;a /(a+c) &lt;span style="font-size:130%;"&gt;/&lt;/span&gt; c/(a+c) = a / c&lt;/em&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Tale indice ci dice quanto è maggiore la probabilità di beccare un fumatore rispetto a quella di non beccarlo. Torniamo alla tabella relativa al caso di un'indagine retrospettiva.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;In base a come abbiamo costruito il nostro campione, seguendo la freccia verticale, ha senso calcolare anche l'Odds per i sani:&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;em&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;b/(b+d) &lt;span style="font-size:130%;"&gt;/&lt;/span&gt; d/(b+d) = b / d.&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;A questo punto l'Odds Ratio è il rapporto dei due Odds (così come il rischio relativo e il rapporto dei due rischi assoluti):&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;em&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;a/c &lt;span style="font-size:130%;"&gt;/&lt;/span&gt; b/d.&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Se tale valore è maggiore di 1, l'Odds dei malati è maggiore di quello dei sani e quindi potremmo dire che nei malati la probabilità di beccare un fumatore rispetto a quelle di non beccarlo è maggiore rispetto a quanto accade nei sani. Tale modo di ragionare, però, nasconde evidentemente qualcosa di "illogico". E' come se stessimo supponendo l'insorgenza della malattia come variabile antecedente il fattore di rischio, ossia che la malattia influisce sul fattore di rischio, ossia su di una variabile che invece si manifesta "prima" dell'altra. Quello che invece ci interesserebbe verificare è quanto cambia il rapporto tra la probabilità di ammalarsi e non, passando da un gruppo di individui senza fattore di rischio ad individui con fattore di rischio (qualcosa di analogo al rischio relativo). &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Mentre per un'indagine prospettiva è subito evidente che possiamo eseguire tale calcolo (seguiamo il senso della freccia), da una prima riflessione potrebbe sembrare errato il calcolo di tale &lt;em&gt;Odds Ratio&lt;/em&gt; per un'indagine retrospettiva (così come invece lo sarebbe il calcolo del rischio relativo). Ma con un banale passaggio algebrico si ottiene che:&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;em&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;a/c &lt;span style="font-size:130%;"&gt;/ &lt;/span&gt;b/d = a/b &lt;span style="font-size:130%;"&gt;/&lt;/span&gt; c/d,&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;ossia che l'Odds Ratio per la nostra tabella è sempre lo stesso, indipendentemente da quale sia la variabile logicamente antecendente (cosa che invece non accade per il rischio relativo). Non è superfluo evidenziare che il secondo membro dell'uguaglianza è &lt;em&gt;l'Odds Ratio&lt;/em&gt; che misura di quanto è più probabile l'insorgenza malattia rispetto alla non insorgenza, passando da individui con fattore di rischio a individui senza tale fattore.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Quindi, riassumendo, la nostra tabella con le quattro caselline è in pratica un campione che si suppone rappresentativo dell'universo. Calcolando uno qualunque degli indici sopra descritti, non facciamo altro che cercare di stimare lo stesso valore ignoto nell'universo. La differenza sostanziale, però, sta nel fatto che mentre il rischio relativo ha senso solo per l'indagine prospettiva, l'Odds Ratio è indipendente dal tipo di indagine. Quindi, il&lt;em&gt; rischio relativo &lt;/em&gt;è una buona stima campionaria solo per le indagini retrospettive, mentre &lt;em&gt;l'Odd Ratio&lt;/em&gt; lo è in entrambi i casi! &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Quindi, per un'indagine retrospettiva useremo &lt;em&gt;l'Odds Ratio&lt;/em&gt; per rispondere alla stessa domanda di prima: il fattore di rischio aumenta significativamente la possibilità che si presenti la malattia? Quanto più &lt;/span&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;em&gt;a/b &lt;span style="font-size:130%;"&gt;/&lt;/span&gt;c/d &lt;/em&gt;sarà &lt;em&gt;&gt;&lt;/em&gt;1, &lt;/span&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;tanto più saremo portati a dire che nel passaggio dalla situazione di assenza alla situazione di presenza del fattore di rischio , cresce il rapporto tra la probabilità di ammalarsi e quella che la malattia non insorga.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Sottolineo inoltre che in genere &lt;em&gt;l'Odds Ratio&lt;/em&gt; è utilizzato sempre, quindi mi pare sia preferito anche nelle indagine prospettiche, sebbene in tali casi sia possibile calcolare il &lt;em&gt;rischio relativo&lt;/em&gt; (ovviamente questa è solo una mia impressione).&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Nei più diffusi testi di Epidemiologia o Statistica Medica si è soliti parlare di rapporto crociato in luogo di &lt;em&gt;Odds Ratio&lt;/em&gt;. A mio parere tale esemplificazione algebrica è totalmente inutile e addirittura controproducente e per tale motivo nemmeno la riporto. Per quanto riguarda l'aspetto "informatico" per il calco di tali indici, direi che non è necessario nessun commento essendo il processo di calcolo molto banale e facilemente gestibile in un un foglio elettronico.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Concludo dicendo che il ragionamento che ho seguito è utile a comprendere il significato di &lt;em&gt;Odds Ratio&lt;/em&gt; e &lt;em&gt;Rischio Relativo&lt;/em&gt;, evitando quindi lo sforzo memorico necessario a ricordare i metodi di calcolo dei rapporti (...l'odds è il prodotto della cella a per b, diviso per...). Ovviamente, per completare il tutto, sarebbe necessario approfondire con lo studio della verifica di ipotesi e dei modelli logit, ma tali argomenti sono abbondantemente trattati nei testi di stastica ed anche in rete.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-1884943794844337700?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/1884943794844337700/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=1884943794844337700' title='2 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/1884943794844337700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/1884943794844337700'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2008/10/odds-ratio-in-statistica-medica-e.html' title='Odds Ratio in Statistica Medica e Sanitaria'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_W8s48295mkM/SQiB9Mgh9yI/AAAAAAAAAEg/994dTXNM9CE/s72-c/or.bmp' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-3227127508782534175</id><published>2008-09-30T09:07:00.007+01:00</published><updated>2008-10-01T08:50:00.664+01:00</updated><title type='text'>Gestire i Missing Value in R</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;La visualizzazione e l'imputazione dei "dati mancanti" in un'indagine , in particolare nella Statistica Ufficiale, è sicuramente la fase più importante per garantire la qualità del dato statistico . La letteratura sull'argomento è matura e ben fornita, e i software commerciali non prevedono, a mio parere, un modulo "completo" (ovviamente in ognuno di questi ci sono possibilità di sviluppare grafici ad-hoc e applicare un qualsivoglia test). &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;In particolare l'ISTAT ha sviluppato in SAS il software &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.istat.it/strumenti/metodi/software/MTSFload/TRATTAMENTOERRORIload/CONCORDload/manualeconcord.pdf"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;CONCORD &lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;per il controllo e la correzione dei dati, strumento potentissimo e liberamente scaricabile, ma che appunto necessita del SAS.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;In R esiste la possibilità di lavorare con &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.statistik.tuwien.ac.at/forschung/CS/CS-2008-1complete.pdf"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;VIM&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;, che sta appunto per Visualization and Imputation of Missing values. Come gli stessi autori sottolineano, il cuore del pacchetto sta nell'insieme dei possibili grafici utili alla scoperta e alla gestione dei missing values.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;In realtà, analogamente a quanto ho già scritto per &lt;/span&gt;&lt;/span&gt;&lt;a href="http://micheledemeo.blogspot.com/2006/12/r-commander-e-sciviews-r.html"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Rcmdr&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;, un altro grande aspetto è la possibilità di ricorrere all'interfaccia grafica (sviluppata mediante il pacchetto tcltk). Non dimentichiamo, infine, le possibilità di integrazione di R con il pacchetto office e la possibilità si sviluppo in maniera estremamente immediata delle interfacce grafiche (ad esempio &lt;/span&gt;&lt;a href="http://micheledemeo.blogspot.com/2008/02/usare-r-in-access.html"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;via Access&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Concludo osservando che l'ISTAT ha già espresso &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.istat.it/istat/eventi/2008/4marzo/zardetto_4marzo08.ppt#256,1,Diapositiva"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;parere sostanzialmente postivo&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt; per l'utilizzo di R ed ha avviato un processo di migrazione a tale strumento...quindi R anche nella statistica ufficiale.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-3227127508782534175?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/3227127508782534175/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=3227127508782534175' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/3227127508782534175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/3227127508782534175'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2008/09/gestire-i-missing-value-in-r.html' title='Gestire i Missing Value in R'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-2167387982915496306</id><published>2008-09-09T13:58:00.004+01:00</published><updated>2008-09-09T14:08:36.144+01:00</updated><title type='text'>RExcel su Wikipedia</title><content type='html'>&lt;span style="font-family:verdana;font-size:85%;"&gt;Su Wikipedia c'è ora una breve descrizione di RExcel; molto interessanti i link riportati nelle &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/RExcel"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;References&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-2167387982915496306?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/2167387982915496306/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=2167387982915496306' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/2167387982915496306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/2167387982915496306'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2008/09/rexcel-su-wikipedia.html' title='RExcel su Wikipedia'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-2305632933952515056</id><published>2008-07-15T08:31:00.010+01:00</published><updated>2008-07-15T09:18:44.235+01:00</updated><title type='text'>Trasporre un foglio excel di dati "statistici" in formato "database"</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;L'operazione che vado a descrivere penso sia sostanzialmente comune per chi lavora con un dataset "statistico". In pratica chi utilizza un software per analisi statistiche, come R, SAS, SPSS e ci mettiamo in mezzo pure Excel, è abituato ad avere un insieme di dati alle cui righe corrispondo le singole osservazioni e alle cui colonne corrispondo le variabili. Immaginiamo che le variabili siano "sommabili" tra loro, ossia che si riferiscano ad un fenomeno per cui ha senso fare la somma di tutte le variabili. Ad esempio, consideriamo di avere un campione di aziende per ognuna delle quali osserviamo tutte le voci di costo che le caratterizzano nella loro attività. In tal caso, quindi, in Excel siamo abituati ad aggiungere un'ultima variabile (colonna / campo) che sia la somma di tutte le precedenti (nel nostro esempio, quindi, avremo l'ammontare totali dei costi).&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;E' poi usuale "salvare" i dati in un database in cui è sicuramente preferibile gestire il tutto in modo differente, ossia avere un'unico campo con i dati (ovviamente solo nel nostro caso in cui dati si riferiscono allo stesso fenomeno), utilizzando poi un campo con l'identificativo dell'osservazione ed un altro con il codice identificativo della variabile.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Sempre tornando al nostro esempio delle aziende e dei costi, salveremo i dati in un tabella di database avente tre campi: il primo con un codice che identifica l'azienda, il secondo con un codice che identifica il tipo di costo (energia, costo del lavoro, manutenzione, ecc...), il terzo con il valore del costo. Il primo ed il secondo campo formano una chiave per la tabella, ed avremo un numero distinto di voci di costo pari al numero di variabili (colonne) del nostro dataset iniziale. &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Tale operazione di particolare trasposizione della tabella è immediata in Excel mediante la macro che riporto di seguito. Quindi, qualunque sia il software che usiamo, basterà importare la tabella in Excel ed eseguire la macro. L'unico vincolo è il numero massimo di record che si possono gestire. Come ricordato &lt;a href="http://micheledemeo.blogspot.com/2007/02/excel-2007-e-rdcom.html"&gt;in questo mio post&lt;/a&gt;, questo limite si alza notevolmente con la versione più recente di Excel. In genere, comunque, nel caso fosse una "grosso" dataset, sarà sufficiente estrarre dei suoi sottoinsiemi di osservazioni e variabili per lavorare ugualmente con tale macro.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Nel mio esempio, comunque, ho ipotizzato che l'utente lavori con una versione di Excel che prevede al massimo 65,536 righe, restituendo un messaggio di errore nel caso la trasposizione del dataset dovessere portare ad un numero maggiore di record. Il codice vba, comunque, è immediatemante adattabile al caso di Excel 2007 (1,048,576 "righe" e 16,384 "colonne").&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Ecco il codice, da associare ad un pulsante di comando:&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;'*****************************************************&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Private Sub cmdTrasponi_Click()&lt;br /&gt;Dim j As Long&lt;br /&gt;Dim i As Long&lt;br /&gt;Dim r As Long&lt;br /&gt;Dim c As Long&lt;br /&gt;r = 0&lt;br /&gt;c = 0&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;br /&gt;For j = 2 To 256&lt;br /&gt;If Worksheets(1).Cells(1, j).Value &lt;&gt; "" Then&lt;br /&gt;c = c + 1&lt;br /&gt;End If&lt;br /&gt;Next &lt;/span&gt;&lt;/div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;div align="justify"&gt;&lt;br /&gt;For j = 2 To 65536&lt;br /&gt;If Worksheets(1).Cells(j, 1).Value &lt;&gt; "" Then&lt;br /&gt;r = r + 1&lt;br /&gt;End If&lt;br /&gt;Next &lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;If c * r + 1 &gt; 65536 Then&lt;br /&gt;MsgBox "Matrice troppo grande per essere gestita in excel"&lt;br /&gt;Exit Sub&lt;br /&gt;End If&lt;br /&gt;&lt;br /&gt;If r &lt;= 1 Or c &lt;= 1 Then MsgBox "Numero di dati da trasporre troppo basso"&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Exit Sub&lt;br /&gt;End If&lt;br /&gt;&lt;br /&gt;For j = 2 To r + 1&lt;br /&gt;For i = 2 To c + 1&lt;br /&gt;Worksheets(2).Cells(i + c * (j - 2), 3).Value = Worksheets(1).Cells(j, i).Value&lt;br /&gt;Worksheets(2).Cells(i + c * (j - 2), 2).Value = Worksheets(1).Cells(1, i).Value&lt;br /&gt;Worksheets(2).Cells(i + c * (j - 2), 1).Value = Worksheets(1).Cells(j, 1).Value&lt;br /&gt;Next&lt;br /&gt;Next&lt;br /&gt;&lt;br /&gt;Worksheets(2).Cells(1, 1).Value = Worksheets(1).Cells(1, 1).Value&lt;br /&gt;Worksheets(2).Cells(1, 2).Value = "Descrizione dati"&lt;br /&gt;Worksheets(2).Cells(1, 3).Value = "Dati"&lt;br /&gt;&lt;br /&gt;MsgBox "Trasposizione in formato database terminata"&lt;br /&gt;&lt;br /&gt;End Sub&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-2305632933952515056?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/2305632933952515056/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=2305632933952515056' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/2305632933952515056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/2305632933952515056'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2008/07/trasporre-foglio-excel-di-dati.html' title='Trasporre un foglio excel di dati &quot;statistici&quot; in formato &quot;database&quot;'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-5471932013033739498</id><published>2008-02-27T15:23:00.034+01:00</published><updated>2008-02-28T09:52:37.339+01:00</updated><title type='text'>Usare R in Access</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;L'utilizzo di R in Access mi ha permesso di sviluppare modelli statistici di notevole complessità in maniera abbastanza semplice, utilizzando un software diffusissimo quale appunto Access. Quest'ultimo lo uso in genere come interfaccia utente per "nascondere" un motore di calcolo statistico come R e, in alcuni casi, un motore database diverso da Jet (come ad esempio Firebird, in riferimento al quale ho scritto &lt;/span&gt;&lt;a href="http://micheledemeo.blogspot.com/2007/03/firebird-flamerobin-e-ibutils.html"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;questo post&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;). In pratica mi è capitato di utilizzare Access per accedere ad un database Firebird via odbc, crearmi delle tabelle temporanee da passare ad R, applicare il mio modello statistico (in questo caso direi di data mining) e visualizzare i risultati finali tramite tabelle create in Jet. In tal modo, quindi, Access funge esclusivamente da interfaccia, sfruttando quindi la possibilità di gestire i dati tramite vba e mediante un modello di riferimento molto semplice ed allo stesso tempo molto efficace. &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Nell'esempio che riporto di seguito ho preferito fare riferimento ad una tabella generata tramite Jet e, quindi, ad un utilizzo intensivo di Access stesso. Per un utilizzo di quest'ultimo con un motore db differente (quale, ad esempio, Firebird), l'esempio di seguito riportato penso rimanga valido con opportuni accorgimenti legati a tabelle collegate tramite odbc.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;La possibilità di richiamare R da Access, analogamente a quanto avviene per Excel così come spiegato &lt;/span&gt;&lt;a href="http://micheledemeo.blogspot.com/2007/02/excel-2007-e-rdcom.html"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;qui&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;, resta legata all'utilizzo di &lt;/span&gt;&lt;a href="http://sunsite.univie.ac.at/rcom/"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;R(D)COM&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;. Quindi, sul proprio calcolatore sarà necessario disporre di R, R(D)COM ed ovviamente Access (io lavoro con la versione del 2003). Prima di cominciare a scrivere il codice sarà necessario apire l'editor di Visual Basic (ALT+F11) &gt; Strumenti &gt; Riferimenti e spuntare le librerie &lt;em&gt;StatConnectorClnt 1.0 Type library&lt;/em&gt;, &lt;em&gt;StatConnectorCommon 1.1 Type library&lt;/em&gt; e &lt;em&gt;StatConnectorSrv 1.1 Type library&lt;/em&gt;. Nel caso queste non fossero disponibili nell'elenco, saranno disponibili al seguente indirizzo: &lt;em&gt;C:\Programmi\R\(D)COM Server\tlb&lt;/em&gt; con estensione &lt;em&gt;.tlb. O&lt;/em&gt;vviamente non le troverete se avrete installato R(D)COM in un percorso differente da quello standard, ed in tal caso ve le andrete a cercare :-)&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Nell'esempio dispongo di una tabella in Access così composta:&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;tbPrezzi (mese, prezzoGpl, prezzoBenz)&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;ossia una tabella (tbPrezzi) con i prezzi industriali di gpl e benzina per i 12 mesi del 2007 . Si tratta di dati ufficiali presi dal &lt;/span&gt;&lt;a href="http://dgerm.attivitaproduttive.gov.it/dgerm/prezzimedi.asp?prodcod=1&amp;amp;anno=2007"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;sito del ministero&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;In maniera molto semplice ho immaginato che l'utente sia interessato al coefficiente angolare della retta di regressione lineare del prezzo del gpl sul prezzo della benzina.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;In R basterebbe utilizzare il seguente comando: &gt;lm(y~x)$coeff[2] &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;con y ed x pari appunto ai due campi della tabella tbPrezzi, ossia prezzoGpl e prezzoBenz rispettivamente in luogo di y ed x. Quindi ho costruito una maschera che contiene un pulsante di comando al cui click si generano le seguenti operazioni (riportate passo per passo nel codice sotto):&lt;/span&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;creo un recordset in vba coincidente con la tabella tbPrezzi e due vettori x ed y pari rispettivamente a prezzoGpl e prezzoBenz;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;avvio R &lt;em&gt;dietro le quinte&lt;/em&gt;; &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;passo questi vettori ad R;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;eseguo il calcolo del coefficiente b della retta di regressione e riporto il risultato del calcolo in Access;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;decido di visualizzare b tramite un messaggio a video (MsgBox), ma equivalentemente avrei potuto continuare ad usarlo in vba ed in Access per scopi differenti;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;chiudo R.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Ovviamente il mio esempio può essere generalizzato a modelli più complessi, come ad esempio l'applicazione di un modello CART generato in R (mediante la libreria tree) sulla base di un insieme di dati provenienti da un database diverso da Jet. Si riporta di seguito il codice associato all'evento "click" per un pulsante di comando:&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;'***************************************************************&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Private Sub Comando0_Click()&lt;br /&gt;Dim stc As StatConnector&lt;br /&gt;Dim x(1 To 12) As Double&lt;br /&gt;Dim y(1 To 12) As Double&lt;br /&gt;Dim i As Integer&lt;br /&gt;Dim b As Double&lt;br /&gt;Dim db As DAO.Database&lt;br /&gt;Dim rs As DAO.Recordset&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;'*********************PASSO 1********************&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Set db = DBEngine(0)(0)&lt;br /&gt;Set rs = db.OpenRecordset("tbPrezzi")&lt;br /&gt;i = 1&lt;br /&gt;Do Until rs.EOF&lt;br /&gt;x(i) = rs.Fields(2)&lt;br /&gt;y(i) = rs.Fields(1)&lt;br /&gt;rs.MoveNext&lt;br /&gt;i = i + 1&lt;br /&gt;Loop&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;'*********************PASSO 2********************&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Set stc = New StatConnector&lt;br /&gt;stc.Init ("R")&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;'*********************PASSO 3********************&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;stc.SetSymbol "x_R", x&lt;br /&gt;stc.SetSymbol "y_R", y&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;'*********************PASSO 4********************&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;b = stc.Evaluate("lm(y_R~x_R)$coeff[2]")&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;'*********************PASSO 5********************&lt;br /&gt;MsgBox "Coefficiente angolare regressione prezzo gpl su prezzo benzina: " &amp;amp; b&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;'*********************PASSO 6********************&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;stc.Close &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;rs.Close &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;db.Close&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;End Sub&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;'***************************************************************&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;Si noti che ho preferito parlare di x e y per vettori gestiti in vba, mentre ho parlato di x_R e y_R per gli stessi in ambiente R. Infine bisogna precisare che il dialogo tra R ed Access avviene tramite l'oggetto StatConnector. Per maggiori informazioni è sufficiente consultare il sito ufficiale di &lt;a href="http://sunsite.univie.ac.at/rcom/"&gt;R(D)COM&lt;/a&gt;........ampiamente linkato nel mio blog :-)&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-5471932013033739498?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/5471932013033739498/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=5471932013033739498' title='8 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/5471932013033739498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/5471932013033739498'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2008/02/usare-r-in-access.html' title='Usare R in Access'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-7965722716499140084</id><published>2007-10-23T15:49:00.000+01:00</published><updated>2007-10-23T16:50:58.606+01:00</updated><title type='text'>Importare dati in R da Excel</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Sono molte le ricerche per &lt;em&gt;importare dati in R da Excel&lt;/em&gt; che da google portano al mio blog, così ho pensato di scrivere delle indicazioni specifiche.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Innanzitutto, come più ampiamente spiegato in &lt;/span&gt;&lt;a href="http://micheledemeo.blogspot.com/2006/12/r-commander-e-sciviews-r.html"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;questo mio vecchio post&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;, io consiglio l'utilizzo della libreria Rcmdr che permette l'importazione stile "software commerciali" direttamente da un file di Excel, Stata, Minitab, Access, ecc... .&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Ma se proprio non si vuol dar retta a questo mio consiglio :-), la procedura è riportata di seguito.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Immaginando di essere in Italia in cui il separatore decimale utilizzato è la virgola, la prima cosa da fare è salvare il foglio Excel in formato testo delimitato da tabulazione. Bisogna stare attenti a non salvare in txt utilizzando il separatore delle migliaia per le variabili (colonne di Excel) aventi &lt;em&gt;Numero&lt;/em&gt; come &lt;em&gt;Formato Celle&lt;/em&gt; (quindi, in Excel, per le celle con formato &lt;em&gt;Numero:&lt;/em&gt; Formato &lt;em&gt;Celle&lt;/em&gt; &gt; &lt;em&gt;Numero&lt;/em&gt; e togli il segno di spunta in corrispondenza di &lt;em&gt;Usa separatore delle migliaia (,) )&lt;/em&gt;. Sto inoltre immaginando, come penso accada in genere, che la prima riga della tabella Excel indichi il nome delle variabili.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;A questo punto il codice in R è semplicemente:&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;x&lt;-read.delim2("C:/miaCartella/mioFile.txt")&lt;/span&gt; .&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Notate che nell'indicazione del percorso del file si debba usare "/" invece di "\". A questo punto x sarà il data.frame in R corrispondente alla vostra tabella di Excel.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Infine, faccio notare come il seguente comando:&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;x&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;-read.table(file="C:/miaCartella/mioFile.txt", header=TRUE, sep="\t", dec=",")&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;sia perfettamente equivalente al precedente (l'help in linea può aiutare a charirsi le idee).&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-7965722716499140084?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/7965722716499140084/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=7965722716499140084' title='10 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/7965722716499140084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/7965722716499140084'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2007/10/importare-dati-in-r-da-excel.html' title='Importare dati in R da Excel'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-3270144467161255920</id><published>2007-10-22T08:55:00.000+01:00</published><updated>2007-10-23T16:42:53.727+01:00</updated><title type='text'>Aggiornare R e R(D)COM server</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;In base a quanto riportato dalle FAQ per Windows e in base alle mie esperienze, riporto la procedura da eseguire per l'aggiornamento di R e di R(D)COM all'ultima versione.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Tale aggiornamento in molti casi può non essere necessario in quanto l'utente può lavorare tranquillamente con una versione "vecchia" senza rendersene conto. In tale caso, comunque, la cosa sicuramente da non fare è l'aggiornamento delle librerie. Quest'ultimo, infatti, dovrebbe sempre essere preceduto da un aggiornamento di R.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Immaginate di lavorare con la 2.4.0 (questo è un episodio reale per il quale sono stato contattato) e di aggiornare le librerie (nella RGUI: &lt;em&gt;Pacchetti &gt; Aggiorna pacchetti...&lt;/em&gt;). Così facendo, nella cartella "library" vi ritroverete le librerie che utilizzate normalmente, aggiornate alle versioni più recenti che, in genere, potrebbero non essere più "funzionanti" con la vecchia versione di R con la quale stavate lavorando.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Quindi, la prima cosa da fare è rimouvere R (&lt;em&gt;Pannello di controllo &gt; Installazione applicazioni&lt;/em&gt; &gt; &lt;em&gt;Rimuovi&lt;/em&gt; o direttamente con &lt;em&gt;unins000.exe&lt;/em&gt;). Tale operazione non cancellerà via la cartella &lt;em&gt;library&lt;/em&gt; nella quale, appunto, restano tutti i pacchetti che normalmente siete abituati ad utilizzare. In tal modo, quindi, dopo aver installato la nuova versione di R (attualmente siamo alla 2.6.0), basterà sostituire il contenuto della nuova cartella &lt;em&gt;library&lt;/em&gt; (&lt;em&gt;C:\Programmi\R\R-2.6.0\library&lt;/em&gt;) con il contenuto della vecchia (&lt;em&gt;C:\Programmi\R\R-2.4.0\library&lt;/em&gt;) ed effetture l'aggiornamento dei pacchetti (nella RGUI: &lt;em&gt;Pacchetti &gt; Aggiorna pacchetti...&lt;/em&gt;). In tal modo vi ritroverete tutte le librerie di cui disponevate, aggiornate e compatibili con la nuova release di R. In pratica, quindi, io non andrò a sostituire l'intera cartella, ma andrò a copiare il contenuto della vecchia library e ad incollarlo nella nuova, cliccando &lt;em&gt;no&lt;/em&gt; al messaggio di &lt;em&gt;Conferma sostituzione file&lt;/em&gt; di Windows relativo alle librerie &lt;em&gt;standard&lt;/em&gt; già installate assieme alla nuova release di R.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Per quanto riguarda R(D)COM, la procedura è la solita per la rimozione (&lt;em&gt;Pannello di controllo &gt; Installazione applicazioni &gt; Rimuovi &lt;/em&gt;o direttamente con&lt;em&gt; unins000.exe &lt;/em&gt;) e la solita per l'installazione (attualmente il setup più aggiornato è &lt;em&gt;&lt;a href="http://rcom.univie.ac.at/download/current/RSrv250_pl1.exe"&gt;RSrv250_pl1.exe&lt;/a&gt;&lt;/em&gt;). Successivamente all'installazione si può eseguire un primo test tramite lo &lt;em&gt;StatConnector Test&lt;/em&gt; : &lt;em&gt;C:\Programmi\R\(D)COMServer\samples\Simple\simple.exe&lt;/em&gt; &gt; &lt;em&gt;Start R&lt;/em&gt;. Nella totalità delle installazioni che ho eseguito si ottiene il messaggio di errore: &lt;em&gt;Run time error '462': The Remote server machine does not exist or is unavailable&lt;/em&gt; . Il problema sta nel settaggio del registro di Windows e, senza chiedersi cosa significhi :-), il problema si risolve tramite &lt;em&gt;C:\Programmi\R\R-x.x.x\bin\RSetReg.exe&lt;/em&gt; . Successivamente, richiamando nuovamente lo &lt;em&gt;StatConnector Test &lt;/em&gt;(a meno di altri errori) si otterrà una serie di messaggi di informazione che confermano il corretto funzionamento di R(D)COM Server.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-3270144467161255920?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/3270144467161255920/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=3270144467161255920' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/3270144467161255920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/3270144467161255920'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2007/10/aggiornare-r-e-rdcom-server-allultima.html' title='Aggiornare R e R(D)COM server'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-4672349684324308590</id><published>2007-06-11T10:17:00.003+01:00</published><updated>2010-12-10T17:55:03.875+01:00</updated><title type='text'>Indice di concentrazione di Gini in Excel</title><content type='html'>&lt;div align="justify"&gt;&lt;div style="text-align: -webkit-auto;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;a href="http://www.riolab.org/attachments/article/197/indicegini.zip"&gt;Download&lt;/a&gt; del file xls con la relativa funzione.&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;Tra le funzioni statistiche di excel non mi risulta disponibile l'indice di concentrazione di Gini e ho sviluppato la relativa funzione in vba.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;La formula a cui mi riferisco è la seguente, dove le x_(i) sono ordinate in senso non decrescente:&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;div align="justify"&gt;&lt;a href="http://3.bp.blogspot.com/_W8s48295mkM/Rm5ZEPcugsI/AAAAAAAAABU/h78mTKbdmwg/s1600-h/frm1.bmp"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5075091759494496962" src="http://3.bp.blogspot.com/_W8s48295mkM/Rm5ZEPcugsI/AAAAAAAAABU/h78mTKbdmwg/s320/frm1.bmp" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;Ai fini computazionali, mi è risultato conveniente esplicitare la formula nel seguente formato:&lt;/span&gt;&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/_W8s48295mkM/Rm5ZRPcugtI/AAAAAAAAABc/aqNjrWXlIMU/s1600-h/frm2.bmp"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5075091982832796370" src="http://3.bp.blogspot.com/_W8s48295mkM/Rm5ZRPcugtI/AAAAAAAAABc/aqNjrWXlIMU/s320/frm2.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;ossia come rapporto tra l'indice di disuguaglianza senza ripetizione (ossia con il denominatore pari a n(n-1) invece che n^2):&lt;/span&gt;&lt;/div&gt;&lt;a href="http://1.bp.blogspot.com/_W8s48295mkM/Rm5ZbvcuguI/AAAAAAAAABk/4NEj2y43NJc/s1600-h/frm3.bmp"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5075092163221422818" src="http://1.bp.blogspot.com/_W8s48295mkM/Rm5ZbvcuguI/AAAAAAAAABk/4NEj2y43NJc/s320/frm3.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;ed il suo massimo: &lt;/span&gt;&lt;/div&gt;&lt;a href="http://1.bp.blogspot.com/_W8s48295mkM/Rm5ZivcugvI/AAAAAAAAABs/FOUan10MRbI/s1600-h/frm4.bmp"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5075092283480507122" src="http://1.bp.blogspot.com/_W8s48295mkM/Rm5ZivcugvI/AAAAAAAAABs/FOUan10MRbI/s320/frm4.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;Inizialmente avevo optato per la seguente forma:&lt;/span&gt;&lt;/div&gt;&lt;a href="http://1.bp.blogspot.com/_W8s48295mkM/Rm5ZvvcugwI/AAAAAAAAAB0/nrKCyeNDetU/s1600-h/frm5.bmp"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5075092506818806530" src="http://1.bp.blogspot.com/_W8s48295mkM/Rm5ZvvcugwI/AAAAAAAAAB0/nrKCyeNDetU/s320/frm5.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;m&lt;/span&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;a essa si base sull'ordinamento di un array che prevederebbe &lt;a href="http://support.microsoft.com/kb/213818/en-us"&gt;un po' di codice &lt;/a&gt;per essere effettuato, non essendo già prevista una relativa funzione standard in vba. &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;Per l'indice di concentrazione in R si faccia riferimento alla libreria &lt;a href="http://cran.r-project.org/src/contrib/Descriptions/ineq.html"&gt;ineq&lt;/a&gt;. Ho anche avviato una discussione sulla mailing-list per dei chiarimenti sulla formula utilizzata (l'indice infatti non fornisce il valore 1 in caso di massima concentrazione), ma la risposta stava nella differenza tra indice distorto e non distorto.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;Riporto di seguito il codice della funzione in vba :&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color: #006600; font-family: Verdana; font-size: 85%;"&gt;'********************************************&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;Public Function gini(x As Range) As Double&lt;br /&gt;&lt;br /&gt;Dim tb As Variant&lt;br /&gt;Dim h As Long&lt;br /&gt;Dim k As Long&lt;br /&gt;Dim i As Long&lt;br /&gt;Dim j As Long&lt;br /&gt;Dim num As Double&lt;br /&gt;Dim den As Double&lt;br /&gt;&lt;br /&gt;tb = x.Value&lt;/div&gt;&lt;div align="justify"&gt;num = 0&lt;br /&gt;den = 0&lt;br /&gt;For h = 1 To UBound(tb, 1)&lt;br /&gt;For k = 1 To UBound(tb, 2)&lt;br /&gt;If IsNull(tb(h, k)) Then&lt;br /&gt;tb(h, k) = 0&lt;br /&gt;End If&lt;br /&gt;den = den + tb(h, k)&lt;br /&gt;For i = 1 To UBound(tb, 1)&lt;br /&gt;For j = 1 To UBound(tb, 2)&lt;br /&gt;num = num + Abs(tb(h, k) - tb(i, j))&lt;br /&gt;Next j&lt;br /&gt;Next i&lt;br /&gt;Next k&lt;br /&gt;Next h&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #006600;"&gt;'INDICE DI DISUGUAGLIANZA&lt;/span&gt;    &lt;/div&gt;&lt;div align="justify"&gt;num = num / (UBound(tb, 1) * UBound(tb, 2)* _&lt;/div&gt;&lt;div align="justify"&gt;(UBound(tb, 1) * UBound(tb, 2) - 1)) &lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;span style="color: #006600;"&gt;'MASSIMO DELL'INDICE DI DISUGUAGLIANZA&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;den = 2 * den / (UBound(tb, 1) * UBound(tb, 2))&lt;br /&gt;&lt;br /&gt;If den = 0 Then&lt;br /&gt;gini = 1&lt;br /&gt;Else&lt;br /&gt;gini = num / den&lt;br /&gt;End If&lt;br /&gt;End Function&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color: #006600;"&gt;'********************************************&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-4672349684324308590?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/4672349684324308590/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=4672349684324308590' title='2 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/4672349684324308590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/4672349684324308590'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2007/06/indice-di-concentrazione-di-gini-in.html' title='Indice di concentrazione di Gini in Excel'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_W8s48295mkM/Rm5ZEPcugsI/AAAAAAAAABU/h78mTKbdmwg/s72-c/frm1.bmp' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-8581388566259026343</id><published>2007-05-24T11:16:00.000+01:00</published><updated>2007-05-24T11:40:56.172+01:00</updated><title type='text'>Usare R in Calc: ROOo</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;A causa di parecchio lavoro ho veramente poco tempo da dedicare al blog, ma questa notizia non può essere di certo trascurata. &lt;/span&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;E' nato un progetto di integrazione tra R e Calc (il foglio elettronico di &lt;/span&gt;&lt;a href="http://it.openoffice.org/"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;OpenOffice&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;), curato sempre da Thomas Baier e company, sia in ambiente Windows che Linux. La notizia mi è giunta proprio oggi e, ovviamente, il tutto è in versione alpha / test. Io per lavoro uso sempre Excel, quindi non sono direttamente interessato, tuttavia il progetto è sicuramente importante per gli utenti di Calc. I&lt;/span&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;nfo e downolad di ROOo a &lt;/span&gt;&lt;a href="http://rcom.univie.ac.at/devel/index.html"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;questo indirizzo&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;. &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-8581388566259026343?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/8581388566259026343/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=8581388566259026343' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/8581388566259026343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/8581388566259026343'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2007/05/usare-r-in-calc-rooo.html' title='Usare R in Calc: ROOo'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-8414182821191084332</id><published>2007-03-15T18:08:00.001+01:00</published><updated>2010-03-19T15:50:30.752+01:00</updated><title type='text'>Firebird, Flamerobin e IBUtils</title><content type='html'>&lt;div align="justify"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;In alcuni lavoro che ho svolto (e che continuo a svolgere) mi sono trovato a sviluppare e gestire basi di dati. Nell'immenso universo dei possibili database, spesso per decisioni aziendali legate a motivazioni puramente economiche, mi sono trovato a dover scegliere tra tutte le possibilità a basso costo (diciamo pure &lt;em&gt;aggratiss&lt;/em&gt;). La mia esperienza assolutamente positiva e, soprattutto, a costo nullo è legata ad un nome: &lt;/span&gt;&lt;a href="http://www.firebirdsql.org/"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;Firebird&lt;/span&gt;&lt;/a&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;Non intendo discutere di eventuali confronti con altri database (commerciali e non) non avendo le competenze per farlo ed essendo l'argomento già ampiamente trattato in rete (inoltre penso non si arriverebbe a conclusione, essendo i pareri discordanti). Voglio solo esprimere la mia totale soddisfazione nel gestire (ripeto: a costo nullo!!!) grossi database.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;In particolare, in seguito alla continua ricerca in rete di "strumenti" (sempre &lt;em&gt;aggratiss&lt;/em&gt;) per lavorare con &lt;/span&gt;&lt;a href="http://www.firebirdsql.org/"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;Firebird &lt;/span&gt;&lt;/a&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;e in seguito a ripetuti confronti tra &lt;a href="http://forums.devshed.com/firebird-sql-development-61/"&gt;tutto ciò che offre il web&lt;/a&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;, mi sento di poter riassumere in due link quelli che sono attualmente i miei ferri del mestiere che, quindi, consiglio a tutti: &lt;/span&gt;&lt;a href="http://www.flamerobin.org/"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;Flamerobin&lt;/span&gt;&lt;/a&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;, per lavorare via sql con tabelle e procedure, &lt;/span&gt;&lt;a href="http://www.unipals.cz/ibutils/ibutils.htm"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;IBUtils&lt;/span&gt;&lt;/a&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt; per disegnare la struttura del db in maniera grafica e visuale.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-8414182821191084332?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/8414182821191084332/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=8414182821191084332' title='4 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/8414182821191084332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/8414182821191084332'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2007/03/firebird-flamerobin-e-ibutils.html' title='Firebird, Flamerobin e IBUtils'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-2450138546641274184</id><published>2007-03-02T09:12:00.000+01:00</published><updated>2007-03-02T09:44:47.763+01:00</updated><title type='text'>RDCOM Server V2.5 e RExcel V1.75</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;In riferimento a quanto già discusso nel mio precedente post, dopo un breve periodo di test è ora possibile scaricare la nuova versione di RDCOM e di RExcel. Il download può essere effettuato a &lt;/span&gt;&lt;a href="http://rcom.univie.ac.at/download/current"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;questo&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt; indirizzo, ma Thomas Baier annuncia che presto sarà aggiornata la relativa &lt;a href="http://rcom.univie.ac.at/"&gt;pagina web&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-2450138546641274184?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/2450138546641274184/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=2450138546641274184' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/2450138546641274184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/2450138546641274184'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2007/03/rdcom-server-v25-e-rexcel-v175.html' title='RDCOM Server V2.5 e RExcel V1.75'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-1008375075376561862</id><published>2007-02-13T18:14:00.000+01:00</published><updated>2007-02-14T09:33:20.285+01:00</updated><title type='text'>Excel 2007 e R(D)COM</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Un aspetto interessantissimo della nuova versione di Excel è sicuramente il suo nuovo e più ampio limite in termini di "dimensione": 1,048,576 "righe" e 16,384 "colonne" (rispettivamente records e campi per un informatico, casi e variabili per uno statistico :-). Questi limiti, infatti, rendono sicuramente possibile l'utilizzo di excel come piattaforma di "base" per la gestione di dataset abbastanza grandi. Leggendo questa mia affermazione, un dataminer che lavora con SAS si farà una bella risata nel pensare alle dimensioni (in termini di records, campi e terabyte) dei dataset che lui stesso reputa grandi!!!!! Tuttavia il passaggio da 65,536 a 1,048,576 records aumenta di molto le possibilità di usare Excel come strumento di analisi di dati. Ovviamente non sto pensando a questo foglio elettronico come al motore di analisi del dato, ma sto considerando la possibilità di interagire, tramite &lt;a href="http://sunsite.univie.ac.at/rcom/"&gt;R(D)COM&lt;/a&gt;, con il software R. Quest'ultimo, infatti, permette sicuramente la possibilità di ricorrere ad un elevato numero di librerie di "funzioni" che, a volte, mi sembrano più aggiornate e più affidabili di quanto sviluppato nei software commerciali.&lt;br /&gt;Attualmente sto seguendo (sulla mailing list) le discussioni degli sviluppatori relative agli aggiornamenti di R(D)COM (o meglio, aggiornamento di RExcel) per una release compatibile con Excel 2007 e, ovviamente, non tarderà ad arrivare una versione stabile.&lt;br /&gt;Infine, ma non per importanza, bisogna sottolineare che le possibilità di utilizzo di R ed Excel per dataset "grandi" (...e ancora una volta ci saranno sicuramente pareri discordanti...) sono direttamente dipendenti dalla macchina sui cui girano i dati. Le possibilità di sfruttare questi nuovi e più ampi limiti di Excel, infatti, sono legati ad un doppio processore e a macchine con ram più consistenti di quelle a cui siamo stati abituati fino ad ora.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-1008375075376561862?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/1008375075376561862/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=1008375075376561862' title='4 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/1008375075376561862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/1008375075376561862'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2007/02/excel-2007-e-rdcom.html' title='Excel 2007 e R(D)COM'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-116680402269113387</id><published>2006-12-22T16:26:00.000+01:00</published><updated>2007-01-22T09:42:52.102+01:00</updated><title type='text'>Google PageRank</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;L'anno scorso lessi un breve ed interessante manualetto sul fuzionamento di Google ed ora segnalo l'esistenza della &lt;/span&gt;&lt;a href="http://www.internetbookshop.it/ser/serdsp.asp?shop=1&amp;c=KCM0TSZU7XGGY"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;seconda edizione&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;.&lt;br /&gt;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.&lt;br /&gt;Tra tutto il materiale che ho letto in rete mi è piaciuto molto quello che ho trovato su &lt;/span&gt;&lt;a href="http://pr.efactory.de/"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;questo sito&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;, in particolare la pagina relativa &lt;/span&gt;&lt;a href="http://pr.efactory.de/e-pagerank-algorithm.shtml"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;all'algoritmo di calcolo&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;.&lt;br /&gt;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.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-116680402269113387?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/116680402269113387/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=116680402269113387' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/116680402269113387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/116680402269113387'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2006/12/google-pagerank.html' title='Google PageRank'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-116617566856013331</id><published>2006-12-13T03:38:00.000+01:00</published><updated>2007-03-15T15:50:23.383+01:00</updated><title type='text'>R commander e SciViews-R</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Con questo post segnalo l'esistenza di alcuni progetti volti a creare una GUI per &lt;a href="http://www.r-project.org/" target="_blank"&gt;R&lt;/a&gt; , 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: &lt;/span&gt;&lt;a href="http://socserv.mcmaster.ca/jfox/Misc/Rcmdr/" target="_blank"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;R Commander&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt; e &lt;/span&gt;&lt;a href="http://www.sciviews.org/SciViews-R/index.html" target="_blank"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;SciViews-R&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;. 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 &lt;&lt;...&lt;em&gt;you must make sure you install at least R version 2.2.0&lt;/em&gt;..&gt;&gt;. 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.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;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.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-116617566856013331?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/116617566856013331/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=116617566856013331' title='5 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/116617566856013331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/116617566856013331'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2006/12/r-commander-e-sciviews-r.html' title='R commander e SciViews-R'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-116617542269846990</id><published>2006-11-14T03:38:00.001+01:00</published><updated>2008-04-18T14:37:51.099+01:00</updated><title type='text'>MARS: multivariate adaptive regression splines</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;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 &lt;/span&gt;&lt;a href="http://www-stat.stanford.edu/" target="_blank"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Stanford University&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;. 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 &lt;/span&gt;&lt;a href="http://stat.stanford.edu/~jhf/" target="_blank"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Jerome H. Friedman&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;...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 &lt;/span&gt;&lt;a href="http://www.salfordsystems.com/doc/MARS.pdf" target="_blank"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;questo indirizzo&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;. Potete notare che il materiale deriva dal sito della &lt;/span&gt;&lt;a href="http://www.salfordsystems.com/index.php" target="_blank"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Salford System&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;, 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 &lt;/span&gt;&lt;a href="http://www.tstat.it/index.htm" target="_blank"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;TStat&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;. 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 &lt;/span&gt;&lt;a href="http://micheledemeo.blogspot.com/2006/11/aritmetica-floating-point.html" target="_blank"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;qui&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;). 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: &lt;/span&gt;&lt;a href="http://azzalini.stat.unipd.it/Libro-DM/index.html" target="_blank"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Analisi dei dati e data mining&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;. Penso che sia un ottimo libro in lingua italiana sul data mining, ma il livello è sicuramente introduttivo. Dimenticavo :-), ecco la frase di cui parlavo:...&lt;em&gt;the direct extension of piecewise parametric modeling to higher dimensions (n &gt; 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&lt;/em&gt;... . Per quanto riguarda la possibilità di implementare un tale modello con strumenti open source, per fortuna che c'è &lt;/span&gt;&lt;a href="http://www.r-project.org/" target="_blank"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;R&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;. Nell' &lt;/span&gt;&lt;a href="http://www.stat.ucl.ac.be/ISdidactique/Rhelp/library/mda/html/00Index.html" target="_blank"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;mda Package&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt; è disponibile la funzione mars, tuttavia lo stesso autore sottolinea che si tratta di una procedura ancora in fase di test (...svantaggi dell'essere gratis????.... :-) &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-116617542269846990?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/116617542269846990/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=116617542269846990' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/116617542269846990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/116617542269846990'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2006/11/mars-multivariate-adaptive-regression.html' title='MARS: multivariate adaptive regression splines'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-116617512140599408</id><published>2006-11-11T03:45:00.000+01:00</published><updated>2006-12-15T10:35:17.563+01:00</updated><title type='text'>aritmetica floating point</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;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&amp;amp;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 &lt;/span&gt;&lt;a href="http://matrixhasu.altervista.org/uni/cn/html/node12.html" target="_blank"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;questo&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt; e &lt;/span&gt;&lt;a href="http://pitagora.dm.uniba.it/~iavernaro/auxil_file/informatica/floating.pdf" target="_blank"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;quest'altro&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;.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).&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-116617512140599408?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/116617512140599408/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=116617512140599408' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/116617512140599408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/116617512140599408'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2006/11/aritmetica-floating-point.html' title='aritmetica floating point'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-116617468195592592</id><published>2006-11-05T03:50:00.000+01:00</published><updated>2006-12-15T10:32:48.210+01:00</updated><title type='text'>Basilea 2</title><content type='html'>&lt;a href="http://photos1.blogger.com/x/blogger/6031/4177/1600/131101/_2941432.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/x/blogger/6031/4177/400/960099/_2941432.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/x/blogger/6031/4177/1600/725580/_2941432.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Per chiunque fosse interessato a &lt;em&gt;&lt;strong&gt;Basilea 2&lt;/strong&gt;&lt;/em&gt;, il nuovo accordo internazionale sui requisiti patrimoniali delle banche, vi segnalo un buon libro uscito da poco per la FrancoAngeli:&lt;/span&gt;&lt;a href="http://www.francoangeli.it/Ricerca/Scheda_Libro.asp?ID=14406&amp;Tipo=Libro&amp;amp;titolo=Basilea+2%3A+diagnosi+e+terapie.+Guida+pratica+per+le+imprese" target="_blank"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Basilea 2: diagnosi e terapie. Guida pratica per le imprese&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt; di Marco Muscettola. &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;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.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-116617468195592592?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/116617468195592592/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=116617468195592592' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/116617468195592592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/116617468195592592'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2006/11/basilea-2.html' title='Basilea 2'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37227446.post-116617254236795535</id><published>2006-11-04T03:47:00.011+01:00</published><updated>2010-10-12T08:42:52.997+01:00</updated><title type='text'>una breve premessa</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;Un po' di info su le trovate su &lt;a href="http://www.linkedin.com/in/micheledemeo"&gt;linkedin&lt;/a&gt;. Se volete, potete contattarmi su micheledemeo-gmail-com. &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37227446-116617254236795535?l=micheledemeo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://micheledemeo.blogspot.com/feeds/116617254236795535/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37227446&amp;postID=116617254236795535' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/116617254236795535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37227446/posts/default/116617254236795535'/><link rel='alternate' type='text/html' href='http://micheledemeo.blogspot.com/2006/11/una-breve-premessa.html' title='una breve premessa'/><author><name>michele de meo</name><uri>http://www.blogger.com/profile/02307302145361513957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_W8s48295mkM/SlR6lHcS_vI/AAAAAAAAAHk/MiWuaoyzuIQ/S220/mdmSimpson.JPG'/></author><thr:total>0</thr:total></entry></feed>
