Informatica R - Linguaggio di programmazione per statistica e probabilità PDF

Title Informatica R - Linguaggio di programmazione per statistica e probabilità
Course Informatica
Institution Università degli Studi di Trento
Pages 10
File Size 150.4 KB
File Type PDF
Total Downloads 15
Total Views 149

Summary

Linguaggio di programmazione per statistica e probabilità (R). Appunti, esempi....


Description

ALGORITMO BABILONESE PER IL CALCOLO DELLA RADICE n=2 x=n/2 k=n/2 for(i in 1:k){ x=(x+n/x)/2 err=abs(x-sqrt(n))/sqrt(n) cat("i=",i,"x= ",x,"errore=",err,"\n") } radiceBabi=function(n,k){ xprec=n/2 for (i in 1:k){ x=(xprec+n/xprec)/2 xprec=x } N.B. il \ va a capo abs=valore assoluto xprec= serve a prendere il valore di x precedente cosi non ne crea uno nuovo 22 è il massimo di cifre decimali che possiamo avere CALCOLO DI PI GREGO (METODO MONTE CARLO) N=10000 x=runif(N,min=-1,max=1) y=runif(N,min=-1,max=1) -prende una variabile x e una y e crea 2 array con 10 numeri compresi nei valori che io ho inserito -questi valori corrispondono a cordinate sul grafico interno=(x^2+y^2)=1 -questa istruzione eleva al quadrato ogni valore di x e ogni valore di y

- dal momento in cui richiamo l'array “interno” mi dice se ogni valore è accettato nell'equazione ossia se sta all'interno del quadrato o no (pi.stimato=4 *sum(interno)/N) -qua in pratica conta quanti valori true ci sono -se metto l'istruzione tra parentesi mi printa la soluzione, quindi in questo caso mi dà il Pi greco calcolato (err=abs(pi.stimato-pi)/pi) -chiedo che mi dia in out l'errore relativo plot.new() -apre una finestra grafica o pulisce la vecchia plot.window(xlim=1.1*c(-1,1), ylim=1.1*c(-1,1)) -qua decido la grandezza della finestra (c=concatena due numeri) points(x[interno],y[interno],col =”blue”,pch='.' points(x[!interno],y[!interno],col =”red”,pch='.' -qua mi disegna il grafico con tutti i valori dentro in blue e fuori in rosso for(i in v) es. prendo una circonferenza di diamentro =1 e lo inscrivo in un quadrato di lato 1 gli spicchi che avanzano valgono Pigreco quindi in ERRE generiamo dei punti per su x e Y con (runif) che genera punti in modo uniforme(quindi che ha lo stesso valore dei punti per ogni coordinata) USO DEGLI ARRAY Lo utilizzo per inserirci una lista di dati o anche più di una, facendolo ad esempio bidimensionale. (le liste di numeri si fanno con c) In c(….) posso inserire valori numerici separati da una virgola, o parole “parola”,”parole” o anche valori come TRUE o FALSE. L’importante è che siano dello stesso tipo.

> x ← c(19,18,18,19,18,18) 'c' è l'istruzione e x è una variabile >y← c(“m”,”f”,”m”,”m”) Per creare delle liste ordinate di numeri con intervalli a piacimento uno la funzione seq. >x=seq(2,9,0.5) posso farlo anche per valori decrescenti >9:5 Se voglio richiamare il contenuto dell'array x in una determinata posizione: >x[3] se voglio rivedere tutto l’array >x Posso farlo anche per insiemi di posizioni, in questo caso prende tutti i valori da 2 a 5 >x[2:5] in questo caso mi prende solo i due valori richiesti >x[c(2,5)]

STATISTICA Raccoglie dati di fatti avvenuti realmente. Si divide in statistica descrittiva: si occupa di descrivere i dati raccolti (es. la media, moda). -Può prendere in considerazione una variabile (univariabile), due variabili (bivariata), tre o più (multivariata). La statistica inferienziale: usa i dati raccolti per fare previsioni. PROBABILITA' Stabilire teoricamente quante probabilità ci sono che un evento accada.

STATISTICA SAMPLE: è una funzione generare dei dati

estraiamo 5 dati >sample(1:10, size=5) fa una lista ordinata c(1:10)

C e REP: servono a generare liste di dati o anche stringhe >rep(x=c(1:5), times=3)

RUNIF: permette di generare numeri casuali reali da un minimo a un massimo (gestisce solo numeri) SEQ: (gestisce solo numeri) ARRAY: per creare l'array uso le parentesi tonde >v=c ("a","b","c","d","e") >v[1:3] >v=c("a","b","c","d","e") per estrarre dei dati uso le quadre >v[1,3] >v[c(1,3)] >v[2] >v[c(1:2,5)] >v[-2] >v=5 se v e z non sono di grandezza uguale non funziona >v+z MATRICI è un array bidimensionale, possono essere usati solo indici numerici, mentre in un data.frame è la stessa cosa ma posso anche mettere una parola per definire una colonna es. Età. Prende i numeri che gli ho detto e ha fatto 2 righe e tre colonne >m=matrix(1:6, nrow=2) richiamo il dato della riga 2 colonna 3 >m[2,3]

richiamo tutta la riga >m[2,] richiamo tutta la colonna >m[,3] faccio la matrice ma la faccio ordinare per righe invece che per colonne che è di default >m=matrix(1:6,nrow=2,byrow=T) mi dice quante dimensioni ha la matrice >dim (m) mi dice mi dice quante caselle ha un vettore >lenght(v) INDICATORI STATISTICI DI UNA DISTRIBUZIONE Una distribuzione è una statistica univariata > m=matrix (1:6, bybrow=T) >x=sample(1:100, size =50, rep=T) un carattere è una variabile della statistica -la frequenza assoluta: è una variabile che non è molto precisa è preferibile utilizzare quella relativa > v=sample(1:100,50,rep=T) per sapere quanti sono i valori = a 82 > sum (v==82) per fare la frequenza relativa >sum(v==82)/length(v) -table: mi dà una tabella di tutti i valori che ci sono nella distribuzione e mi dice quanti valori ho per ogni valore -classi: per generare delle classi in cui do gli estremi, ossia in che classe sta ogni valore >estremi=c(0,20,40,60,80,100) per avere un dato non numerico ma come un'etichetta >vclassi=factor(cut(v,estremi)) per sapere quanti valori stanno in ogni classe

>table(vclassi) per avere una frequenza relativa >table(vclassi)/length(v) per sapere che valori ci sono all'interno in ordine e senza ripetere i doppi >factor(v,ordered=T) -media: è quel valore che tutti avrebbero se tutti fossero tutti uguali anche questa non è molto importante es. > mean (x) - mediana: è il valore rispetto al quale metà dei valori stanno a destra e metà stanno a sinistra > median (x) per avere dei valori generali che mi danno qualche indicazione > summary (x) per vedere come sono distribuiti i dati graficamente che mi dà i quartili e la mediana >boxplot (x)

-moda: è il valore che compare più frequentemente questa istruzione mi dà un po' di info sulla distribuzione tipo valore minimo, massimo, media, moda, 1st Qu. ( ecc. ) >x=table(v) > x[x==max(x)] -per fare l'istogramma con quanti valori compaiono per ogni classe(se non metto le classi che voglio, le mette di default) >hist(v) -per cambiare il nome di x e y con xlab e ylab, con main cambio il titolo in cima e con breaks mi dà il numero di colonne che voglio >hist(v,main=”età delle persone”,xlab=”età”, ylab=”frequenza”,breaks=5) -per richiamare i dati da una cartella(per importarli), dobbiamo lavorare nella stessa cartella dove ci sono i file (anche il disco c è considerato come cartella) file, cambia directory, e scelgo ad esempio il disco c >y=read.csv(“dati.csv”)

per saper la struttura dei dati >str(y) mi dice quanti maschi e quanti femmine ci sono >table (y$Sesso) -plot: faccio grafici di tipo diverso, il primo mi mostra tutti i dati su un grafico come dei pallini, il secondo un grafico di densità plot(x$Eta) plot(density(xEta)) -varianza: quanto i dati si discostano dalla media (è al quadrato rispetto ai miei dati per la sua formula di definizione) >var(x$Eta) -scarto quadratico medio: è nella stessa unità di misura dei miei dati quindi è piu utile e comodo da leggere >sd(x$Eta)

Richiamare i singoli elementi di un vettore Per richiamare i singoli elementi di un vettore x possiamo usare uno dei seguenti modi: • >x richiama l’intero vettore • >x[n] richiama l’elemento di posto n del vettore • >x[c(n1,n2,n3)] richiama gli elementi di posto n1,n2,n3 del vettore • >x[n1:n2] richiama gli elementi di posto da n1 a n2 del vettore • >x[-(n1:n2)] richiama tutti gli elementi del vettore tranne quelli da n1 a n2 • >x[-c(n1,n2,n3)] richiama tutti gli elementi del vettore tranne quelli di posto n1,n2,n3 • >x[x>n1] richiama gli elementi del vettore maggiori di n1 • >x[x>n1 | xx[x>n1 & xx[“a“] restituisce l’elemento del vettore con etichetta a“

Creare un vettore con seq La funzione seq viene usata per creare delle sequenze di numeri. La sintassi `e la seguente seq(primo,ultimo,incremento) in cui: • primo `e il primo elemento della sequenza • ultimo `e l’ultimo elemento della sequenza • incremento `e il passo con cui si va da primo ad ultimo

Creare un vettore con rep La funzione rep serve per creare un vettore con dati ripetuti. La sua sintassi `e la seguente: • >xxsort(x) con il quale gli elementi di x sono ordinati in modo crescente, se invece vogliamo ottenere l’ordinamento decrescente dobbiamo utilizzare il comando: >sort(x,decreasing=T)

Le funzioni elementari statistiche Dato un vettore di tipo numerico x, le principali funzioni elementari statistiche applicabili a tale vettore sono le seguenti: ● >min(x) restituisce il minimo di x ● >max(x) restituisce il massimo di x ● >mean(x) restituisce la media aritmetica semplice di x

● >median(x) restituisce la mediana di x ● >sd(x) restituisce la deviazione standard di x ● >sum(x) restituisce la somma di x

Matrici Le matrici possono essere di tipo numerico, di stringhe di caratteri e logiche. Se il vettore x contiene i dati da inserire nella matrice ordinati secondo le colonne, per creare una matrice possiamo utilizzare la funzione matrix nel seguente modo: matrix(x,nrow=numerorighe,ncol=numerocolonne,byrow=F) Si noti che la lunghezza del vettore deve essere pari al valore di nrow*ncol in caso contrario si ottiene un messaggio di errore.

Opzioni del comando plot Una volta digitato il comando plot, possiamo aggiungere allo stesso usando la sintassi: >plot(x,y,....) al posto dei puntini una serie di opzioni, separate da una virgola, che servono per personalizzare il grafico ottenuto. Esse sono le seguenti: • main=“ “ crea un titolo nel grafico • xlab=“ “ crea un nome dell’asse delle x • ylab=“ “ crea nome dell’asse delle y • xlim=c(valore1, valore2) traccia l’asse del x tra valore1 e valore2 • ylim=c(valore1, valore2) traccia l’asse dell y tra valore1 e valore2...


Similar Free PDFs