clase de estadistica

15
################################################################## ########## # Programa para calcular las medidas descriptivas de un conjunto de datos. # también se dibuja el histograma, el diagrama de tallos y hojas y el box-plot. # Nota: Pra aejecutar una linea parece al comienzo de esta y pulse la tecla F5 # Tambien puede usar Ctrl R (pulse las dos teclas simultáneamente) # Si quiere ejecutar varias lineas, marquelas y despues F5. ################################################################## ########### # Cuando se escribe en R los simbolos = y <- tienen el mismo significado # y pueden usarse indistintamente. x=c(30,40,50,30,40,50,40,30,20,30,120,110,30,40,89) # datos de duración en días de 15 baterías. # la "c" es de concatenar, y entre paréntesis se introducen los números. ################################## # Estadísticos de resumen ##################################

Upload: christina-james

Post on 02-Feb-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Clase de Estadistica

############################################################################

# Programa para calcular las medidas descriptivas de un conjunto de datos.

# también se dibuja el histograma, el diagrama de tallos y hojas y el box-plot.

# Nota: Pra aejecutar una linea parece al comienzo de esta y pulse la tecla F5

# Tambien puede usar Ctrl R (pulse las dos teclas simultáneamente)

# Si quiere ejecutar varias lineas, marquelas y despues F5.

#############################################################################

# Cuando se escribe en R los simbolos = y <- tienen el mismo significado

# y pueden usarse indistintamente.

x=c(30,40,50,30,40,50,40,30,20,30,120,110,30,40,89) # datos de duración en días de 15 baterías.

# la "c" es de concatenar, y entre paréntesis se introducen los números.

##################################

# Estadísticos de resumen

##################################

length(x) # calcula el número de datos. Es decir, el tamaño de la muestra.

min(x) # Valor mínimo.

max(x) # Valor máximo.

range(x) # el comando range, no da precisamente el rango, pero dice cual es el menor y mayor valor los datos.

sum(x) # suma los datos.

Page 2: Clase de Estadistica

mean(x) # calcula la media. El centro de gravedad de la distribución.

median(x) # calcula la mediana. El valor de la variable que corresponde al elemento central de la distribución.

var(x) # calcula la varianza.

sd(x) # clacula la desviación estándar. Miden la dispersión de los valores de la variable respecto a la media aritmética.

quantile(x) # calcula los cuantiles. Dividen la distribución de frecuencias en cuatro partes con igual número de observaciones.

fivenum(x) # Resumen de 5 números: min., Q1, mediana, Q3 y max.

IQR(x) # Calcula el rango intercuartilico.

summary(x) # Resumen estadístico de la variable x.

# La media recortada al 10%

mean(x,trim=10/100)

# La media recortada al 5%

mean(x,trim=5/100)

# Otros cuantiles.

quantile(x,c(0.1,0.9))

quantile(x,c(0.05,0.95))

quantile(x,c(0.025,0.975))

quantile(x, probs=c(0.25,0.75))

diff(range(x)) # Este comando da lo que usualmente se conoce como rango de la distribución.

Dme=sum(abs(x-median(x)))/length(x) #Para la desviación mediana hay que escribir la formula.

Page 3: Clase de Estadistica

Dme

cv=sd(x)/mean(x) # permite comparar el grado de dispersión relativa de varias distribuciones de frecuencias.

cv

T=table(x) # Nos provee la frecuencia absoluta.

T

cumsum(x) # Representa la frecuencia absoluta acumulada.

##################################################################

# Algunas funciones de uso general.

##################################################################

# Ordenación creciente de las componentes del vector

sort(x)

# Colocar las componentes de un vector en orden inverso a como han sido introducidas

rev(x)

# Order y sort admiten orden decreciente.

rev(sort(x))

# choose(m,n) da el número de combinaciones de m elementos de orden n.

Page 4: Clase de Estadistica

choose(10,2)

# factorial(n) da el factorial de un número (n), o lo que es lo mismo,

# calcula las permutaciones de n elementos

factorial(6)

# runif(n) genera al azar n valores comprendidos entre 0 y 1

runif(20)

#############################################################

# Funciones generadas por el usuario

#############################################################

# "function" es la instrucción para crear una función. La "x" que le sigue es

# el argumento de la función y entre llaves está lo que la función hace con el

# argumento.

desvia<-function(x)x-mean(x)

desvia <- function(x) {

x - mean(x)

}

desvia(x)

#####################################################################

# Un ejemplo pequeño de cómo hacer una función en R.

#####################################################################

Page 5: Clase de Estadistica

desest<-function(x)

{

m=mean(x)

sum<-0

for(i in 1:length(x))

{

sum=sum+(x[i]-m)^2

}

var<-sum/(length(x)-1)

des<-sqrt(var)

cv<-des/m

return(list(media=m, varianza=var, desviación_estándar=des, coeficiente_de_variación=cv))

}

desest(x) # Hace los cálculos de la función con el vector de datos x

quantile(x) # calcula percentiles

matrix(x, nc=3)

####################################################################################

# Ahora se importan datos desde un formato .txt. Estos corresponden a

# los datos del ejemplo 1.3 (pág 41 del libro de Navidi). Los datos están también

Page 6: Clase de Estadistica

# en Excel. De ahi fueron exportados como texto delimitado por tabulaciones (.txt)

# para ser leidos despues en R.

#####################################################################################

datos=read.table("emision.txt", head=TRUE, dec=",") # Instrucción para importar los datos.

datos

# Lee el archivo en formato de tabla y genera un conjuto de datos de él. El subcomando header=T

# nos provee el nombre de cada columna

attach(datos) # Instrucción para usar posteriromente el nombre de la variable "Emision"

# La base de datos es adherida a la direccion donde R busca cuando va a evaluar una variable.

table(datos) # realiza tablas de frecuencias absolutas.

win.graph()

plot(table(datos), type="h", lwd=10, main="datos emision") # Diagrama de barras para una variable numérica discreta.

#win.graph()

#par(mfrow=c(2, 3))

##################################

# FUNCIONES GRÁFICAS BÁSICAS

Page 7: Clase de Estadistica

##################################

stem(Emision) # Grafica el diagrama de tallos y hojas

plot(Emision, col="red") # Función genérica para representar en el plano xy puntos, lineas, etc.

barplot(Emision) # Diagramas de barras.

# piechart(Emision) # Diagramas de sectores.

hist(Emision) # Histogramas.

boxplot(Emision) # Diagramas de box-and-whisker (de caja y bigotes).

sunflowerplot(Emision) # Representación en el plano xy de diagramas de girasol.

win.graph()

hist(Emision, xlab="Emisión de partículas (g/gal)", ylab="Frecuencia", main="Histogram de frecuencias absolutas") # Calcula el histograma de frecuencias

?hist # Para revisar que otras opciones se pueden incluir en el cálculo del histograma

win.graph()

pie(Emision, labels = names(Emision), col= c(2,5,4,3)) # Diagrama de sectores.

op <- par(mfrow=c(1,1), bg="antiquewhite")

par(lty="dashed")

par(col="red")

hist(Emision, prob=TRUE,main="", xlab="", ylab="")

lines(density(x), col="red")

Page 8: Clase de Estadistica

op <- par(mfrow=c(1,1), bg="antiquewhite")

par(lty="dashed")

par(col="red")

plot(Emision, col="red")

#####################################################################################

#BOX PLOT: grafico de caja, Ubica los cuartiles y pinta una caja entre el 1 y el 3

#en esta se pude ver la media, la mediana, el rango intercurtil, la forma y se usa una regla de los 1.5 rangos intecuertilicos.

#######################################################################################

win.graph()

boxplot(Emision) # Grafica el Box and Wisker Plot (Diagrama de Caja y Bigotes). Visualiza la dispersión de una distribución en base a los 5 valores: mínimo, Q1, Me, Q3 y valor máximo.

win.graph()

boxplot (Emision, horizontal=TRUE, col="blue") # Box plot horizontal y con color.

detach(datos) # Este comando se usa para desactivar el comando attach().

######################################################################################

# INSTALACIÓN DE PAQUETES

# Si queremos instalar el paquete ISwR, procedemos a ubicarlo con “Cran mirror” y luego seleccionamos el país y la ciudad,

Page 9: Clase de Estadistica

# si hay especificaciones, de donde lo queremos bajar. En este caso usamos la función library(ISwR) para carga el paquete ISwR.

#####################################################################################

library(ISwR) # carga el paquete ISwR

?thuesen # Muestra la ayuda donde dice que el data frame thuesen tiene 24 filas y 2 columnas. Contiene la velocidad de la glucosa ventricular y de sangre glucosa para los pacientes del diabético del tipo 1.

data(thuesen)

attach(thuesen) #permite usar las variables de la base de datos. Llama los datos que están en la base de datos thuesen.

win.graph()

plot(blood.glucose,short.velocity) # Este es un gráfico sin muchas especificaciones.

win.graph()

plot(blood.glucose,short.velocity,main="Grafico de Elias",sub="Clase 21 de agosto") # A este gráfico se le introdujo un nombre y un subtítulo.

detach(thuesen) # La función detach(thuesen) desactiva la función attach.

data(airquality) # Para usar los datos incorporados en el paquete.

?airquality # La ayuda dice que son medidas diarias de la calidad del aire en Nueva York, de mayo a septiembre de 1973.

ca=edit(airquality) # Su función es editar los datos contenidos en airquality. Permite editar visualmente el contenido de una data frame.

ca

dd=data.frame(airquality) # Crea una tabla datos.

dd

ca=edit(dd) # presenta una tabla sin datos, disponible para llenar por el usuario.

a=fix(dd) # permite introducir los datos del data frame dd, cuando está vacía.

a

Page 10: Clase de Estadistica

data(thuesen)

thue2=subset(thuesen,blood.glucose<7)

thue2

thue3=transform(thuesen,log.gluc=log(blood.glucose)) # crea una nueva variable a partir de las que están dentro de thuesen, en este caso trabaja con el logaritmo de la variable blood.glucose.

thue3

##################################################################

#Ahora instalamos el paquete "car"

##################################################################

?car # Este paquete acompaña el J. Fox, An R y S-PLUS compañero para regresión aplicada, sabio, 2002. El paquete contiene sobre todo las funciones para la regresión aplicada, los modelos lineares y los modelos lineares generalizados, con énfasis en diagnósticos de la regresión, particularmente los métodos de diagnóstico gráficos. También hay algunas funciones para uso general. A continuación instalamos el paquete.

library(car) # carga el paquete car.

data(Ornstein) # Para usar los datos incorporados en el paquete.

x=sort(Ornstein$interlocks) # Ordena los datos contenidos en un paquete interlocks en forma ascendente. Como puede verse a continuación.

x

attach(Ornstein) # Otra manera de ordenar los datos es usando primero la función attach(Ornstein) para llamar los datos del paquete Omstein y luego usar la función sort(), como puede verse a continuación.

sort(interlocks)

y=sort(unique(Ornstein$interlocks)) # ordena los datos sin repetirlos.

y

m=rnorm(100) # Genera cien datos pseudoaleatorios obtenidos de una distribución normal de media 0 y desviación estándar 1 y los almacena en m. Como se puede ver a continuación.

Page 11: Clase de Estadistica

m

win.graph()

hist(x,freq=F) #un histograma es un grafico para variables cuantitativas. De esta manera se grafican los datos ordenados en clases, usando las frecuencias absolutas.

win.graph()

hist(m) #dibuja un histograma, presenta la gráfica de la frecuencia de los datos ordenados en clases.

win.graph()

hist(m,nclass=10) #dibuja un histograma usando aproximadamente 10 barras.

win.graph()

hist(m,nclass=5) #dibuja un histograma usando aproximadamente 5 barras.

win.graph()

hist(m,nclass=5,freq=F)

curve(dnorm(x),add=T, col="red") # agrega la grafica de la normal sobre el histograma anterior.

win.graph()

hist(m,nclass=5,freq=F,ylim=c(0,0.4)) # modifica el histograma para ajustarlo a la curva normal. Trabaja con la frecuencia relativa.

curve(dnorm(x),add=T, col="blue")

P=c(1,2,3,5)

y=c(1,1,1,1)

Page 12: Clase de Estadistica

barplot(y, names.arg = P, main = "Diagrama de Barras", col=c(2,3,4,5),xlab= "Población", ylab="Frecuencias")

y2 = c(1,2,3,2, 3, 3,2,1)

x2 <- c(1,1.5, 2,2.5,3,3.5, 4,5)

win.graph()

barplot(y2, names.arg = x2, main = "Diagrama de Barras", xlab= "Medias", ylab="Frecuencias")

x3=c(1,4/3, 5/3, 2, 7/3, 8/3, 3, 10/3, 11/3, 4, 13/3, 5)

y3 = c(1,3,6,7,9,9,10,6,6,3,3,1)

win.graph()

barplot(y3, names.arg = x3, main = "Diagrama de Barras", xlab= "Medias", ylab="Frecuencias")

x4=c(1,5/4,6/4,7/4, 2,9/4,10/4,11/4, 3,13/4,14/4,15/4, 4,17/4,18/4, 5)

y4=c(1,4,10,16,23,28,34,32,31,24,22,12,10,4,4,1)

win.graph()

barplot(y4, names.arg = x4, main = "Diagrama de Barras", xlab= "Medias", ylab="Frecuencias")