# Pulire lo spazio di lavoro
rm(list = ls())
# Impostare working directory
setwd('/percorso/cartella')
# Caricare dataset
burnout = read.csv("data/burnout.csv")Statistica Descrittiva
Frequenze, Indici di Posizione, Variabilità e Forma
1 Statistica Descrittiva e Inferenziale
1.1 Definizioni
Statistica descrittiva: Riassume, descrive ed esplora i dati osservati. Prima fase nella valutazione delle proprietà psicometriche di uno strumento.
Statistica inferenziale: Usa i dati di un campione per fare inferenze sulla popolazione (confronti tra gruppi, valutazione di interventi, validazione di test).
2 Preparazione dei Dati in R
2.1 Comandi base
# Visualizzare struttura
str(burnout)'data.frame': 2000 obs. of 10 variables:
$ Name : chr "Max Ivanov" "Max Wang" "Nina Petrov" "John Ivanov" ...
$ Age : int 32 40 33 35 59 45 31 39 24 22 ...
$ Gender : chr "Male" "Female" "Female" "Female" ...
$ JobRole : chr "Analyst" "Engineer" "Engineer" "Manager" ...
$ Experience : int 3 9 2 6 8 11 5 17 0 1 ...
$ WorkHoursPerWeek : int 60 47 44 44 38 44 70 31 63 30 ...
$ RemoteRatio : int 21 67 20 70 46 90 30 53 35 5 ...
$ SatisfactionLevel: num 4.4 2.09 2.58 3.23 4.41 4.31 2.18 3.95 1.32 1.44 ...
$ StressLevel : int 1 2 3 8 1 7 3 4 5 5 ...
$ Burnout : int 0 0 0 0 0 0 0 0 0 0 ...
# Definire natura della variabile
burnout$StressLevel = as.ordered(burnout$StressLevel)
burnout$StressLevel [1] 1 2 3 8 1 7 3 4 5 5 10 10 2 8 3 5 1 1 5 4 3 2 7 4
[25] 1 8 9 4 1 7 1 4 3 7 4 6 4 2 4 9 9 4 1 1 9 3 7 7
[49] 2 6 10 4 2 1 4 6 4 3 6 9 10 2 1 3 9 9 2 5 9 3 3 7
[73] 9 8 1 2 3 7 6 2 3 3 2 1 10 6 9 5 5 3 10 10 4 6 10 8
[97] 10 8 6 6 10 5 10 4 8 7 8 8 7 6 9 9 5 8 2 7 5 8 4 7
[121] 4 2 10 7 2 2 1 1 6 6 3 7 6 9 8 4 8 9 1 2 4 10 4 4
[145] 5 4 9 7 9 4 6 3 2 3 5 5 2 3 9 5 1 10 1 3 1 7 9 10
[169] 5 1 9 9 8 10 9 5 3 7 7 10 6 3 3 6 3 9 3 2 9 9 4 9
[193] 8 9 8 2 6 4 3 9 8 4 2 8 3 8 5 5 1 7 8 8 6 10 7 10
[217] 9 10 5 9 4 4 7 1 5 4 9 5 9 7 6 5 10 6 5 7 10 4 7 1
[241] 5 10 5 3 2 10 10 2 1 1 6 2 1 10 7 2 9 2 10 6 2 7 7 6
[265] 8 1 10 10 9 7 7 3 1 1 5 5 5 3 4 8 7 6 3 7 6 5 4 7
[289] 2 6 3 8 6 7 7 9 9 1 8 2 5 1 7 4 2 1 3 10 1 2 2 5
[313] 1 10 10 5 4 3 5 7 1 8 1 2 9 6 1 10 6 7 8 4 5 10 7 5
[337] 5 8 5 7 5 9 3 5 3 3 9 6 3 1 4 2 9 8 9 1 6 6 10 7
[361] 9 4 6 8 7 2 6 5 8 4 7 7 5 9 7 6 9 4 1 10 1 6 2 6
[385] 4 7 4 4 3 5 6 5 10 5 3 8 5 2 2 4 6 9 8 2 4 9 9 5
[409] 9 4 1 10 2 2 5 6 3 2 5 1 5 5 4 6 3 10 8 8 2 2 9 2
[433] 8 4 8 6 5 6 2 7 7 3 9 8 9 9 9 2 5 6 8 5 9 7 8 10
[457] 3 7 5 7 3 7 3 9 6 9 5 2 4 6 7 9 5 10 5 3 4 4 1 8
[481] 8 3 8 6 7 7 3 2 10 9 9 2 2 1 4 6 2 7 10 5 7 5 3 4
[505] 4 3 2 9 2 1 7 8 9 2 2 1 6 6 6 7 1 1 6 5 3 2 3 9
[529] 9 1 2 2 8 6 7 1 8 8 7 9 3 2 8 8 9 5 5 5 10 3 2 5
[553] 7 9 7 4 10 1 4 2 3 1 7 10 8 7 5 5 7 1 3 1 4 2 3 10
[577] 10 3 3 8 1 2 3 9 8 5 10 1 6 4 8 5 8 4 6 3 8 10 7 4
[601] 5 3 9 10 1 1 7 2 6 2 4 6 8 5 6 2 1 10 4 5 4 8 10 8
[625] 5 1 5 1 10 4 9 5 8 10 7 6 6 5 10 2 1 4 8 2 8 3 10 4
[649] 6 9 9 10 10 3 6 2 9 8 5 1 9 2 4 3 1 4 9 9 7 2 10 1
[673] 9 5 1 1 3 4 7 8 4 1 8 9 8 9 8 2 10 4 7 9 6 8 2 10
[697] 1 9 1 8 3 6 1 8 7 3 1 5 4 1 8 5 3 5 7 2 5 8 6 1
[721] 8 10 7 2 1 7 7 5 2 4 6 9 7 2 3 9 10 2 7 5 9 8 4 4
[745] 5 1 6 9 8 6 9 3 5 3 1 2 2 3 9 6 9 6 3 3 2 6 9 6
[769] 6 5 9 8 1 8 5 9 6 3 6 1 6 10 7 2 8 2 5 9 4 2 5 4
[793] 8 6 8 2 7 5 4 9 10 5 7 7 10 3 2 7 6 3 2 8 9 3 10 4
[817] 8 10 8 6 4 2 1 2 8 8 8 5 10 1 4 6 6 3 5 10 10 1 4 7
[841] 1 10 4 6 10 2 1 9 4 5 7 8 7 4 1 5 1 2 1 3 4 4 9 4
[865] 6 10 2 3 8 1 4 7 3 8 7 8 6 8 6 10 3 1 2 3 4 1 2 3
[889] 3 8 7 2 9 3 4 6 2 7 7 1 8 1 1 8 7 3 4 5 10 5 10 10
[913] 6 8 2 9 7 3 10 1 8 7 4 1 3 8 1 9 4 3 2 1 4 1 4 6
[937] 3 6 1 8 6 9 1 7 2 3 4 7 1 2 7 3 2 1 3 3 3 3 5 5
[961] 8 1 7 4 4 1 4 2 10 4 1 1 2 1 5 3 9 2 2 1 3 5 8 1
[985] 6 5 5 1 7 5 9 10 10 8 9 9 5 10 2 7 9 5 6 4 6 9 5 2
[1009] 9 6 5 3 10 9 9 7 8 2 9 1 8 5 3 9 1 4 5 4 4 6 6 8
[1033] 4 9 6 4 8 4 3 3 5 8 10 7 6 7 6 4 6 6 4 6 4 10 1 8
[1057] 5 2 1 7 4 3 3 3 6 7 5 3 9 3 6 6 8 7 9 7 10 6 3 3
[1081] 10 8 10 10 10 1 9 2 4 5 3 10 5 1 2 4 3 5 7 3 3 9 1 3
[1105] 8 9 7 3 3 1 7 5 3 2 2 10 5 2 7 7 3 3 4 8 2 2 3 7
[1129] 2 9 9 3 2 1 4 6 6 10 2 6 2 8 10 5 3 9 7 10 3 5 2 7
[1153] 8 6 7 7 4 9 1 9 4 9 2 5 2 1 6 8 5 8 6 6 1 9 7 9
[1177] 8 1 9 4 9 10 4 10 1 3 1 1 5 8 10 10 10 8 1 8 5 10 6 5
[1201] 6 3 5 1 1 5 1 7 1 10 1 2 2 3 2 9 9 5 10 9 6 9 4 3
[1225] 4 1 7 4 3 4 4 1 6 6 8 6 4 1 2 8 10 5 7 1 7 6 7 7
[1249] 3 8 7 6 3 10 3 2 5 8 6 3 7 1 3 9 6 4 6 3 1 6 5 3
[1273] 6 10 1 3 8 3 5 8 3 8 3 7 9 6 2 10 3 1 9 4 8 2 1 1
[1297] 6 3 2 6 5 3 3 2 4 3 6 6 5 2 7 1 4 9 8 5 8 2 4 6
[1321] 4 10 9 8 9 7 8 5 10 9 5 9 10 4 4 3 1 1 1 1 6 10 4 1
[1345] 3 6 8 2 3 9 4 8 8 2 10 8 3 2 5 1 10 9 1 10 6 8 6 9
[1369] 1 10 9 2 8 9 8 9 8 8 6 5 1 1 3 4 9 8 2 10 4 3 5 8
[1393] 6 10 6 10 10 8 1 9 10 9 3 10 8 9 8 2 9 2 4 9 2 6 7 2
[1417] 4 10 8 9 7 9 5 2 7 1 9 10 4 8 1 2 9 4 6 3 7 2 1 4
[1441] 2 9 7 3 1 1 7 8 10 5 8 10 9 9 8 9 8 8 1 6 9 1 3 6
[1465] 10 8 7 10 8 7 8 5 9 10 7 9 9 3 3 6 3 2 8 4 3 7 3 10
[1489] 6 9 3 6 2 2 4 5 2 1 7 4 10 10 2 1 10 4 5 10 4 4 6 10
[1513] 7 3 5 7 8 2 8 2 8 1 3 5 1 10 3 5 2 3 6 3 8 1 9 4
[1537] 6 1 6 4 7 10 1 9 1 7 3 5 6 5 5 7 1 6 6 9 7 5 8 1
[1561] 7 3 2 2 6 7 9 9 7 8 3 1 3 1 9 10 9 5 4 5 7 6 1 6
[1585] 5 6 2 5 2 7 8 7 7 4 7 7 4 6 1 5 6 8 8 10 9 1 3 6
[1609] 7 9 1 2 6 7 5 8 10 1 7 6 9 2 2 9 2 3 9 6 5 5 5 7
[1633] 3 6 9 3 4 7 9 2 5 8 6 5 6 3 9 10 3 4 6 5 10 8 2 9
[1657] 7 1 3 3 6 9 8 7 3 4 10 2 3 1 7 6 1 8 5 2 2 9 5 9
[1681] 4 9 4 9 7 7 8 1 9 6 4 2 9 8 10 9 4 5 8 8 5 6 5 5
[1705] 4 7 3 1 8 1 1 8 5 9 3 3 1 4 7 7 2 1 7 6 1 1 6 10
[1729] 8 4 10 1 10 9 1 1 8 9 5 5 8 3 9 7 4 5 6 5 4 3 10 8
[1753] 4 1 5 1 9 1 8 7 8 7 10 1 4 2 8 10 6 1 1 4 10 7 2 8
[1777] 9 1 6 3 4 3 9 4 4 10 10 7 3 9 1 2 8 4 2 9 6 5 2 7
[1801] 2 9 4 6 9 7 4 10 4 1 10 3 5 4 5 5 2 1 8 6 7 10 4 9
[1825] 7 5 10 7 8 9 2 6 8 9 8 6 4 9 8 4 4 1 9 7 2 3 10 1
[1849] 7 5 10 4 7 1 3 6 2 6 6 5 8 3 2 8 5 10 10 3 1 1 4 4
[1873] 6 8 2 8 2 8 2 4 10 8 1 9 2 1 9 9 5 4 10 10 8 10 2 5
[1897] 5 9 7 9 2 3 4 6 4 10 1 7 8 3 2 4 5 7 9 9 9 8 2 2
[1921] 4 8 4 10 1 10 1 8 6 1 7 7 9 7 10 3 2 2 6 5 6 6 4 2
[1945] 5 5 4 8 8 1 8 7 4 5 1 4 6 10 2 2 8 6 10 8 2 5 4 6
[1969] 5 3 6 5 7 10 9 1 4 5 1 8 9 10 10 2 6 4 4 8 2 1 7 6
[1993] 6 10 1 4 9 4 4 8
Levels: 1 < 2 < 3 < 4 < 5 < 6 < 7 < 8 < 9 < 10
2.2 Notazioni fondamentali
- \(X\): variabile di interesse
- \(X_i\): categoria/livello \(i\)-esima di \(X\)
- \(n\): totale unità statistiche
3 Frequenze
3.1 Frequenze Assolute Semplici
Definizione: Numero naturale di unità statistiche che presentano una data categoria.
Comando R:
fi = table(burnout$StressLevel)
fi
1 2 3 4 5 6 7 8 9 10
220 199 199 200 196 197 191 208 214 176
3.2 Frequenze Assolute Cumulate
Definizione: Somma delle frequenze assolute semplici delle categorie precedenti alla categoria data più la frequenza assoluta semplice della categoria data.
Comando R:
Fi = cumsum(table(burnout$StressLevel))
Fi 1 2 3 4 5 6 7 8 9 10
220 419 618 818 1014 1211 1402 1610 1824 2000
3.3 Frequenze Relative Semplici
Definizione: Rapporto tra la frequenza assoluta semplice e il numero totale di unità statistiche. Varia sempre tra 0 e 1.
Comandi R:
n = nrow(burnout) # numero unità statistiche
# oppure n = length(burnout$StressLevel)
pi = table(burnout$StressLevel) / n
pi
1 2 3 4 5 6 7 8 9 10
0.1100 0.0995 0.0995 0.1000 0.0980 0.0985 0.0955 0.1040 0.1070 0.0880
3.4 Frequenze Relative Cumulate
Definizione: Somma delle frequenze relative semplici delle categorie precedenti più la frequenza relativa semplice della categoria data. Varia sempre tra 0 e 1.
Comando R:
Pi = cumsum(table(burnout$StressLevel) / n)
Pi 1 2 3 4 5 6 7 8 9 10
0.1100 0.2095 0.3090 0.4090 0.5070 0.6055 0.7010 0.8050 0.9120 1.0000
3.5 Visualizzazione
# Frequenze assolute semplici
barplot(table(burnout$StressLevel),
ylab = "Frequenze assolute semplici")# Frequenze relative
barplot(table(burnout$StressLevel) / n,
ylab = "Frequenze relative semplici")# Frequenze cumulate assolute
barplot(cumsum(table(burnout$StressLevel)),
ylab = "Frequenze assolute cumulate")# Frequenze cumulate relative
barplot(cumsum(table(burnout$StressLevel)/n),
ylab = "Frequenze relative cumulate")4 Indici di Tendenza Centrale
4.1 Definizione
Un indice di tendenza centrale è un valore che descrive e riassume il centro di una distribuzione di dati.
| Indice | Variabile nominale | Variabile ordinale | Variabile quantitativa |
|---|---|---|---|
| Moda | SI | SI | SI |
| Mediana | NO | SI | SI |
| Media | NO | NO | SI |
4.2 Moda
Definizione: Categoria che si presenta con la massima frequenza.
Comando R:
table(burnout$StressLevel) # identificare categoria più frequente
1 2 3 4 5 6 7 8 9 10
220 199 199 200 196 197 191 208 214 176
4.3 Mediana
Definizione: Dato che occupa la posizione centrale rispetto alla distribuzione dei dati ordinati.
Comandi R:
# Calcolo manuale
i = (n + 1) / 2 # posizione centrale
cumsum(table(burnout$StressLevel)) # trovare prima freq cumulata >= i 1 2 3 4 5 6 7 8 9 10
220 419 618 818 1014 1211 1402 1610 1824 2000
# Funzione diretta
median(as.numeric(burnout$StressLevel))[1] 5
4.4 Media Aritmetica
Definizione: Somma dei dati divisa per il numero di unità statistiche.
\[\bar{X} = \frac{\sum_{i=1}^{n} X_i}{n}\]
Comandi R:
# Calcolo manuale
sum(burnout$Age) / length(burnout$Age)[1] 40.6945
# Funzione diretta
mean(burnout$Age)[1] 40.6945
5 Indici di Variabilità
5.1 Definizione
La variabilità (o dispersione) misura quanto i punteggi di una distribuzione sono sparsi, ovvero quanto siano simili o dissimili tra loro.
- Valori sempre positivi o nulli
- Variabilità minima = 0 (tutti i punteggi uguali)
5.2 Campo di Variazione (Gamma)
Definizione: Differenza tra valore massimo e minimo osservato.
\[\gamma = X_{max} - X_{min}\]
Comandi R:
team_A = c(38, 42, 44, 36, 39, 42, 38, 41)
max(team_A) - min(team_A)[1] 8
range(team_A) # restituisce [min, max][1] 36 44
5.3 Varianza
Definizione: Media degli scarti al quadrato tra i dati e la media dei dati stessi.
\[\sigma^2 = \frac{\sum_{i=1}^{n} (X_i - \bar{X})^2}{n}\]
Proprietà: \(\sigma^2 \geq 0\)
Comandi R:
# Calcolo manuale (varianza descrittiva, divide per n)
n = length(team_A)
media = mean(team_A)
scarti = team_A - media
varianza = sum(scarti^2) / n
varianza[1] 6.25
# Funzione var() - ATTENZIONE: calcola varianza campionaria (divide per n-1)
var(team_A) # varianza campionaria[1] 7.142857
sum(scarti^2) / (n-1)[1] 7.142857
La funzione var() di R calcola la varianza campionaria (divide per \(n-1\)). Per dati descrittivi (popolazione osservata) si usa \(n\); per stimare la varianza della popolazione da un campione si usa \(n-1\).
5.4 Deviazione Standard
Definizione: Radice quadrata della varianza. Riporta l’indice di variabilità sulla scala della variabile.
\[\sigma = \sqrt{\sigma^2}\]
Comando R:
sd(burnout$WorkHoursPerWeek) # deviazione standard campionaria[1] 11.83242
5.5 Coefficiente di Variazione
Definizione: Rapporto tra deviazione standard e valore assoluto della media. Indice di variabilità relativa per confrontare fenomeni misurati su scale diverse.
\[CV = \frac{\sigma}{|\bar{X}|}\]
Esempio R:
# Confronto variabilità tra esperienza e ore lavorative
media_esp = abs(mean(burnout$Experience))
sd_esp = sd(burnout$Experience)
cv_esp = sd_esp / media_esp
media_ore = abs(mean(burnout$WorkHoursPerWeek))
sd_ore = sd(burnout$WorkHoursPerWeek)
cv_ore = sd_ore / media_ore
sd_esp[1] 9.148267
sd_ore[1] 11.83242
cv_esp[1] 0.9080617
cv_ore[1] 0.2386147
5.6 Differenza Interquartilica (IQR)
Definizione: Differenza tra terzo e primo quartile. Misura la dispersione del 50% centrale dei dati. Indice robusto (valori estremi incidono poco).
\[IQR = Q_{75} - Q_{25}\]
Comandi R: La funzione quantile() permette di calcolare i quantili. L’argomento prob = ... definisce che percetile vogliamo ottenere.
Q1 = quantile(burnout$Experience, prob = 0.25)
Q3 = quantile(burnout$Experience, prob = 0.75)
differenza_iqr = Q3 - Q1
# Limiti outlier
limite_inferiore = Q1 - (1.5 * differenza_iqr)
limite_superiore = Q3 + (1.5 * differenza_iqr)5.7 Boxplot
Visualizzazione della variabilità:
boxplot(burnout$Experience,
horizontal = TRUE,
# Visualizzo il boxplot in orizzontale
main = "Boxplot", #titolo
xlab = "Anni", # nome della variabil
# (asse x perchè orizzontale)
col = "lightblue", #colore
border = "black", #bordo
outcol = "red", # colore outlier
outpch = 19, # forma outlier (i.e, pallini)
lwd = 1.5) # spessore lineeOutlier: Valori oltre \(1.5 \times IQR\) dai quartili.
Identificare outlier:
subset(burnout, #dataset
select = c(Name, Experience), # colonne d'interesse
subset = Experience>limite_superiore) # valuto per riga Name Experience
59 Sam Lee 38
102 Dina Garcia 34
157 Sam Petrov 35
300 Kate Kim 37
395 Ivan Johnson 35
407 Lily Petrov 36
418 Max Ivanov 39
445 Alex Petrov 37
478 Alex Garcia 37
501 Sam Wang 35
510 Kate Brown 35
556 Alex Ivanov 35
584 Lily Kim 34
604 Nina Smith 35
664 Sam Kim 35
674 Nina Ivanov 37
721 John Petrov 37
736 Ivan Chen 35
739 Ivan Wang 34
936 Ivan Smith 35
979 Ivan Wang 36
1149 Kate Chen 35
1208 Nina Johnson 37
1261 Nina Brown 34
1299 Max Johnson 35
1412 Kate Chen 38
1425 Nina Wang 36
1443 Leo Smith 36
1610 John Chen 37
1638 Dina Kim 35
1645 Kate Ivanov 35
1700 John Chen 38
1793 Nina Chen 35
1850 Ivan Brown 38
1953 Leo Ivanov 36
1955 Ivan Wang 35
# Equivalente con dataframe[valuto per riga, colonne d'interesse]:
burnout[burnout$Experience > limite_superiore, c("Name", "Experience")] Name Experience
59 Sam Lee 38
102 Dina Garcia 34
157 Sam Petrov 35
300 Kate Kim 37
395 Ivan Johnson 35
407 Lily Petrov 36
418 Max Ivanov 39
445 Alex Petrov 37
478 Alex Garcia 37
501 Sam Wang 35
510 Kate Brown 35
556 Alex Ivanov 35
584 Lily Kim 34
604 Nina Smith 35
664 Sam Kim 35
674 Nina Ivanov 37
721 John Petrov 37
736 Ivan Chen 35
739 Ivan Wang 34
936 Ivan Smith 35
979 Ivan Wang 36
1149 Kate Chen 35
1208 Nina Johnson 37
1261 Nina Brown 34
1299 Max Johnson 35
1412 Kate Chen 38
1425 Nina Wang 36
1443 Leo Smith 36
1610 John Chen 37
1638 Dina Kim 35
1645 Kate Ivanov 35
1700 John Chen 38
1793 Nina Chen 35
1850 Ivan Brown 38
1953 Leo Ivanov 36
1955 Ivan Wang 35
6 Percentili
6.1 Definizione
Il percentile \(x_p\) di ordine \(p\) è quella categoria/valore che è:
- preceduta da almeno \(p\%\) dei casi
- superata da almeno \((1-p)\%\) dei casi
Tipi:
- Quartili: percentili di ordine 25, 50, 75
- Decili: percentili di ordine 10, 20, …, 90
- Percentili: percentili di ordine 1, 2, …, 98, 99
Comando R:
quantile(burnout$SatisfactionLevel,
probs = c(0.05, 0.25, 0.50, 0.75, 0.95)) 5% 25% 50% 75% 95%
1.2100 2.0000 3.0250 4.0000 4.7905
6.2 Rango Percentile
Definizione: Percentuale di casi che hanno un valore uguale o inferiore a un particolare punteggio \(X_i\).
\[R_p = \frac{B}{N} \times 100\]
dove:
- \(R_p\) = rango percentile
- \(B\) = numero di casi \(\leq X_i\)
- \(N\) = numero totale di casi
- \(X_i\) = punteggio di interesse
Comandi R:
rango = rank(burnout$SatisfactionLevel)
N = nrow(burnout)
Rp_SatisfactionLevel = (rango / N) * 100
# Aggiungere al dataset
burnout$Rp_SatisfactionLevel = Rp_SatisfactionLevel
# visualizzo le prime 6 righe del dataset
head(burnout$Rp_SatisfactionLevel, n = 6)[1] 85.200 27.425 39.325 55.175 85.575 83.225
7 Indici di Forma
7.1 Definizione
Gli indici di forma descrivono come è distribuita una variabile, oltre alla sua posizione centrale e dispersione. Due distribuzioni possono avere stessa media e deviazione standard ma forma diversa.
7.2 Asimmetria (Skewness)
Definizione: Misura quanto una distribuzione si discosta dalla simmetria rispetto al centro.
| Tipo | Valore indice | Caratteristiche |
|---|---|---|
| Simmetrica | \(\approx 0\) | Media = Mediana = Moda |
| Asimmetria positiva | \(> 0\) | Moda < Mediana < Media |
| Asimmetria negativa | \(< 0\) | Media < Mediana < Moda |
Comando R:
# Installare e caricare pacchetto
# install.packages("psych")
library(psych)
# Calcolare asimmetria
skew(burnout$WorkHoursPerWeek)[1] 0.05606748
7.2.1 Visualizzazioni (Skewness)
7.3 Curtosi (Kurtosis)
Definizione: Misura quanto i dati si concentrano nelle code della distribuzione. Molti software riportano l’eccesso di curtosi (valore in relazione alla curtosi della distribuzione normale = 3).
| Tipo | Valore indice | Forma |
|---|---|---|
| Mesocurtica | \(\approx 0\) | Forma normale |
| Leptocurtica | \(> 0\) | Code pesanti |
| Platicurtica | \(< 0\) | Code leggere |
Comando R:
kurtosi(burnout$WorkHoursPerWeek)[1] -1.186166
7.4 Confronto Multiple Variabili
variabili = c("Age", "Experience",
"WorkHoursPerWeek", "SatisfactionLevel")
risultati = data.frame(
Variabile = variabili,
#applico la funzione a tutte le variabili/colonne
# via sapply(a cosa, funzione)
Asimmetria = sapply(burnout[, variabili], skew),
Curtosi = sapply(burnout[, variabili], kurtosi)
)
print(risultati, row.names = FALSE, digits = 2) Variabile Asimmetria Curtosi
Age 0.0354 -1.20
Experience 0.9966 0.17
WorkHoursPerWeek 0.0561 -1.19
SatisfactionLevel -0.0083 -1.20
7.4.0.1 psych::describe
La funzione describe() del pacchetto psych calcola le statiche descrittive per tutte le variabili in un dataset
psych::describe(burnout) vars n mean sd median trimmed mad min max
Name* 1 2000 50.98 28.92 51.00 51.11 37.06 1.00 100.00
Age 2 2000 40.69 11.29 41.00 40.61 14.83 22.00 60.00
Gender* 3 2000 1.51 0.50 2.00 1.51 0.00 1.00 2.00
JobRole* 4 2000 2.99 1.42 3.00 2.99 1.48 1.00 5.00
Experience 5 2000 10.07 9.15 7.00 8.86 7.41 0.00 39.00
WorkHoursPerWeek 6 2000 49.59 11.83 49.00 49.49 14.83 30.00 70.00
RemoteRatio 7 2000 49.97 29.15 49.00 49.90 37.06 0.00 100.00
SatisfactionLevel 8 2000 3.00 1.16 3.02 2.99 1.49 1.00 5.00
StressLevel* 9 2000 5.43 2.88 5.00 5.43 4.45 1.00 10.00
Burnout 10 2000 0.06 0.25 0.00 0.00 0.00 0.00 1.00
Rp_SatisfactionLevel 11 2000 50.02 28.87 50.02 50.02 37.03 0.05 99.92
range skew kurtosis se
Name* 99.00 -0.02 -1.22 0.65
Age 38.00 0.04 -1.20 0.25
Gender* 1.00 -0.05 -2.00 0.01
JobRole* 4.00 -0.01 -1.31 0.03
Experience 39.00 1.00 0.17 0.20
WorkHoursPerWeek 40.00 0.06 -1.19 0.26
RemoteRatio 100.00 0.03 -1.20 0.65
SatisfactionLevel 4.00 -0.01 -1.20 0.03
StressLevel* 9.00 0.00 -1.24 0.06
Burnout 1.00 3.54 10.56 0.01
Rp_SatisfactionLevel 99.88 0.00 -1.20 0.65
8 Riepilogo Funzioni R
8.1 Funzioni Base
| Funzione | Descrizione |
|---|---|
rm(list = ls()) |
Pulire workspace |
setwd() |
Impostare working directory |
read.csv() |
Caricare dataset CSV |
str() |
Visualizzare struttura |
head() |
Prime righe |
nrow() |
Numero righe |
length() |
Lunghezza vettore |
8.2 Trasformazioni Variabili
| Funzione | Descrizione |
|---|---|
as.ordered() |
Convertire a ordinale |
as.numeric() |
Convertire a numerico |
as.factor() |
Convertire a fattore |
8.3 Frequenze
| Funzione | Descrizione |
|---|---|
table() |
Frequenze assolute |
cumsum() |
Somma cumulata |
8.4 Tendenza Centrale
| Funzione | Descrizione |
|---|---|
mean() |
Media aritmetica |
median() |
Mediana |
sum() |
Somma |
8.5 Variabilità
| Funzione | Descrizione |
|---|---|
min() |
Valore minimo |
max() |
Valore massimo |
range() |
Range [min, max] |
var() |
Varianza (campionaria, \(n-1\)) |
sd() |
Deviazione standard (campionaria) |
quantile() |
Percentili/quartili |
IQR() |
Differenza interquartilica |
rank() |
Rango |
8.6 Forma (pacchetto psych)
| Funzione | Descrizione |
|---|---|
skew() |
Asimmetria |
kurtosi() |
Eccesso di curtosi |
8.7 Visualizzazione
| Funzione | Descrizione |
|---|---|
barplot() |
Grafico a barre |
boxplot() |
Boxplot |
hist() |
Istogramma |
8.8 Manipolazione Dati
| Funzione | Descrizione |
|---|---|
subset() |
Filtrare righe/colonne |
data.frame() |
Creare dataframe |
sapply() |
Applicare funzione a colonne |
print() |
Stampare output |
8.9 Riferimenti
- Corso Test per le organizzazioni, Università di Padova
- Altoè, G. (2022). Corso di Testing Psicologico
- Marci, M. (2025). Corso di Testing Psicologico
- Dataset: Synthetic HR Burnout Dataset