Skip to main content

Hai raccolto dei dati per la tua tesi di laurea ma non sai come analizzarli? Oggi parleremo di come fare analisi dei dati su R per la tua tesi di laurea.

Ciao a tutti e benvenuti in questo nuovo articolo del blog di Thesis 4u, oggi parleremo di analisi dei dati, argomento spinoso che risulta complicato per molti, soprattutto per chi non ha solide basi statistiche. Cercheremo di rendere tutto quanto il più semplice possibile dando dei consigli per iniziare a capirci qualcosa di più.

Parleremo nello specifico di R, software statistico che ti permetterà di svolgere l’analisi dei dati in maniera precisa e abbastanza semplice.

Perchè complicarci la vita con R quando possiamo utilizzare Excel?

In realtà, Excel appare semplice e immediato ma lo è solo per un certo tipo di operazioni, cioè quelle semplici, brevi e soprattutto one shot, infatti, con excel non siamo in grado di replicare un’analisi.

Inoltre, anche per quello che riguarda i grafici R è molto più adatto sopratutto in termini di precisione e qualità del grafico finale; ciò non significa che non si debba più utilizzare excel, anzi, per operazioni veloci può risultare più comodo, però se quello che si vuole è un lavoro preciso e fatto bene allora R è la scelt migliore.

Non sei convinto? Dai una letta a questo articolo che appronfondisce le differenze tra R ed Excel!

Per procedere oltre è fondamentale avere installato sul proprio pc R: potete scaricarne una copia gratuita da qui. Sullo stesso sito potrete trovare guide e manuali introduttivi.

R ha anche un’interfaccia utente molto comoda chiamata R studio, questa va scaricata a parte e consiglio di farlo perchè risulterà essere molto comoda.

Bisogna avere installati sul pc sia R che R studio ma ogni volta dovremo aprire soltanto R studio per svolgere analisi dei dati.

Andiamo a vedere più nello specifico come funziona R e come svolgere l’analisi dei dati!

Analisi dei dati

Sei alle prese con la tesi di laurea ma hai difficoltà ad andare avanti? Abbiamo scritto una guida che ti aiuterà, scaricala è gratis!

Alcune basi di R studio

A questo punto apriamo R studio sul nostro pc, quello che vediamo è un ambiente diviso in 4 sezioni:

  • In alto a sinistra abbiamo lo spazio dedicato agli script, i ”fogli” su cui scriveremo le righe di codice che ci servono.
  • In basso a sinistra troviamo la console vera e propria, è da lì che i codici partono e dove troveremo i nostri risultati.
  • In alto a destra si trova l’environment, lo spazio dove si salvano tutti gli oggetti che abbiamo creato come dataframe, matrici o modelli di regressione.
  • In basso a destra invece abbiamo una sezione dove è possibile ricercare i file e dove compariranno i nostri grafici dopo averli richiesti tramite codice nella console.
analisi dei dati

Generalmente troverai in questo modo le 4 sezioni ma ciò potrebbe cambiare, l’importante è saper riconoscere la funzione di ogni sezione, la posizione in cui si trova è irrilevante.

Per provare a fare un test potete scrivere nella console di R anche semplici operazioni matematiche, infatti R oltre che per l’analisi dei dati possiamo utilizzarlo anche come una semplice calcolatrice.

Quando si fanno dei test o delle prove non è necessario salvare le operazioni che si fanno ma quando inizierete l’analisi dei dati vera e propria è consigliabile scrivere tutto sempre su uno script, potete aprire un nuovo script cliccando su aggiungi un nuovo file in alto a sinistra.

Per costruire un oggetto su R dobbiamo operare con un’assegnazione, essa si può fare scrivendo ”<-“, ma facciamo un esempio pratico.

X <-(3+4)/2

In questo modo abbiamo creato un oggetto, cioè X a cui abbiamo assegnato il risultato dell’espressione.

Si possono assegnare anche stringhe di caratteri come:

X <- “Pippo”

Dobbiamo fare attenzione ad una cosa molto importante: R è case-sensitive, ciò significa che farà sempre distinzione tra lettere maiuscole e minuscole. Se hai creato un oggetto chiamato Pippo ma proverai a richiamare l’oggetto nella console scrivendo pippo con la minuscola R non sarà in grado di trovarlo.

Importa i tuoi file su R

Partiamo dal presupposto che qualsiasi operazione di analisi dei dati tu voglia fare troverai una descrizione dettagliata all’interno dell’Help di R, lo trovi nella sezione in basso a destra su R studio;

Supponendo di aver raccolto dei dati e di averli appositamente trasformati in un data frame con un formato txt siamo in grado di importare il file su R.

Per importare il file è sufficiente cliccare in alto in a destra su importa file e selezionare il nostro file: è molto importante dire ad R se il file presenta delle etichette nella prima riga oppure no perchè questo modificherà il modo in cui R legge le righe e le colonne.

Cosa sono le etichette? Sono semplicemente dei nomi che diamo ad ogni colonna per identificare la variabile; si trovano nella prima riga e non vanno considerate come variabile numeriche, perciò dobbiamo dire ad R che nella prima riga troverà le etichette, cioè i nomi delle variabili.

Una volta importati i nostri dati supponendo di aver chiamo il file ”dati” possiamo fare questa operazione:

Attach(dati)

In questo modo R è come se avesse studiato ogni singola variabile del data frame e possiamo richiamarla singolarmente senza dover fare riferimento al data frame di provenienza.

Successivamente potremmo scrivere names(dati) per far si che R ci dica i nomi di tutti le variabili considerate nel nostro data frame.

In caso non avessimo ancora un data frame e volessimo crearlo su R è possibile: basterà comporre le righe e colonne con i comandi opportuni e successivamente utilizzare il comando write.table().

Analisi dei dati

Vorresti che la tua tesi fosse bellissima da vedere? Hai mai pensato di impaginarla con LateX? Se si, dovresti leggere il nostro articolo su come scrivere la tesi in LateX!

Statistiche descrittive

A questo punto siamo pronti per procedere con la nostra analisi dei dati; in questo articolo non scenderemo troppo nel dettaglio ed analizzeremo principalmente le statistiche descrittive di base.

Le statistiche descrittive analizzano, classificano e sintetizzano tutte le caratteristiche della popolazione considerata, permettendo di presentare i dati in modo molto più breve e immediato.

Immagina di dover leggere il valore di una variabile per tutte le osservazione, supponiamo 1000 volte; è molto più utile utilizzare la media di tutti i valori di quella variabile, stima che tra l’altro sarà certa e priva e di errore.

Summary: scrivendo sulla console ”Summary(nome della variabile)” R ci presenterà alcune statistiche della variabile che abbiamo selezionato, in particolare ci dirà primo quartile, mediana, media, terzo quartile; con questi dati saremo già in grado di dire se la nostra distribuzione per quella variabile sia simmetrica oppure no.

Min e max: scrivendo min(variabile) e max(variabile) R ci dirà quali sono il massimo e il minimo della distribuzione così da conoscerne l’ampiezza.

Deviazione standard: per calcolare la deviazione standard utilizzeremo il comando sd(variabile), ci servirà per calcolare il coefficiente di variazione con la formula deviazione sd(variabile)/media. La deviazione standard viene chiamata anche scarto quadratico medio e rappresenta una stima della variabilità della popolazione esprimendo la dispersione dei dati attorno alla media.

Istogramma: per avere un riferimento grafico della variabile che stiamo analizzando possiamo utilizzare il comando hist(variabile), questo farà comparire l’istogramma nella sezione in basso a destra. L’istogramma è un grafico molto utile e lo utilizziamo per rappresentare in classi un carattere continuo; è formato da tanti rettangoli tante quante sono le classi considerate.

Box-plot: un’altra rappresentazione grafica molto utile è il boxplot che otteniamo scrivendo semplicemente ”Boxplot(variabile)”; ci permette di avere informazioni riguardo la mediana ma anche su possibili outliers. Il boxplot è già un grafico un po più specifico e non di immediata comprensione, esso rappresenta la distribuzione dei dati per una variabile continua. Esso è formato da un rettangolo e dei baffi che determinano l’ampiezza della distribuzione.

Le tabelle di frequenza

Quando si inserisce un’analisi dei dati all’interno della propria tesi può risultare molto utile mostrare delle tabelle di frequenza per dare un’idea della composizione dei propri dati, vediamo come fare ciò su R.

Tabelle di frequenza assoluta: sarà sufficiente scrivere table(variabile) per ottenere la tabella di frequenza assoluta.

Tabelle di frequenza relativa: qui dobbiamo seguire una precisa serie di comandi, dove aver fatto andare i comandi sum(table(variabile)) e n=lenght(variabile) possiamo assegnare ad un oggetto la frequenza relativa scrivendo tab.freq.rel=table(variabile)/n.

Tabella di frequenza percentuale: siamo nel caso più semplice, basterà moltiplicare per 100 la tab.freq.rel ed assegnare il risultato ad un oggetto.

Se invece siamo interessati a mostrare la relazione tra due variabili possiamo utilizzare il comando table(variabile1,variabile2) per ottenere una tabella che mette in relazione le due variabili.

I grafici per variabili quantitative

Prima abbiamo accennato istogramma e boxplot ma vediamo più nello specifico i grafici che possiamo utilizzare nella nostra analisi dei dati e come maneggiarli al meglio per poi mostrarli nel testo della nostra tesi di laurea.

Istogramma: se inviamo semplicemente il comando hist(variabile) otteniamo un istogramma dove sull’asse delle ordinate abbiamo le frequenze assolute; tavolta possiamo essere interessati ad avere invece le frequenza relative, basterà scrivere hist(variabile,freq=FALSE) ed otterremo così il medesimo grafico ma con un unità di misura diversa sull’asse delle ordinate.

Boxplot: con il comando visto precedentemente il comando boxplot estende i baffi del grafico sino alle osservazioni più piccole e lontane da tutti gli altri dati; per rendere il grafico più leggibile possiamo inserire un range che selezionerà solo un determinato intervallo di unità.

Il boxplot possiamo utilizzarlo anche per mettere in relazioni due variabili: dobbiamo scrivere in questo caso boxplot(split(variabile1,variabile2)) ed otteniamo un grafico con tanti boxplot tante quante sono le categorie considerate.

Plot: un altro grafico ancora diverso è il plot, esso proietta le unità mostrando la relazione tra due variabili, se i puntini seguono un andamento lineare crescente le due variabili potrebbero essere positivamente correlate. In questo caso dobbiamo utilizzare il comando plot(variabile1,variabile2)

Analisi dei dati

Ti serve una mano per procedere con la tua tesi di laurea? Prenota una call con noi e scopri il servizio di Thesis 4u consulting, verrai affiancanto da un consulente tesi!

Sperimenta un’analisi dei dati

Tutte queste informazioni su R ti hanno incuriosito e hai voglia di metterti all’opera? Trovi qui sotto uno script di introduzione ad R con il quale potrai iniziare a fare pratica, assicurati di avere R ed R studio installati sul tuo pc.

Una volta aperto R studio copia il codice qua sotto nella sezione in alto a sinistra, non dovrai fare altro che far partire i comandi per procedere con l’analisi dei dati.

#A.2 Iniziare ad usare R

3+5*3.5
7+2*3
(7+2)*3
2^3-3

(2+1)^(1/2)
sqrt(2+1)


log(5)
log10(6)
exp(3)
abs(-5)
cos(pi)
pi
exp(sqrt(30/2))

4>2
4>5

5!=5
5==5

#A.2.2 Assegnazione di valori

x<-2+(3-4*5)/2 
x
x-2 #..utilizzalo
x=5 #..sovrascrivilo
2.5->x.x #crea un altro oggetto
x/x.x #..fai una qualsiasi operazione con gli oggetti

y<-x>5 
y

Y<-x<= 5
Y 


z<-"Esempio"
z

x<-2
X


ls()
rm(x)
rm(x,x.x,y,z)

#A.2.3 Organizzazione del lavoro

getwd() #questa μe l'attuale dir di lavoro..
setwd("C:/varie") #cambiala..


#A.3 Vettori, matrici, array

#A.3.1  Vettori

x<-c(2,5,9.5,-3) #costruisci un vettore
x[2] #seleziona il suo secondo elemento
x[c(2,4)] #seleziona i suoi elementi nelle posizioni 2 e 4
x[-c(1,3)] #escludi quelli nelle posizioni 1 e 3
x[x>0] #seleziona i sui elementi positivi
x[!(x<=0)] #escludi i suoi elementi non strettamente positivi
x[x>0]-1
x[x>0][2]

peso<-c(80,70,82,76,90)
altezza<-c(170,168,176,181,180)
peso1<-peso[peso>80]
peso1
altezza1<-altezza[altezza<=170]
altezza1
peso2<-peso[altezza>170]

x

which(x>0)
which.min(x)
which.max(x)

length(x)
length(x[x>0])
length(x[x>0][2])


x<-1:10
x

seq(1,9,by=2)
seq(8,20,length=6)

x<-rep(1,10)#ripeti il valore 1 per 10 volte 
x<-rep(c(1,5),3)#ripeti la catena 1 - 5 per 3 volte 
y<-c(rep(2,3),4,5,rep(1,5))#replica il 2 tre volte poi metti un 4 e un 5 e poi replica 1 cinque volte 
y<-c("questo", "e", "un esempio")#si possono concatenare anche valori non numerici. usare "" per definire il carattere


x
sort(x) #in ordine crescente..
sort(x,decreasing=TRUE) #..in ordine decrescente
#la funzione sort di base mette l'ordine crescente se vogliamo il decrescente dobbiamo usare la negazione
x[order(x)]
order(y)#order in questo modo ordina le posizioni non i valori
x[order(x,decreasing=TRUE)]
xx<-c(100,15,20,21)
xx[order(xx)] #ordina x secondo i valori di xx

ax<-1:3
names(ax)
NULL
names(ax)<-c("lucius","sergius","catilina") #aggiungi i nomi
a<-c(sic=2,ric=2.4)

names(a) 
#visualizza i nomi



a<-1:5
b<-7:11
a+b
a*b
log(b)
d<-rep(10,5)
a+b+d
a*2+b
x<-26:3
length(x)
max(x)
min(x)
sum(x)
prod(x)
sort(x)
sum(x)/length(x) #calcolo della media
x<-seq(0,20,10)
x
x[1]
x[1:2]
x<-seq(1,10,2)
x[c(-1,-4)]#togli da x i valori in posizione 1 e 4

#A.3.2 Matrici

x<-matrix(1:10,ncol=5)#crea una matrice di 5 colonne con i numeri da 1 a 10
x
x<-matrix(1:10,ncol=5,byrow=T)#stessa matrice di prima ma ordinata per riga

x[,1]#seleziona la prima colonna
x[2,]#seleziona la seconda riga
x[3,2]#seleziona l’elemento [3,2]
x[,4:5]#seleziona solo le colonne 4 e 5
x[,-c(2,4)]#seleziona le colonne 1, 3 e 5


a<-matrix(1:6,nrow=2)
a<-matrix(1:6,nrow=2,byrow=T)
x<-3:8
matrix(x,ncol=2)#rendi il vettore x una matrice con 2 colonne
matrix(x,ncol=2,byrow=TRUE)
b<-matrix(1:6,nrow=2,byrow=TRUE) 

x<-c("pippo","pluto","topolino","paperino")
matrix(x,ncol=2)
matrix(c(3>=2,3<=5,2==2,1<0),nrow=2)#crea una matrice di 2 righe con la concatenazione logica 
cbind(1:2,c(1,-2),c(0,9))#dispone i tre vettori per colonne
rbind(1:2,c(1,-2),c(0,9))#...li dispone per righe
diag(x[,4:5])#estrae la diagonale principale [1] 710
X<-diag(1:3)#costruisce una matrice diagonale 
X

dim(x)
a<-rbind(peso,altezza)
b<-cbind(peso,altezza)
b[2,2]

b[,1]
b[1,]
b[1:3,2]
b[b[,2]>175,]
b[b[,1]>80,]

a<-matrix(0:5,nrow=2)
b<-matrix(seq(0,10,2),nrow=2)#seuqneza da 0 a 10 con passo 2
a+b
a*b
a==5
b<-matrix(seq(0,10,2),nrow=3)
d<-a%*%b 
solve(d)#fa l'inversa della matrice.
#se attribuisco all'inversa un oggetto e lo moltiplico per la matrice di base ottengo la matrice identit?
t(d)

matrix(,nrow=3,ncol=4)->ma
ma
ma[]<-1:12
ma

as.vector(x)#serve per forzare una matrice in vettore
a1<-t(as.vector(x))%*% as.vector(x)
a2<-as.vector(x)%*% t(as.vector(x))
a1
drop(a1)


a<-array(1:24, dim=c(3,4,1,2)) #crea un array
dim(a) #la sua dimensione

#A.4 dataframe

fumatore=c("Si","Si","No","No","Si")
indagine=data.frame(peso,altezza,fumatore)

indagine
indagine[,2]#mi da tutti gli elementi della colonna 2 del dataframe

indagine[3,]#mi da la terza riga del dataframe cioè tutte le info dell'individuo 3
dim(indagine)#5 individui  e 3 variabili

Impara con i nostri video tutorial

Fare un’analisi dei dati accurata è fondamentale per la buona riuscita del tuo elaborato, soprattutto se si tratta di una tesi di laurea sperimentale.

R può essere un valido alleato nel tuo percorso ma è facilmente comprensibile che non è così semplice e scontato da capire, ovviamente serve anche una buona base di conoscenze statistiche.

La difficoltà iniziale che si può avere la prima volta che usiamo R sparirà man mano che lo si utilizza, fare più pratica possibile è il segreto per imparare ad utilizzarlo in maniera appropriata.

Vedere concretamente come si svolge il lavoro su R può essere di grande aiuto, per questo motivo dovresti guardare i nostri tutorial, ti aiuteranno molto con la tua analisi dei dati!

Sul nostro canale youtube trovi 3 video dedicati ad R sulle statistiche descrittive ed i grafici, ti consiglio di inziare da questo:

Ti è stato utile questo articolo? Vorresti approfondire ancora di più R e l’analisi dei dati? Faccelo sapere sui nostri canali social!