Skip to content

Latest commit

 

History

History
199 lines (167 loc) · 6.97 KB

Formulario_funzionale.md

File metadata and controls

199 lines (167 loc) · 6.97 KB

Funzioni R

Indice:

Lettura dati da file

variable = read.table("file_name.txt", header=TRUE)

Vettori e matrici

v = c( 1, 2, 3, 3) #inizializzazione di un vettore
length(v) #restituisce la lunghezza del vettore v
M = matrix( data = c( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ), nrow = 4, ncol = 3, byrow = FALSE) #inizializzazione di una matrice
dim(M) #restituisce le dimensioni della matrice M
unique(v) #restituisce i valori univoci del vettore v

Dataframe

Inizializzazione di un dataframe

esame = data.frame( matricola = as.character( c( 45020, 45679, 46789, 43126, 42345, 47568 ) ),
                    voti_S = c( 30, 19, 29, NA, 25, 26 ), 
                    voti_O = c( 3, 3, 1, NA, 3, 2 ), 
                    voti_TOT = c( 30, 22, 30, NA, 28, 28 ) )

Informazioni di un DataFrame

head(data_frame) # Restituisce le prime sei righe contenute nel dataframe
tail(data_frame) # Restituisce le ultime sei righe contenute nel dataframe
dim(data_frame) # Restituisce le dimensioni del dataframe
names(data_frame) # Resitituisce i nomi dei campi del dataframe

Creazione di una variabile categorica

data_frame$variable = as.factor( data_frame$variable )

Crazione di una tabella di frequenza

table( data_frame$variable ) #tabella delle frequenze assolute
prop.table( table( data_frame$variable ) ) #tabella delle frequenze realtive

Grafici

x11()
windows()
#Entrambi i comandi aprono una nuova finestra grafica su Windows

Grafici di dispersione

Un grafico di dispersione è spesso usato quando si hanno due variabili, di cui una rappresenta un parametro di controllo (posto convenzionalmente sull'asse orizzontale) e l'altra la variabile misurata (posta convenzionalmente sull'asse verticale). Può risultare utile per visualizzare il grado di correlazione tra la variabile misurata e il parametro di controllo.

plot(data_frame$variable_x, data_frame$variable_y, xlab = 'x_label', ylab = 'y_label', main = 'title')
points(data_frame$variable_x, data_frame$variable_y, col='colour', pch = 19) #points serve per creare dei pallini colorati, pch indica la forma (19=cerchio)

Grafici a barre

I grafici a barre sono utili per visualizzare le frequenze assolute e relative di variabili discrete.

barplot(variable_frequency, col=c('col_1', 'col_2'), ylab='y_label')

Grafici a torta

I grafici a torta sono utili per visualizzare le frequenze relative di variabili discrete.

pie ( table( data_frame$variable ) / sum( table( data_frame$variable ) ), main = 'title' )

Istogrammi

Gli istogrammi contano la frequenza dei dati in ogni intervallo di dati prefissato di variabili continue.

hist(data_frame$variable, xlab='x_label', main='title') # in ordinata ci sono le frequenze assolute
abline(v=median(data_frame$variable), col='red') # Crea una retta verticale in corrispondenza della mediana
abline(v=mean(data_frame$variable), col='green') # Crea una retta verticale in corrispondenza della media

Diagrammi a candela

I diagrammi a candela sono utili per identificare eventuali asimmetrie della distribuzione e/o la presenza di valori estremi (outliers).
Un diagramma a candela visualizza un rettangolo le cui basi inferiore e superiore visualizzano rispettivamente il primo e il terzo quartile. All'interno del rettangolo viene tracciata una linea in corrispondenza della mediana. Il limite inferiore è dato da Q1 - 1.5*IQR, mentre il limite superiore è dato da Q3 + 1.5*IQR. I cerchi sotto il limite inferiore e sopra il limite superiore rappresentano gli outliers.

boxplot(data_frame$variable, ylab="y_label", main='title')

Q-Q plot

I Q-Q plot sono grafici utili a verificare, approssimativamente, se una variabile presenta una distribuzione normale.

qqnorm(variable, pch = 16, main = 'Title Q-Q plot')
qqline(variable, lwd = 2, col = 'red')

Scatterplot

Lo scatterplot è un grafico composto da più grafici di dispersione realizzati comparando le variabili contenute in un data frame a coppie.

pairs(data_frame)

Indici di posizione e di dispersione

Media (valore atteso)

mean(vector)

Varianza

var(vector)

Deviazione standard

sd(vector)

Massimo e minimo

range(vector) #Restituisce sia il massimo che il minimo
max(vector)
min(vector)

Mediana

median(vector)

Moda

t_freq = table(vector)
t_freq
freq_of_most_common_value = max( t_freq )
freq_of_most_common_value
moda = t_freq[t_freq==freq_of_most_common_value ]

Quantili

quantile(vector, probs = 0.25) #In probs va indicato l'ordine del quartile

Range interquartile

Il range interquartile è la differenza tra il primo e il terzo quartile.

IQR(vector)

Indici per un sottocampione

tapply( data_frame$variable_1, data_frame$variable_2, mean )
tapply( data_frame$variable_1, data_frame$variable_2, var )
tapply( data_frame$variable_1, data_frame$variable_2, sd )
tapply( data_frame$variable_1, data_frame$variable_2, max )
tapply( data_frame$variable_1, data_frame$variable_2, min )
tapply( data_frame$variable_1, data_frame$variable_2, median )
tapply( data_frame$variable_1, data_frame$variable_2, quantile, probs=0.25 )
tapply( data_frame$variable_1, data_frame$variable_2, summary )

Covarianza e indice di correlazione

Covarianza

cov(variable_1, variable_2)

Indice di correlazione

cor(variable_1, variable_2)

Test di Shapiro

Il test di Shapiro è un test statistico che si utilizza per determinare se una variabile segue una distribuzione, almeno approssimativamente, normale o meno.
Si individuano due casi:

  • p-value < 0.5 --> NON accetto H0 (che i dati siano distribuiti normalmente)
  • p-value > 0.5 --> accetto H0 (che i dati siano distribuiti normalmente)
shapiro.test(variable)

Modello di regressione lineare

mod = lm(dipendent_variable ~ covariate_variable_1 + covariate_variable_2 + covariate_variable_1:covariate_variable_2)
summary(mod)
res = mod$residuals
shapiro.test(res) # Si può usare il test di shapiro sui residui per verificare che siano normali