Schede di studio e quiz
Lezione 29Macroargomento 4 · Statistica
| Strumento | Che cos'è | Dove si scarica |
|---|---|---|
| R | Il motore di calcolo: linguaggio per statistica, grafici e modelli. Open source (GPL), gratuito, per Windows, macOS, Linux | r-project.org → CRAN (scegli un mirror, per esempio Italy) |
| RStudio | L'IDE: console, editor di script, pannelli per oggetti, file, pacchetti, grafici e help | posit.co/download/rstudio-desktop |
RStudio non sostituisce R: per funzionare richiede R installato.
| Lavoro | Quando usarlo |
|---|---|
Console (prompt >, si esegue con Invio) | Comandi isolati e piccoli test |
| Script | Sequenze di istruzioni da salvare e riprodurre |
In RStudio il tasto Tab completa nomi di oggetti e funzioni.
In R ogni cosa è un oggetto, con un tipo (numerico, carattere, logico…) e una o più classi. Combinando tipi diversi R prova a convertirli; se non può, dà errore.
x <- 5 # assegnamento (consigliato)
5 -> y # equivalente
z = x + y # equivalente
ls() # elenca gli oggetti presenti
| Regola sui nomi | Esempio |
|---|---|
| Non iniziare con un numero; niente spazi, «;» o «,» | media_pesi sì, 2dati no |
| R distingue maiuscole e minuscole | a e A sono oggetti diversi |
| Un nome già usato viene sovrascritto | Il valore precedente si perde |
R come calcolatrice: sqrt(), abs(), log(), log10(), exp(); confronti < > <= >= == != (uguale si scrive ==).
| Oggetto | Caratteristica | Creazione |
|---|---|---|
| Vettore | Elementi dello stesso tipo; un numero è un vettore di lunghezza 1 | c(2, 4, 6), 1:10, seq(0, 1, by = 0.1) |
| Matrice | Righe × colonne, stesso tipo; riempita per colonna | matrix(1:6, nrow = 2) |
| Lista | Oggetti eterogenei, anche altre liste | list(nome = "A", voti = c(28, 30)) |
| Data frame | Tabella: righe = osservazioni, colonne = variabili | data.frame(id = 1:3, genere = c("F", "M", "F")) |
| Funzione | Istruzioni riutilizzabili | f <- function(x) { x^2 } |
| Pacchetto | Estensione con funzioni, dati, documentazione | install.packages("ggplot2") una volta, library(ggplot2) a ogni sessione |
v <- c(10, 20, 30, 40)
v[2] # 20
v[c(1, 3)] # 10 30
A <- matrix(1:4, nrow = 2)
A[1, 2] # riga 1, colonna 2: vale 3
A * A # prodotto elemento per elemento
A %*% A # prodotto righe per colonne
df <- data.frame(id = 1:3, genere = c("F", "M", "F"))
df$voto <- c(28, 25, 30) # aggiunge una colonna
dim(df) # 3 righe, 3 colonne
Recycling rule. Con vettori di lunghezze diverse, il più corto viene ripetuto: c(1, 2, 3, 4) + c(10, 20) dà 11 22 13 24. È comodo ma può nascondere errori.
Altre funzioni utili: length(), nrow(), ncol(), t(), det(), diag(), sum(), sort(), names(). Per la guida: help(mean).
| Funzione | Calcola | Lezione |
|---|---|---|
mean(x), median(x) | Media, mediana | 22 |
var(x), sd(x) | Varianza e deviazione standard campionarie (con ) | 22 |
quantile(x, probs = p, type = 1) | Percentili; type = 1 è la regola discreta, il default 7 interpola | 24 |
IQR(x, type = 1) | 24 | |
range(x) | Minimo e massimo | 21 |
x <- c(1, 1, 1, 1, 1, 2, 2, 2, 2, 50)
mean(x) # 6.3
median(x) # 1.5
quantile(x, probs = c(0.25, 0.5, 0.75), type = 1)
mean(c(3, NA, 5)) # NA
mean(c(3, NA, 5), na.rm = TRUE) # 4
Dati mancanti. Un valore NA (Not Available) fa restituire NA; per ignorarlo si aggiunge na.rm = TRUE.
Nella dispensa l'argomento è scritto «rm.na = TRUE»; il nome corretto in R è na.rm.
| Funzione | Risultato |
|---|---|
table(x) | Frequenze assolute; con due vettori, frequenze congiunte |
prop.table(tab) | Frequenze relative |
addmargins(tab) | Aggiunge somme di riga e di colonna (marginali) |
margin.table(tab, k) | Distribuzione marginale della variabile |
prop.table(tab, k) | Frequenze condizionate agli esiti della variabile |
colore <- c("rosso", "blu", "rosso", "verde", "blu", "rosso")
tab <- table(colore)
tab # blu 2, rosso 3, verde 1
prop.table(tab) # 0.333 0.500 0.167
x <- c(1, 2, 3, 4, 5)
y <- c(2, 4, 5, 4, 5)
cov(x, y) # 1.5
cor(x, y) # 0.7746
modello <- lm(y ~ x)
coef(modello) # intercetta 2.2, pendenza 0.6
plot(x, y) # scatter plot
abline(modello) # aggiunge la retta di regressione
Sono i dati dell'esempio della lezione 27.
| Funzione | Grafico | Input |
|---|---|---|
hist(x, breaks = 10) | Istogramma | Vettore numerico |
barplot(table(x)) | Barre | Tabella |
pie(table(x)) | Torta | Tabella |
boxplot(x) | Box plot | Dati grezzi |
plot(x, y) | Dispersione | Due vettori |
Opzioni comuni: main (titolo), xlab (nome dell'asse x).
==; = assegna.A * B moltiplica elemento per elemento; il prodotto matriciale è %*%.NA nei dati serve na.rm = TRUE.Domande di ripasso create per questa scheda a partire dalla dispensa (non sono il test ufficiale della piattaforma). Scegli una risposta: ricevi subito esito e spiegazione.