# Análisis Exploratorio de Datos library(mea, lib.loc="../") # Función: tabla.frec(vector datos, nº clases) # Función: table(vector datos) # Función: cut(vector datos, nº intervalos ó límites de los intervalos) tabla.frec<-function (x, cl) { f <- table(cut(x, seq(min(x) - 0.001, max(x) + 0.001, length = cl + 1))) h <- f/length(x) F <- cumsum(f) H <- cumsum(h) res <- cbind(f, h, F, H) dimnames(res)[[2]] <- c(" f", " h", " F", " H") res } source("ph.R") ls() attach(datos) tabla.frec(ph,5) # Función: hist(vector datos, nº intervalos ó límites de los intervalos) hist(ph,br=9) # Nº clases de un histograma o una tabla de frecuencias. # Fórmula de Sturges: sturges<-function(x) floor(1+log2(length(x))) sturges(ph) # Función: stem(vector datos) stem(ph) # Medidas Descriptivas # Función: summary(vector datos) summary(ph) # resumen.des(vector.datos,factor=0,alfa=.1) # factor=0 -para el caso de una sola variable. # alfa -proporción de recorte de la media recortada (por defecto 0.1). resumen.des(ph) # Medias recortadas al alfa*100%: mean(vector datos, trim=alfa) mean(ph, trim=0.05) # Gráficos Descriptivos. # Función: boxplot(vector datos) boxplot(ph, col=2) # Función de densidad de la población: # Función: density(vector datos, ancho banda) res<-density(ph) attributes(res) res$bw hist(ph, seq(min(ph),max(ph),length=8), prob=T, col=5) lines(res,col=2) lines(density(ph,bw=0.02),col=3) lines(x<-seq(min(ph),max(ph),length=1000), dnorm(x,mean(ph),sqrt(var(ph))), col=4) # Función de Distribución de la Población: # Función de distribución empírica: ecdf(vector datos) plot(ecdf(ph),do.points=FALSE,verticals=TRUE) lines(x<-seq(min(ph),max(ph),length=1000),pnorm(x,mean(ph),sqrt(var(ph))),col=2) # Función de distribución empírica (corrección para # distribuciones continuas): ecdf.cont(vector datos,a=.375,sobre=FALSE,...) ecdf.cont(ph,sobre=TRUE)