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
evolpobmun.dat
se analiza mediante un análisis de correspondencias. En primer lugar se utiliza la funcióncorresp
de la libreríaMASS
y posteriormente se utiliza la funciónacb
del fichero de fuentesfunciones.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)
- r/r_ejemplosp.txt
- Última modificación: 2008/05/23 09:59
- (editor externo)