





























Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Appunti/sbobine delle lezioni di RSTUDIO per l'esame di Analisi dei dati e data mining.
Tipologia: Appunti
1 / 37
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!






























Bisogna considerare SOLO R studio. Il software statistico è R. R studio è una comoda interfaccia perché, al contrario di R, è strutturato in 4 parti. In R, l’unica visualizzazione che abbiamo è la console e cioè il posto dove scrivo i comandi, che in R studio abbiamo in basso a sinistra. La parte in alto a sinistra è il file di sintassi. Questo nel progetto sarà l’elemento cruciale e cioè ciò che mentre facciamo le analisi dobbiamo curare con molta attenzione. Il file di sintassi è un file che raccoglie tutte le istruzioni che do a R e che vanno a buon fine e cioè che non producono un errore e che mi servono per fare il lavoro che voglio fare. Questo mi aiuta a conservare le istruzioni che ho dato a R che non producono un errore e che mi servono per il mio lavoro. Una buona abitudine è quella di commentare quello che scrivo come riga di comando. Il commento non è una istruzione. Per introdurre un commento devo iniziare con un # che sarà di colore verde. A questo punto si può scrivere il commento. Scrivendo senza # per R non ha nessun senso e mi porterebbe ad un errore. Il simbolo del Floppy disk è sinonimo di salva. Nella finestra in alto a destra NON usare import dataset! Bisogna farlo da riga di comando. Anche in questa parte a destra abbiamo il floppy disk e una cartella con una freccia che esce fuori verde. Questo è apri un environment. In basso a destra ci sono 5 sottocartelle. Questa finestra serve per installare i pacchetti, per aggiornarli e per spuntarli. Appena si spunta un pacchetto compare nel quadrante in basso a sinistra. Ogni volta che devo utilizzare un pacchetto devo spuntarlo all’inizio di ogni sessione. Faccio così:
Posizionandomi in un qualunque punto di una linea di comando e premendo Run nella console mi scrive la linea di comando scelta. Posso anche farlo selezionando più righe. Qualora ci fosse un errore nella linea di comando, eseguendo la riga di comando (Run) esce nella console un errore in rosso. L’assegnazione : si fa con una freccetta che punta verso sinistra, che si costruisce così <-. Es: assegno all’oggetto a il numero dieci a <- 10 e premo invio Es: assegno all’oggetto b il numero 12 b <- 12 e premo invio Così facendo, se guardo nel quadrante in alto a destra troverò questo: L’Environment è il posto dove viene posizionato ciò che creo. Gli oggetti di R possono non essere solo numeri. Posso creare un c che è una stringa. In questo caso bisogna delimitare la parola tra “..”. Posso andare anche a costruire degli elementi logici. Faccio ad esempio l’oggetto e che può essere TRUE e perciò una condizione logica vero o FALSE. Posso copiarle nel file di sintassi facendo Ctrl C e Ctrl V. Facendolo trovo un errore (X). In questo caso il problema è il simbolo > chiamato prompt dei comandi. Bisogna perciò ricordare di togliere il >. Se compare il bollino rosso e provo ad eseguire la riga di comando si trova un errore e perciò si blocca il programma. Quando prendo una cosa dalla console e la copio sopra non eseguo il comando. Lo eseguo solo se premo RUN. Se scelgo lo stesso nome ed eseguo la riga mi cambia l’oggetto. Bisogna perciò stare molto attenti a non utilizzare lo stesso nome per due cose. Per eliminare devo scrivere nella console rm(cosa voglio eliminare) se voglio eliminare g → Se mi compare un + significa che nel comando manca qualcosa. Se si capisce cosa manca si aggiunge la cosa che manca dopo il + sennò si preme escape e si ritorna ad avere >. Se sbaglio e scrivo ad esempio a <- 12 invece di 10 basta dare un altro comando giusto a <- 10 in quanto sovrascrive. Oppure posso rimuovere l’oggetto con rm.
Se voglio salvarli entrami devono essere selezionati entrambi e bisogna fare safe selected. Nella history ho la storia di tutti i comandi che ho dato. In alcune situazioni può tornare utile. La sintassi deve essere molto molto molto curata. Per rientrare su R e trovare il progetto come lasciato, ci sono due modi:
Con il simbolo de dollaro $ R mi permette di prendere determinati oggetti all’interno di altri oggetti. Le liste sono il modo con il quale R mi restituisce i risultati delle analisi che io faccio. Vedendo cosa c’è nell’oggetto 6 vediamo questo: La parentesi quadra è il codice con il quale R mi consente di entrare all’interno di un determinato oggetto. Se io volessi tirare fuori il numero 12 dal vettore 1 io posso farlo utilizzando la parentesi quadra. Scrivo: Scrivo 2 tra parentesi per tirare fuori il 12 perché è il secondo elemento, scrivendo 1 quindi avrò 10. Per tirare fuori qualcosa dalla lista io devo dire a R quale è l’elemento all’interno della lista: a me interessa 10,12 che si trova come quarto all’interno della lista e devo utilizzare [[…]]. Se io volessi prendere solamente il numero 12 che è: Per dare un nome agli oggetti che sono nella lista faccio così: Abbiamo dato così il nome vettore al vettore 1 e nell’Environment avremo infatti Per avere 12 come risultato scrivo Mi compaiono in automatico tutti gli elementi che hanno un nome nella lista. Per trovare 12 farò
Posso trasformare con as.numeric(…) il vettore 4 = “10” “13” che è character in un vettore numerico. Posso poi salvarlo in un oggetto o meno. Se poi chiedo mode io trovo proprio numeric. Per convertirlo in stringa invece faccio as.character(vettore1). Chiedendo di farlo con il vettore 3 troverò che: E perciò ha cancellato le stringhe non potendole trasformare in numeri. Se volessi convertire in numerico solo quella parte del vettore 3 che può essere trasformata farò Per sapere qual è la dimensione di un vettore uso la funzione length e cioè lunghezza. Attenzione: In questo caso dà 2. Creando un nuovo vettore con una combinazione di diversi numeri posso fare la somma sum dei numeri: Posso anche fare il prodotto prod o calcolare il minimo min o il massimo max. Ridefinisco il vettore in uno spazio a sei dimensioni di cui non conosco questa (NA) Facendo sum troverò Per fare la somma dovrò considerare solo i primi 5 elementi senza NA. Questo con i : posso farlo solo se gli elementi sono continui. Un altro modo per ottenere lo stesso risultato è togliere la componente NA o Questo ultimo caso posso utilizzarlo solamente nel caso in cui l’elemento da eliminare è l’ultimo. Se gli NA sono diversi e stanno in posizioni diverse nel vettore questo percorso potrebbe non essere efficiente.
Vediamo ora le matrici. Ci sono molti modi per costruirle in R. Quella che per noi è la matrice dei dati, R ha due termini per identificarla:
vediamo cosa ci esce: In dati 1 ho le “ “ mentre i dati 2 no. In dati 1 la colonna età, che era nella sua origine numerica, per poter andare all’interno dell’oggetto di classe matrix dati1 è stata trasformata in stringa in quanto questa classe accetta solamente elementi costituenti omogenei (o tutti numeri o tutte stringhe). Se mescolo numeri e stringhe vi è una coercizione dei numeri a stringa. Nel caso di dati2 età ha mantenuto la sua natura. Questo possiamo vederlo facendo per esempio la somma dell’età: Gli oggetti di tipo data frame sono più sofisticati in quanto mi permettono di mettere al loro interno elementi di natura diversa. Faccio anche la media aritmetica così: Facendolo con dati 1 mi esce l’errore in quanto l’oggetto di classe matrix è per R archiviato come un oggetto diverso rispetto al data frame. Vediamo ora come fare a costruire una distribuzione di frequenza (quanto accade un elemento rispetto al totale). Questo lo costruiamo con table. Per la matrice dati2, fatta con data frame posso utilizzare il $. In termini di frequenze relative dovrei farlo diviso n, dove n è il numero delle righe. Le stringhe sono keys sensitive. Se di studenti ne ho due R non riconosce questa cosa. Facendo così risolvo il problema
Il comando rep replica la cosa che io scrivo all’inizio, un numero di volte pari a quante ne scrivo dopo. Andiamo a costruire un vettore chiamato titolo.studio e costruiamo una matrice con il rep. Io vorrei una tabella nella quale la prima modalità è licenza media, poi diploma, laurea e dottorato, così da rispettare questo tipo di ordinamento. Per far fare questa cosa uso il comando factor. Utilizzando il barplot ottengo il grafico a barre. Se dà errore basta allargare il quadrante in basso a destra. Il diagramma a torta in R si fa utilizzando pie. Cambio colore così: Si possono personalizzare i grafici in R in maniera molto avanzata.
La linea più spessa al centro è la mediana. All’estremo superiore della scatola ho il terzo quartile, sotto il primo e quelli estremi sono i baffi e cioè il confine dei valori ritenuti non anomali e si trovano facendo terzo quartile + ½ differenza interquartile e primo quartile - 1/2 la differenza interquartile. Rappresentiamo adesso in questo tutte le variabili della matrice 3 dei dati. Ora vediamo come andare a calcolare delle caratteristiche descrittive delle mie basi dati e perciò di x1,x2 e x3. Media: Mediana: Deviazione standard: Varianza: o facendo sd alla seconda. Posso anche calcolare un sommario di tutte le più importanti scrivendo summary. Esistono altri pacchetti che mi permettono di calcolare delle statistiche descrittive più complete. 14/4/ Bisogna fare attenzione alla base dati e quale è l’unità statistica. Per importare su R la matrice devo partire dalla cella A1. Devo pulire i nomi ed eliminare tutti i colori e tutto ciò che non mi serve. Le fonti dei dati sono un elemento essenziale. Bisogna utilizzare nomi brevi anche per le variabili.
Se ho un dato mancante faccio l’imputazione e cioè scrivo il presumibile valore. Esistono moltissimi modi per fare l’imputazione ma il modo più semplice è facendo la media dei valori presenti. È bene scrivere il blocco delle variabili tipo ISTRUZIONI o LAVORO Una volta costruita la matrice di dati e che questa non ha righe di troppo, si possono importare i dati su R. Su R si possono importare tantissimi tipi di dati e verranno importati soprattutto file Excel e formati testo. Proviamo a importare le basi dati caschool (Excel) e in formato test (txt) regr_caschool. Iniziamo con il file di testo. Il file è molto disordianto. Se ci mettiamo dopo Number e con la freccia destra andiamo a dist_cod vediamo che è presente un tab. In questo file sono presenti delle variabili numeriche che fanno riferimento a variabili specifiche. Come separatori dei decimali abbiamo il. e questo è fondamentale. Inoltre, va osservato come la prima riga contiene il nome delle variabili. Una volta che abbiamo studiato la matrice dei dati o abbiamo un file che ci spiega le caratteristiche della base dati (es. il delimitatore è il tab, i numeri decimali vengono identificati dal punto, ecc.) siamo pronti per effettuare l’importazione. Il passo essenziale da fare è iniziare con la working directory e procediamo così Il comando per importare è quindi read.delim2 e devo utilizzare il nome preciso del file tra “”. Diciamo poi a R header= true, e poi definire la separazione, che avviene con il tab e viene scritto come “\t” e i decimali che vengono individuati con “.”. Se nel mio file il separatore non è il tab ma è lo spazio Con il punto e virgola stessa cosa e metto “;” Se il carattere che identifica i decimali è la virgola mettiamo “,” Se la matrice dei dati è in formato testo bisogna fare attenzione al separatore e al carattere che identifica i decimali, così da adeguare il codice. Se ho numeri molto grandi su excel e c’è il separatore delle migliaia, bisogna toglierlo andando su numeri e deselezionando “usa il separato delle migliaia”. Se il file fosse Excel bisogna: indico il nome del file tra virgolette, indico poi il foglio sul quale si trovano i miei dati con sheet=”nome foglio” il programma mi dà però un errore: Devo utilizzare un pacchetto apposito e posso o selezionarlo nella libreria o scriverlo Una volta dato bisogna prenderlo e metterlo prima del settaggio. Il file deve perciò essere diviso in due parti: nella prima parte abbiamo dei comandi essenziali e cioè i pacchetti di cui abbiamo bisogno e la working directory; la seconda parte conterrà le righe di comando che servono per fare l’analisi.
numero delle componenti principali da trattenere può essere modificato mettendo ncp= ad un altro numero. Faccio perciò l’analisi per componenti principali: Do il Run e trovo Cliccando su impresa.pca dell’environment vedo che è stata creata una lista Richiamando eig, che sta per eigenvalue (autovalore), trovo
Da qui capisco il numero di componenti da trattenere. Se uso il valore dell’autovalore maggiore di uno trattengo i primi due. 15,34% lo ottengo se divido 0,92/tutti gli autovalori ma, dato che la somma degli autovalori coincide con la traccia della matrice da fattorizzare, so che la matrice ha dimensione 6*6 e la traccia sarà chiaramente 6. Finchè non ho una variabilità abbastanza elevata devo andare avanti con le componenti in ncp, solitamente però con le prime 5 ho già una variabilità elevata. Mi limiterò a commentare i dati derivanti dalla prima e seconda componente principale in questo caso utilizzando l’autovalore maggiore di uno. Il grafico è fatto utilizzando le prime due componenti principali in quanto è impostato di default. Possiamo però cambiarlo se vogliamo. 16/4/ Ricominciamo facendo il settaggio e inserendo tutti i pacchetti che ci servono. Importiamo di nuovo i nostri dati. O se abbiamo salvato facciamo run. Facendo PCA(impresa) R effettua l’analisi per componenti principali fattorizzando (standardizzando) la matrice dei dati. Se i miei dati sono tali da consentire un’analisi per componenti principali fatta su dati di tipo scarto basta fare: In questo caso per noi non è appropriato questo approccio, perciò, o lo elimini o lo porto a TRUE. Dando il Run mi appare un’oggetto che è una lista e aprendolo trovo il contenuto. Ieri ci siamo concentrati sull’eig e abbiamo visto che se la richiamiamo abbiamo informazioni sugli autovalori e la varianza di ogni variabile e quella cumulata. Tramite questo approccio possiamo prendere la nostra decisione su quante componenti principali portarci dietro. Vedendo cosa altro è presente in impresa pca, vediamo che c’è var e ind, queste sono tutte le info necessarie disponibili sullo spazio dei punti var (variabile) e ind (individuo). Per i punti variabili abbiamo le coordinate, il coefficiente di coordinazione, il cos3 e il contributo assoluto. Per quanto riguarda gli individui abbiamo le coordinate (posizionamento che ogni individuo ha sulle diverse componenti principali), la coordinazione non c’è perché non ha senso, il cos2 e cioè la misura della qualità, la contribuzione e la distanza. La distanza è la distanza del punto dal nuovo baricentro, costituito dall’origine del nuovo sistema di riferimento con le due componenti principali. Bisogna andare a d interpretare le componenti principali. Bisogna studiare il coefficiente di correlazione per ogni variabile e componente principale. Questo possiamo farlo così: dato che una parte dell’output di impresa pca riguarda le variabili e all’interno di questa lista c’è la cor faccio:
Il nostro ragionamento è comparativo tra le aziende che ho esaminato. Dobbiamo studiare la qualità di questi punti e andiamo perciò a vedere il cos2. I numeri scritti sono auto esplicativi. Quanto più il valore del cos2 è alto, tanto più quel punto nella componente principale è meglio riprodotto e tanto maggiore sarà la fiducia che posso dare alla mia affermazione. Posso dire che Plasmon è redditiva perché la sua coordinata sulla componente principale è 4 ed è quella più redditiva. Posso dire che ho molta fiducia perché la qualità con cui il punto Plasmon è riprodotto nella dimensione fattoriale è molto alto, quasi 0,9. Ad esempio, Ferrero non è ben rappresentata dalla prima componente principale in quanto il cos2 è 0,3. Questa è ben posizionata e redditiva ma la mia fiducia a proposito di questo non è molto elevato. Dato che la seconda componente ha una relazione di tipo inverso con l’indebitamento, significa che alti valori della seconda componente principale corrispondono a bassi valori di indebitamento sul capitale. Se sono fortemente avversa al rischio mi piacciono le imprese poco indebitate e che quindi avranno un punteggio alto. Sceglierò perciò la Ferrero anche se ha il cos2 discreto. Potrei approfondire facendo un’analisi di bilancio. La statistica è qualcosa che ci fornisce un insieme di strumenti che ci servono per discernere tra tante osservazioni, per capire meglio tendenze, atteggiamenti, comportamenti di tante unità statistiche insieme. Nel report dirò: “Plasmon, avendo una qualità della rappresentazione sulla prima componente principale molto buona, noi concludiamo con fiducia che è un’impresa redditiva, ma non possiamo utilizzare lo stesso convincimento circa la sua posizione debitoria in quanto la qualità del fatto che la rappresentazione sulla componente seconda è mediocre. Maggiore cautela è necessaria in quanto cos2 è molto basso e perciò le nostre affermazioni debbono essere accompagnate da grande cautela e dallo studio dei bilanci. ” Un altro comando che consente di leggere contemporaneamente più risultati dell’ACP è il summary: La prima parte mi dà gli autovalori, la % di varianza spiegata da ogni componente e la % cumulata. Da questa prima parte della tabella io riesco a decidere quante componenti portarmi dietro. La seconda parte mi dà i risultati in una unica tabella, sia per quanto riguarda i punti individuo, sia per quanto riguarda i punti variabile. Per disegnare un plot che dia i posizionamenti dei punti individuo della prima e terza componente principale faccio così:
Tra parentesi abbiamo la percentuale di variabilità assorbita dalla singola dimensione fattoriale Un’altra cosa utile è eseguire il comando e poi dopo comprendiamo cosa significa: Con il cex è possibile rimpicciolire l’etichetta dell’unità statistica. 19/4/ Come assegnare il nome all’unità statistica in un momento successivo all’importazione della base dati e come fare per usare e per dichiarare che alcune variabili sono degli elementi illustrativi. Questo vale sia se importiamo i file da excel sia da testo. Come faccio ad assegnare il nome all’unità statistica se in fase di importazione non l’ho fatto? Così facendo R non riconosce il nome delle righe riconoscendola come variabile ma nel suo interno sono presenti delle stringhe. Una soluzione che non ci piace molto potrebbe essere: “togli tutte le righe ma togli la prima colonna” Non avendo dei nomi per i punti individuo questo metterà dei numeri invece che i nomi. Per far comprendere a R che quelle sono le mie unità statistiche faccio: Così la prima colonna è interpretata da R correttamente come nome dell’unità statistica. Come utilizzare le variabili di tipo illustrativo? Le variabili illustrative sono delle variabili che non entrano direttamente nella matrice da fattorizzare. Gli autovettori e autovalori vengono calcolati al netto della variabile illustrativa. Può però essere utile proiettarli nel grafico degli individui. Per fare questa cosa, importiamo una matrice dei dati che è su classroom: per l’estensione.DAT bisogna usare read.table Il file non aveva intestazioni di colonna e gliele abbiamo date noi facendo il c. Ora assegniamo una etichetta e cioè un testo al valore 1 e 2 nel pilot della variabile group. 1 significa che si è apprendisti mentre 2 piloti