Linguaxe

23
VIII Congreso Galego de Estatística e Investigación de Operacións Santiago de Compostela, 8-9-10 de novembro de 2007 Rosa María Crujeiras Casais Beatriz Pateiro López Linguaxe

description

Linguaxe. Rosa María Crujeiras Casais Beatriz Pateiro López. Que é ?. Forma parte do parte do proxecto GNU e se presenta como software libre ( liberdade dos usuarios para executar, copiar, distribuír, estudar, cambiar e mellorar o software ). - PowerPoint PPT Presentation

Transcript of Linguaxe

Page 1: Linguaxe

VIII Congreso Galego de Estatística e Investigación de OperaciónsSantiago de Compostela, 8-9-10 de novembro de 2007

Rosa María Crujeiras CasaisBeatriz Pateiro López

Linguaxe

Page 2: Linguaxe

R

VIII Congreso Galego de Estatística e Investigación de OperaciónsSantiago de Compostela, 8-9-10 de novembro de 2007

CURSODE

Que é ?

Forma parte do parte do proxecto GNU e se presenta como software libre (liberdade dos usuarios para executar, copiar, distribuír, estudar, cambiar e mellorar o software).

Proporciona unha linguaxe de programación propia, baseada na linguaxe S.

Page 3: Linguaxe

R

VIII Congreso Galego de Estatística e Investigación de OperaciónsSantiago de Compostela, 8-9-10 de novembro de 2007

CURSODE

Descargar R: http://www.r-project.org/

Podes atopar: Distintas

versións Paquetes Manuais de

axuda Listas de

correo…

Que é ?

Page 4: Linguaxe

R

VIII Congreso Galego de Estatística e Investigación de OperaciónsSantiago de Compostela, 8-9-10 de novembro de 2007

CURSODE Que pasa cando executamos

Cando executamos R, aparece

R Console. No menú está a opción de

“Paquetes” (instalar e cargar paquetes).

Tamén temos fiestras gráficas e scripts.

O mais básico en R• Executar un comando: Return• Comentarios: #

• Asignar valores a obxectos: > x<-3 # Asigna o valor

3

Page 5: Linguaxe

R

VIII Congreso Galego de Estatística e Investigación de OperaciónsSantiago de Compostela, 8-9-10 de novembro de 2007

CURSODE

A axuda en

Pedindo axuda:

> help(help)

> ?help

> help.search(“mean”) Tamén podemos acceder á axuda de R a través

do menú.

Botóns de axuda

Page 6: Linguaxe

R

VIII Congreso Galego de Estatística e Investigación de OperaciónsSantiago de Compostela, 8-9-10 de novembro de 2007

CURSODE

Principais obxectos en

Principais tipos de obxectos en R

• numeric• character• matrix• array• logical• factor• data.frame• list• …

Principais funcións relacionados co manexo de obxectos en R

> ls( ) Lista os obxectos no directorio de traballo> objects( ) > class(x) Determina a clase do obxecto x> apropos( ) Búsqueda de obxectos> rm(x) Elimina o obxecto x

Page 7: Linguaxe

R

VIII Congreso Galego de Estatística e Investigación de OperaciónsSantiago de Compostela, 8-9-10 de novembro de 2007

CURSODE

Vectores en

Vector numérico > x<-c(1,2,5,6,9) Vector carácter > nomes<-c(“Luis”,”Mar”) Vector lóxico > lox<-c(F,F,T,F)

Vector enteiro > y<-2:6 Outras funcións para definir vectores > z1<-seq(0,8,by=4)

> z2<-seq(0,8,length=4)

> z3<-rep(5,4)

Os argumentos das funcións en R• R substitúe os argumentos das funcións na mesma orde na que están definidos a non ser que lle indiquemos explícitamente o nome do argumento.Definición da función seq: seq(from,to,by,length.out,...)

> seq(1,10,2)> seq(1,2,length=2)

from to by

Page 8: Linguaxe

R

VIII Congreso Galego de Estatística e Investigación de OperaciónsSantiago de Compostela, 8-9-10 de novembro de 2007

CURSODE

Vectores en

Como escollemos as compoñentes dun vector> x[2]> x[-3]> x[1:3]> x[c(1,5)]> x[x>4]

Algunhas funcións útiles

> length(x)> min(x)> max(x)> sort(x)> order(x)

Consulta a axuda para saber como utilizalas

Page 9: Linguaxe

R

VIII Congreso Galego de Estatística e Investigación de OperaciónsSantiago de Compostela, 8-9-10 de novembro de 2007

CURSODE

Operacións con vectores en Operadores matemáticos: + - / *

Para vectores da mesma dimensión, R realiza a operación desexada entre cada compoñente i dun vector coa correspondente compoñente i do outro vector.

> x+y> x/y> 6*x

Que pasa cando operamos con vectores de distinta dimensión?> x+z1

Page 10: Linguaxe

R

VIII Congreso Galego de Estatística e Investigación de OperaciónsSantiago de Compostela, 8-9-10 de novembro de 2007

CURSODE

Matrices en

Como definir matrices > m<-matrix(0,nrow=2,ncol=3) Creando matrices a partir dun vector:

> x<-1:6> m1<-matrix(x,nrow=2)

> m2<-matrix(x,5,2)

Replica o vector x ata completar a dimensión da matriz

Exemplo: Matriz <- matrix(c(1,2,3,11,12,13),nrow=2,ncol=3,byrow=TRUE,dimnames=list(c("f1","f2"),c("c1","c2","c3"))

matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL)

Page 11: Linguaxe

R

VIII Congreso Galego de Estatística e Investigación de OperaciónsSantiago de Compostela, 8-9-10 de novembro de 2007

CURSODE

Matrices en

Como escollemos as compoñentes dunha matrix> A<-matrix(c(2,1,3,4),nrow=2,ncol=2)

> B<-matrix(c(3,8),nrow=2,ncol=1)

> C<-matrix(c(2,4,2,1),nr=2,nc=2)

> A[1,2]

> A[,1]

> A[2,]

3

8B

æö÷ç ÷=ç ÷ç ÷è ø

Algunhas funcións útiles

> dim(A)> nrow(A)> ncol(A)> t(B)> diag(nr=3)

2 3

1 4A

æ ö÷ç ÷=ç ÷ç ÷è ø

2 2

4 1C

æ ö÷ç ÷=ç ÷ç ÷è ø

Page 12: Linguaxe

R

VIII Congreso Galego de Estatística e Investigación de OperaciónsSantiago de Compostela, 8-9-10 de novembro de 2007

CURSODE

Operacións con matrices en Operadores matemáticos: + - / * %*%

Para matrices da mesma dimensión, R realiza a operación desexada entre cada compoñente (i,j) dunha matriz coa correspondente compoñente (i,j) da outra matriz.

> A+C> A/C> A*C

Que pasa cando operamos con matrices de distinta dimensión?> A+B

Producto matricial (%*%) e producto compoñente a compoñente (*)> A*B> A%*%B

Función outer> outer(A,B,"+")

3

8B

æö÷ç ÷=ç ÷ç ÷è ø

2 3

1 4A

æ ö÷ç ÷=ç ÷ç ÷è ø

2 2

4 1C

æ ö÷ç ÷=ç ÷ç ÷è ø

Page 13: Linguaxe

R

VIII Congreso Galego de Estatística e Investigación de OperaciónsSantiago de Compostela, 8-9-10 de novembro de 2007

CURSODE

Un exemplo de gráfico en> x<-seq(0,2*pi,length=100)

> y1<-cos(x)

> y2<-sin(x)

> plot(x,y1,col=2,lwd=3,xlab="[0,2pi]",type="l",main="Sen y Cos")

> lines(x,y2,col=3,lwd=3,lty=2)

> points(2,0,pch=17,col=4)

> legend(0,-0.5,c("Coseno","Seno"),col=2:3,lty=1:2,lwd=3)

Algúns argumentos útiles

col Color lwd Anchura de liñalty Tipo de liña (continua, discontinua,...) pch Tipo de punto

main Título principalxlab Título eixo Xylab Título eixo Y

Page 14: Linguaxe

R

VIII Congreso Galego de Estatística e Investigación de OperaciónsSantiago de Compostela, 8-9-10 de novembro de 2007

CURSODE

apply

> m1> apply(m1,1,sum) #apply(objeto, dim, func)

> clase<-c(“a”,”b”,”a”,”a”,”b”,”a”,”b”)

> x<-c(1,2,1,1,2,1,2)

> tapply(x,clase,mean)

outer

> mifun<-function(x,y){cos(y)/(1+x^2)}> z<-outer(x,y,mifun)

> class(z)

Page 15: Linguaxe

R

VIII Congreso Galego de Estatística e Investigación de OperaciónsSantiago de Compostela, 8-9-10 de novembro de 2007

CURSODE

Estatística básica en

Xeración de variables (e vectores) aleatorias:> x<-rnorm(100,0,1) > mean(x)> var(x) #É a cuasivarianza> var(x)*(length(x)-1)/length(x)> summary(x)

Máis estatística descritiva:> hist(x,freq=F)> lines(density(x),col=3,lwd=2)#estima

densidade> rug(x)> stem(x)> boxplot(x)> plot(ecdf(x),do.points=F,verticals=T)

Page 16: Linguaxe

R

VIII Congreso Galego de Estatística e Investigación de OperaciónsSantiago de Compostela, 8-9-10 de novembro de 2007

CURSODE

Estatística básica en

Máis estatística descritiva:

> shapiro.test(x)

> ks.test(x,”pnorm”,mean=mean(x),sd=sqrt(x))

> y<-rexp(1000,rate=5)

> ks.test(y,”pexp”,rate=1/mean(y))

> z<-rnorm(100,mean=5,sd=3)

> boxplot(x,z)

> t.test(x,z)

> var.test(x,z)

Page 17: Linguaxe

R

VIII Congreso Galego de Estatística e Investigación de OperaciónsSantiago de Compostela, 8-9-10 de novembro de 2007

CURSODE

Estatística básica en

Densidade, distribución, cuantís e xeración de variables aleatorias: d*, p*, q* e r*.

> help(“rnorm”)

> x<-seq(-4,4,by=0.25)

> plot(x,pnorm(x),type=“l”,col=2)

> lines(x,dnorm(x))

> y<-seq(0,1,length=100)

> plot(y,qnorm(y))

Page 18: Linguaxe

R

VIII Congreso Galego de Estatística e Investigación de OperaciónsSantiago de Compostela, 8-9-10 de novembro de 2007

CURSODE

Un modelo de regresión en

Regresión lineal:

> x<-rnorm(100,0,1)

> y<-2+3*x+rnorm(100,0,2*abs(x))

> plot(x,y)

> modelo<-lm(y~x)

> names(modelo)

> plot(modelo)

Page 19: Linguaxe

R

VIII Congreso Galego de Estatística e Investigación de OperaciónsSantiago de Compostela, 8-9-10 de novembro de 2007

CURSODE

Unha interface amable

Rcommander:

• Dende MenúDatos Importar datos (distintos tipos de arquivos).

• No Menú temos Editar Datos e Visualizar Datos.

• Na Fiestra de Resultados temos os comandos que deberiamos escribir.

• Na Fiestra de Instrucións, veñen os procedementos. Pódese volver a eles dende o botón Executar.

Page 20: Linguaxe

R

VIII Congreso Galego de Estatística e Investigación de OperaciónsSantiago de Compostela, 8-9-10 de novembro de 2007

CURSODE

Unha interface amable

Utilizando o Rcommander:

• Importa o arquivo de datos alumnos0607.xls.

• Edita e visualiza os datos.

• Fai un histograma da variable Altura.

• Axusta un modelo de regresión lineal do Peso sobre a Altura: Menú Estatísticos Axuste de modelos.

• En Menú Modelos podemos seleccionar o noso modelo, e debuxar as gráficas de diagnose, facer análise da varianza, etc.

Page 21: Linguaxe

R

VIII Congreso Galego de Estatística e Investigación de OperaciónsSantiago de Compostela, 8-9-10 de novembro de 2007

CURSODE

Unha interface amable

Utilizando o Rcommander (II):

• Diagrama dispersión 3D: MenúGráficas 3D Graph Diagrama dispersión 3D.

•Seleccionamos como resposta o IMC e como explicativas a altura e o peso.

•Temos unha gráfica interactiva.

• En MenúDistribuciones, temos as funcións de densidade, distribución, xeración de datos…

Page 22: Linguaxe

R

VIII Congreso Galego de Estatística e Investigación de OperaciónsSantiago de Compostela, 8-9-10 de novembro de 2007

CURSODE

Rpanel

Este paquete proporciona ferramentas para construir a nosa propia GUI (coma o rcmdr).> bp.sim<-function(panel){boxplot(rnorm(100),col=3)}

> panel<-rp.control()

> rp.buttom(panel,action=bp.sim,title=“Simula”)

Page 23: Linguaxe

R

VIII Congreso Galego de Estatística e Investigación de OperaciónsSantiago de Compostela, 8-9-10 de novembro de 2007

CURSODE

Rpanel

Estimación da densidade:> dens.plot<-function(panel){plot(density(panel$x,bw=panel$h))

panel}

> panel<-rp.control(x=rnorm(100))

> rp.slider(panel,h,0.2,5,action=dens.plot,title=“Fiestra”)