Anteprima
Vedrai una selezione di 3 pagine su 7
Analisi statistica multivariata - Modulo R Pag. 1 Analisi statistica multivariata - Modulo R Pag. 2
Anteprima di 3 pagg. su 7.
Scarica il documento per vederlo tutto.
Analisi statistica multivariata - Modulo R Pag. 6
1 su 7
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

HELP: ?funzione, serve per vedere che cosa fanno le varie funzioni (xes. ?sqrt)

FUNZIONI MATEMATICHE: exp(), sin(), cos(), tan(), asin(), acos(), atan(), …

AND: &

OR: |

NOT: !

VALORE ASSOLUTO: abs(x)

RADICE QUADRATA: sqrt(x)

LOGARITMO: log(x, base) , xes. log(5, 10) è il logaritmo di 5 in base 10

CONTARE GLI ELEMENTI UGUALI A QUALCOSA: sum(x==6). Non fa la somma dei 6

(6+6+6…) ma la conta quanti elementi sono uguali a sei. Per esempio in un vettore

(1,2,6,7,6,8), sum(x==6) mi restituisce 2.

ROUND: per arrotondare.

Round(n) arrotonda il numero n senza decimali.

Round(n, digits=3) arrotonda a tre decimali.

VARIABILI:

rm(x) rimuove la variabile x dalla memoria di R.

objects() serve per vedere le variabili in uso.

VETTORI: c(elementi del vettore), xes. x=c(1,2,3)

lenght(x) lunghezza del vettore

o mode(x) tipo del vettore

o names(x) xes con x=c(altezza=171, peso=60) mi restituisce “altezza” e “peso”

o

Per creare un vettore vuoto uso il comando vector, xes. x=vector(“numeric”, len=3) =>

vettore numerico di lunghezza 3.

LISTE: x=list().

Con x[[1]] trovo il primo elemento della lista.

o Con [[1]][2] il secondo elemento del primo elemento della lista.

o Con NA lascio un elemento vuoto

o Con is.na() vedo quali elementi sono vuoti.

o

WHICH: condizione di tipo logico.

Se avessi x=c(2,5,8,1,2) e mettessi indici= which(x<5) mi restituisce gli indici degli elementi

del vettore <5, ovvero 1 4 5.

FACTOR: variabili categoriali non ordinate, come argomento richiede un vettore.

As.factor(x) rende la variabile factor anche se all’inizio R non la riconosce come tale.

LEVELS: mi dice quali sono i livelli della variabile. Per riconoscere i livelli la variabile deve

essere factor (per vedere se è factor uso: is.factor(x) )

REP: ripete qualcosa un determinato numero di volte.

Rep(1,2) ripete l’1 per due volte

Rep(c(2,3,), c(6,7)) ripete il 2 per sei volte e il 3 per sette volte.

ORDERED:

is.ordered(x) : per vedere se il vettore x è ordinato

as.ordered(x) : mi fa vedere i livelli ordinati.

FREQUENZE:

Assoluta (fi): numero di volte che si presenta un certo dato. Funzione table()

o Relativa (pi): rapporto tra la assoluta e il numero totale di dati. pi=fi/sum(fi).

o Cumulata (Fi): Fi = cumsum(pi)

o

Data.frame(): crea una matrice in cui posso mettere variabili di natura diversa. Per crearlo

uso: data.frame(“nome colonna” = nomi righe)

Subset(): per selezionare alcune righe del dara frame.

o Per esempio maschi.alti=subset(classe, subset= genere==”M” & cm>190)

Subset(classe, select=genere) per selezionare una colonna, posso anche usare

o semplicemente “classe$genere”

ORDINAMENTO DI UN VETTORE:

sort(x) : ordina in senso crescente

o sort(x, decreasing = TRUE) : ordina in senso decrescente

o order(x) mi restituisce gli indici ordinati xes. con il vettore v=c(2,5,8,1,2), order(v) mi

o restituisce 4 1 5 2 3

GRAFICI:

Creo un data frame e calcolo le frequenze assolute fi con table (fi=table(…)). Per le relative

devo dividere per il totale: pi=fi/sum(fi).

Grafico a torta: comando pie(pi) dove pi è il vettore delle frequenze relative.

 Per aggiungere delle etichette:

calcolo per esempio le percentuali con perc=pi*100

o paste() per mettere accanto un nome alla sua percentuale. xes categorie=

o paste(categorie, perc).

pie(pi, labels = categorie) dove labels serve per dire quali etichette voglio

o aggiungere.

main(“titolo”) per aggiungere un titolo in alto

o

xes. pie(pi, labels=paste(levels(mydata$consegna), pi*100, “%”)

Grafico a barre: comando barplot()

 Barplot(table(…), main = ”…”, xlab = “Titolo sull’asse x”, ylab = “Titolo

o sull’asse y”)

horiz = TRUE se voglio dei rettangoli orizzontali e non verticali

o las = 2 per mettere i nomi di fianco alle barre in orizzontale

o cex.names = n per rimpicciolire/ingrandire il carattere delle etichette (il valore

o standard è 1)

Grafico a dispersione: comando plot()

 plot(x,y, xlim = c(0,30), ylim = c(0,30)) xlim e ylim per controllare il range

o sull’asse x e y

xlim e ylim sono i valori limite sui due assi

o xlab, ylab per dare i titoli agli assi

o pch = 19 mi mette i pallini pieni neri (di solito si usano 19 o 20)

o col = “red” pallini rossi

o type = ”l” per esempio al posto dei pallini mette delle linee (se metto = “h”

o viene il diagramma ad aste)

plot(xi, pi, type = “h”)

points(xi, pi, pch = 19) aggiunge i

pallini sopra le linee

Diagramma a scalini:

 Comando ecdf() calcola la funzione di ripartizione empirica

o mydata = rep(xi, fi)

o plot(ecdf(mydata))

o comando text mette il valore delle cumulate su ogni salto. Text(xi, Fi+1)

o => xes. plot(ecfd(mydata), ylim = (0, 1.5))

o

DATI RAGGRUPPATI IN CLASSI:

Ampiezza classe: wi= X – X

o i+1 i

Densità della classe: ci= pi/wi

o Frequenza relativa: pi=fi/n

o Creare le classi: w.classi = cut(x, breaks = c(10, 20, … ), right=FALSE)

o Breaks sono gli intervallic

~ Right mi prende gli intervallic in questo modo: xes. [10, 20), se

~ fosse stato TRUE sarebbe (10, 20]

QUANTILE: funziona quantile(x, prob), dove prob è la posizione del quantile

INDICI DI TENDENZA:

MODA: non c’è un comando apposta per calcolarla, quindi uso table() e quella con la

 frequenza maggiore è la moda.

MEDIA:

 calcolo la lunghezza della variabile e poi la divido per la lunghezza stessa

n = lenght(x)

o media = sum(x)/n

o

oppure uso la funzione

mean(x)

o

MEDIANA: posso usare il comando sul vettore ordinato median(x.sorted) , dove

 x.sorted è appunto il vettore ordinato, oppure posso calcolarlo tramite il quantile 0.5

QUARTILI:

 primo quantile: posizione.q1=(n+1)*.25 e trovo la posizione del quantile (xes.

o 1.5)

floor(posizione.q1) mi prende l’intero più basso (=>1)

o ceiling(posizione.q1) mi prende l’intero più alto (=>2)

o mean(costo.sorted[c(floor(posizione.q1), ceiling(posizione.q1))]

o per il terzo quantile sostituisco 0.75

o

Oppure:

uso la funzione quantile, con prob=0.25 mi dà il primo quartile, con prob=0.75

o mi dà il terzo quartile

range(x): mi dà il valore massimo e il minimo del vettore

o diff(range(x)): differenza tra il massimo e il minimo

o differenza interquantilica: q -q In mezzo c’è il 50% di probabilità. Comando

o 3 1.

IQR (costo)

valori outlier: se x < q -1.5*IQR o x > q +1.5*IQR

o i 1 i 3

dati raggruppati:

x=(c(valori), c(frequenze))

o xi=c(valori), fi=c(frequenze)

o sum(xi*fi)/sum(fi) ottengo la media

o pi=fi/sum(fi) frequenze relative

o Fi=cumsum(pi) frequenze cumulate (la mediana è quando F>0.5)

o

CINQUE NUMERI DI SINTESI:

summary(x)

Calcola i cinque numeri di sintesi: minimo, 1 quartile, mediana, 3 quartile, massimo (+ media)

GRAFICO BOXPLOT: boxplot(asdfgh)

boxplot(…, ylab=…, xlab=…, main= “titolo principale), ylim=…, xlim=…))

o la distribuzione è simmetrica se xmedio=q2, q2 - q1 = q3 - q2 e q1 – xmin = xmax -

o q3

MISURE DI DISPERSIONE: dove la varianza è più alta, vuol dire che la distribuzione è più

dispersa.

Var(x)

sqrt(var(x)) oppure sd(x), standard deviation

Cov(x,y) covarianza

cor(x,y) correlazione, varia tra -1 e 1

sd(x)/abs(mean(x)) coefficient di variazione

DIVIDERE LO SCHERMO PER FARE PIU’ GRAFICI:

par(mfrow=(c(2,2)) così mi mette quattro grafici, due sopra e due sotto, se avessi messo

par(mfrow=4) me ne avrebbe messi quattro tutti in riga. Con par(mfrow=c(1,1)) torna

normale.

TABELLA A DOPPIA ENTRATA: per analizzare la relazione tra due o più variabili.

Ogni entrata della tabella è la frequenza congiunta.

costruzione della tabella di contingenza:

o xes. Residenza= c(…), expo=c(…) => freq.congiunte=table(expo, residenza) prima

variabile sulle righe, seconda sulle colonne.

addmargins(freq. congiunte) aggiunge le frequenze marginali ai lati della tabella

o frequenze relative congiunte:

o calcolo la numerosità campionaria n

~ mydata=data.frame(expo, residenza)

n=nrow(mydata) conta il numero delle righe, con ncol() colonne

freq.rel.cong=freq.congiunte/n

~ se aggiungo le frequenze marginali, l’ultima somma mi deve fare 1

~

DIAGRAMMA A BARRE ACCOSTATE/BARPLOT:

barplot(f.congiunte.relative, legend=rownames(f.congiunte.relative), ylim=c(…))

legend mi aggiunge una legenda in cui mi dice cosa vogliono dire i colori, in questo

o caso mi dice cosa c’è sulle righe

barplot(t(…)) t(…) mi calcola la trasposta, inverte le righe e le colonne

o barplot(…, beside=TRUE) informazioni messe una di fianco all’altra

o

FREQUENZE CONDIZIONATE: rappresentano la distribuzione di frequenza di una variabile

per una fissata modalità dell’altra variabile.

Prop.table(f.congiunte, 2) con 2 calcolo le frequenze condizionate per colonna, con 1

per riga.

MATRICI: comando matrix(n, m, k)

n è il valore con cui voglio che mi sia riempita la matrice

o m righe (calcolate con nrow)

o con rownames(Matrice)=c(…) do i nomi alle righe

k colonne (calcolate con ncol)

o con colnames(Matrice)=c(…) do i nomi alle colonne

Per riempire la matrice:

matrix(x, ncol= numero.colonne, byrow=T)

o byrow la riempie per riga

o xes. x=c(1,2,3,4)

o matrix(x, ncol=2, byrow=T)

1 2

 3 4

LETTURA DI FILE IN R:

getwd() dice il percorso in cui R sta cercando

o setwd(“C:/…”) per cambiare percorso.

o Oppure in alto vado in session -> set working directory -> choose directory e

o scelgo la cartella in cui è contenuto il file

read.table(“nomefile.txt”) legge il file e se lo faccio andare stampa a video il

o contenuto del file

x=read.table(“… .txt”, header=TRUE) toglie la prima riga di intestazione

o head(x) stampa le prima sei righe del file

o

IFELSE:

xes. Giudizi=c(1,2,3,4,5,6,7,8,9), giudizi12=ifelse(giudizi<5, 1, 2) la variabile assume

modalità 1 se il giudizio è <5, altrimenti 2.

Ifelse(test, yes, no) yes quanto il test è TRUE, no quando è FALSE.

PROBABILITA’: sample(x, size, replace, prob)

x variabile

o size: quanti esperimenti

o replace= TRUE estrazione con reinserimento, FALSE senza reinserimento (di default)

o

CICLO FOR:

for (i in range){

condizioni

qualcosa[i]

}

FUNZIONI: func=function(z)cosa.fa.la.funzione

z è la variabile della funzione

Dettagli
Publisher
A.A. 2019-2020
7 pagine
SSD Scienze economiche e statistiche SECS-S/01 Statistica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Ssami98 di informazioni apprese con la frequenza delle lezioni di Analisi statistica multivariata e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Milano - Bicocca o del prof Lunardon Nicola.