You are on page 1of 13

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

#############################
# Programa para calcular las medidas descriptivas de un conjunto de datos.
# tambin 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 simultneamente)
# 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 duracin en


das de 15 bateras.

# la "c" es de concatenar, y entre parntesis se introducen los nmeros.

##################################
# Estadsticos de resumen
##################################

length(x)

# calcula el nmero de datos. Es decir, el tamao de la muestra.

min(x) # Valor mnimo.


max(x) # Valor mximo.
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.

mean(x)

# calcula la media. El centro de gravedad de la distribucin.

median(x)
# calcula la mediana. El valor de la variable que corresponde al
elemento central de la distribucin.
var(x)

# calcula la varianza.

sd(x)
# clacula la desviacin estndar. Miden la dispersin de los valores
de la variable respecto a la media aritmtica.
quantile(x) # calcula los cuantiles. Dividen la distribucin de frecuencias en
cuatro partes con igual nmero de observaciones.
fivenum(x) # Resumen de 5 nmeros: min., Q1, mediana, Q3 y max.
IQR(x)

# Calcula el rango intercuartilico.

summary(x)

# Resumen estadstico 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 distribucin.

Dme=sum(abs(x-median(x)))/length(x) #Para la desviacin mediana hay que


escribir la formula.
Dme
cv=sd(x)/mean(x) # permite comparar el grado de dispersin 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.
###############################################
###################

# Ordenacin 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 nmero de combinaciones de m elementos de orden n.


choose(10,2)

# factorial(n) da el factorial de un nmero (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 instruccin para crear una funcin. La "x" que le sigue es
# el argumento de la funcin y entre llaves est lo que la funcin hace con el
# argumento.

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

###############################################
######################
# Un ejemplo pequeo de cmo hacer una funcin en R.
###############################################
######################

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, desviacin_estndar=des,
coeficiente_de_variacin=cv))
}

desest(x)
quantile(x)

# Hace los clculos de la funcin con el vector de datos x


# calcula percentiles

matrix(x, nc=3)

###############################################
#####################################
# Ahora se importan datos desde un formato .txt. Estos corresponden a
# los datos del ejemplo 1.3 (pg 41 del libro de Navidi). Los datos estn
tambin
# 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=",")


importar los datos.

# Instruccin para

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) # Instruccin 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 numrica discreta.

#win.graph()
#par(mfrow=c(2, 3))

##################################
# FUNCIONES GRFICAS BSICAS
##################################
stem(Emision)

# Grafica el diagrama de tallos y hojas

plot(Emision, col="red")
puntos, lineas, etc.

# Funcin genrica para representar en el plano xy

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) # Representacin en el plano xy de diagramas de
girasol.

win.graph()
hist(Emision, xlab="Emisin de partculas (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 clculo 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")

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 dispersin de una distribucin en base a los 5 valores:
mnimo, Q1, Me, Q3 y valor mximo.

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().

###############################################
#######################################
# INSTALACIN DE PAQUETES
# Si queremos instalar el paquete ISwR, procedemos a ubicarlo con Cran
mirror y luego seleccionamos el pas y la ciudad,
# si hay especificaciones, de donde lo queremos bajar. En este caso usamos la
funcin 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 diabtico del tipo 1.
data(thuesen)
attach(thuesen)
#permite usar las variables de la base de datos. Llama los
datos que estn en la base de datos thuesen.
win.graph()
plot(blood.glucose,short.velocity)
especificaciones.

# Este es un grfico sin muchas

win.graph()
plot(blood.glucose,short.velocity,main="Grafico de Elias",sub="Clase 21 de
agosto") # A este grfico se le introdujo un nombre y un subttulo.
detach(thuesen)

# La funcin detach(thuesen) desactiva la funcin 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 funcin 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)
usuario.
a=fix(dd)
vaca.

# presenta una tabla sin datos, disponible para llenar por el


# permite introducir los datos del data frame dd, cuando est

a
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 estn dentro de thuesen, en este caso trabaja con
el logaritmo de la variable blood.glucose.
thue3

###############################################
###################
#Ahora instalamos el paquete "car"
###############################################
###################

?car
# Este paquete acompaa el J. Fox, An R y S-PLUS compaero para
regresin aplicada, sabio, 2002. El paquete contiene sobre todo las funciones
para la regresin aplicada, los modelos lineares y los modelos lineares
generalizados, con nfasis en diagnsticos de la regresin, particularmente los

mtodos de diagnstico grficos. Tambin hay algunas funciones para uso


general. A continuacin instalamos el paquete.
library(car)
data(Ornstein)

# carga el paquete car.


# 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 continuacin.
x
attach(Ornstein)
# Otra manera de ordenar los datos es usando primero la
funcin attach(Ornstein) para llamar los datos del paquete Omstein y luego
usar la funcin sort(), como puede verse a continuacin.
sort(interlocks)
y=sort(unique(Ornstein$interlocks)) # ordena los datos sin repetirlos.
y
m=rnorm(100)
# Genera cien datos pseudoaleatorios obtenidos de una
distribucin normal de media 0 y desviacin estndar 1 y los almacena en m.
Como se puede ver a continuacin.
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 grfica 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")
histograma anterior.

# agrega la grafica de la normal sobre el

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)
barplot(y, names.arg = P, main = "Diagrama de Barras", col=c(2,3,4,5),xlab=
"Poblacin", 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")

You might also like