Statistica.

Schede di studio e quiz

Lezione 29Macroargomento 4 · Statistica

Lezione 29. Introduzione a R e RStudio

In questa lezione

  1. Che cosa sono R e RStudio?
  2. Come si creano e si nominano gli oggetti?
  3. Quali oggetti offre R?
  4. Quali funzioni calcolano gli indici statistici?
  5. Come si costruiscono tabelle di frequenza?
  6. Come si fanno regressione e grafici?
  7. Quali sono le trappole tipiche per i concetti di questa lezione?
  8. Quiz della lezione (10 domande)

1. Che cosa sono R e RStudio?

StrumentoChe cos'èDove si scarica
RIl motore di calcolo: linguaggio per statistica, grafici e modelli. Open source (GPL), gratuito, per Windows, macOS, Linuxr-project.org → CRAN (scegli un mirror, per esempio Italy)
RStudioL'IDE: console, editor di script, pannelli per oggetti, file, pacchetti, grafici e helpposit.co/download/rstudio-desktop

RStudio non sostituisce R: per funzionare richiede R installato.

LavoroQuando usarlo
Console (prompt >, si esegue con Invio)Comandi isolati e piccoli test
ScriptSequenze di istruzioni da salvare e riprodurre

In RStudio il tasto Tab completa nomi di oggetti e funzioni.

2. Come si creano e si nominano gli oggetti?

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 nomiEsempio
Non iniziare con un numero; niente spazi, «;» o «,»media_pesi sì, 2dati no
R distingue maiuscole e minuscolea e A sono oggetti diversi
Un nome già usato viene sovrascrittoIl valore precedente si perde

R come calcolatrice: sqrt(), abs(), log(), log10(), exp(); confronti < > <= >= == != (uguale si scrive ==).

3. Quali oggetti offre R?

OggettoCaratteristicaCreazione
VettoreElementi dello stesso tipo; un numero è un vettore di lunghezza 1c(2, 4, 6), 1:10, seq(0, 1, by = 0.1)
MatriceRighe × colonne, stesso tipo; riempita per colonnamatrix(1:6, nrow = 2)
ListaOggetti eterogenei, anche altre listelist(nome = "A", voti = c(28, 30))
Data frameTabella: righe = osservazioni, colonne = variabilidata.frame(id = 1:3, genere = c("F", "M", "F"))
FunzioneIstruzioni riutilizzabilif <- function(x) { x^2 }
PacchettoEstensione con funzioni, dati, documentazioneinstall.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).

4. Quali funzioni calcolano gli indici statistici?

FunzioneCalcolaLezione
mean(x), median(x)Media, mediana22
var(x), sd(x)Varianza e deviazione standard campionarie (con n−1n-1)22
quantile(x, probs = p, type = 1)Percentili; type = 1 è la regola discreta, il default 7 interpola24
IQR(x, type = 1)Q3−Q1Q_3-Q_124
range(x)Minimo e massimo21
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.

5. Come si costruiscono tabelle di frequenza?

FunzioneRisultato
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 kk
prop.table(tab, k)Frequenze condizionate agli esiti della variabile kk
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

6. Come si fanno regressione e grafici?

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.

FunzioneGraficoInput
hist(x, breaks = 10)IstogrammaVettore numerico
barplot(table(x))BarreTabella
pie(table(x))TortaTabella
boxplot(x)Box plotDati grezzi
plot(x, y)DispersioneDue vettori

Opzioni comuni: main (titolo), xlab (nome dell'asse x).

7. Quali sono le trappole tipiche per i concetti di questa lezione?

8. Quiz della lezione (10 domande)

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.