====== Ejemplos ====== ===== Tabulación ===== * Ejemplo de simulación del número de hijos varones de ''n'' familias de 3 descendientes. n<-10000 sample(0:1,n*3,replace=T)->hijos hijos<-matrix(hijos,ncol=3) apply(hijos,1,sum)->nhijosf table(nhijosf) plot(table(nhijosf)) round(table(nhijosf)/n,3) ===== Histogramas ===== * Ejemplo de histograma para n valores procedentes de una normal y superposición de la curva de densidad teórica. n<-300 rnorm(n)->a hist(a,seq(-4,4,0.5),prob=T) lines(seq(-4,4,len=100),dnorm(seq(-4,4,len=100)),col=2) ===== Distribución acumulada ===== * Ejemplo de CDF para n valores procedentes de una normal n<-300 sort(rnorm(n))->a plot(a,1:n,type="l") lines(a,pnorm(a)*n,col=2) ===== Falacias ===== * Simulación de un paseo aleatorio. El llamado //paseo del borracho// se describe como el avance de un individuo que aleatoriamente efectua pasos adelante y atrás. p<-1000 sample(c(-1,1),p,replace=T)->pasos plot(cumsum(pasos),type="l",ylim=c(-100,100)) table(pasos) ===== Partículas en movimiento ===== * Simulación de movimiento brauniano: una partícula se desplaza una distancia aleatoria y tomando un rumbo aleatorio. x<-0 y<-0 for(i in 1:1000){ alfa<-runif(1,0,2*pi) d<- runif(1) y<-y+sin(alfa)*d x<-x+cos(alfa)*d plot(x,y,pch=16,xlim=c(-10,10),ylim=c(-10,10),asp=1) } ===== Regresión lineal ===== * Simulación de dos variables correlacionadas linealmente y obtención del modelo n<-30 x<-runif(n) y<-x+rnorm(n,0,0.1) mlxy<-lm(y~x) plot(x,y) abline(mlxy) summary(mlxy) ===== Estudio del comportamiento de estimadores ===== * Estudio del comportamiento del coeficiente de la variable independiente en un ajuste lineal n<-30 coefx<-NULL for(i in 1:1000){ x<-runif(n) y<-x+rnorm(n,0,0.1) mlxy<-lm(y~x) coefx[i]<-mlxy$coef["x"] } sort(coefx)->a length(coefx)->n plot(a,1:n,type="l") lines(a,pnorm(a,mean(coefx),sd(coefx))*n,col=2) ===== Análisis de la varianza ===== * Ejemplo de un anova para valores normales aleatorios con una asignación al azar del factor. y<-rnorm(15) x<-factor(rep(1:3,5)) aov(y~x) summary(aov(y~x)) TukeyHSD(aov(y~x)) plot(TukeyHSD(aov(y~x))) ===== Análisis de datos ===== * Ejemplo de análisis de un fichero de datos: Los datos coorespondientes a los censos de población activa de los términos municipales de la Región de Murcia se encuentran en el fichero ''[[http://www.um.es/docencia/emc/datos/evolpobmun.dat|evolpobmun.dat]]'' se analiza mediante un análisis de correspondencias. En primer lugar se utiliza la función ''corresp'' de la librería ''MASS'' y posteriormente se utiliza la función ''acb'' del fichero de fuentes ''[[http://www.um.es/docencia/emc/datos/funciones.R|funciones.R]]''. Para terminar se realiza una clasificación de años y municipios en función de los resultados obtenidos de la ordenación precedente. read.table("http://www.um.es/docencia/emc/datos/evolpobmun.dat",encod="latin1")->x pairs(x) pairs(log(x)) pairs(~log(x[,1])+log(x[,5])+log(x[,10])) apply(x,1,function(x) sum(is.na(x))==0)->selmun library(MASS) plot(corresp(x[selmun,])) source("http://www.um.es/docencia/emc/datos/funciones.R") acb(x[selmun,]) dibujaacb(acb(x[selmun,]),1,2) plot(hclust(dist(acb(x[selmun,])$cf[,1:4]),method="ward"),hang=-1) plot(hclust(dist(acb(x[selmun,])$cc[,1:4]),method="ward"),hang=-1)