Foro de debate

curva normal o campana de gauss

curva normal o campana de gauss

de jhonatan castillo -
Número de respuestas: 2
hola....necesito por favor, si me pudieran ayudar diciendome como es el codigo o que hay que hacer en R para sobreponer una curva NORMAL o campana de gauss (creo que se llama asi) sobre un histograma de las medias de una distribucion exponencial, ps estoy haciendo la comprobacion del teorema del limite central que dice que entre mas grande sea el numero de la muestra, la distribucion de las medias de la poblacion original tiende a ser NORMAL, asi la poblacion original tenga una distribucion diferente a la normal, ya sea exponencial, T Student, etc.
Muchas gracias si me puden ayudar y les agradeceria que fuera lo mas antes posible muchas gracias.
En respuesta a jhonatan castillo

Re: curva normal o campana de gauss

de Andrés Necochea -
Mira yo seguía este procedimiento:

hist(variable, freq = FALSE)

curve(dnorm(x, mean(variable), sd(variable)), col = 2, lty = 2, lwd = 2, add=T)


Espero que te sirva, la primera línea crea el histograma, la segunda añade la curva.
En respuesta a jhonatan castillo

Re: curva normal o campana de gauss

de Macoy Romero -

Amigo aca te envio..una simulación para el teorema central del límite...esta hecho pa una distribución chi Cuadrada..ello lo puedes cambiar: Sólo presiona enter hasta que te salga una curva de color azul en la parte inferior....

teoremaCentral=function(n,iteraciones,poblacion1=70+2*rchisq(10000,7)){

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

#poblacion1=rnorm(10000,70,5)

par(mfrow=c(2,1))

poblacion=poblacion1[poblacion1<110]

muestra=matrix(,iteraciones*n);

dim(muestra)=c(iteraciones,n)

for (i in 1:iteraciones) {muestra[i,]=sample(poblacion,n)}

limites=c(min(poblacion),max(poblacion))

estimado=apply(muestra,1,'mean')

estimado[i]=mean(poblacion) ###Arreglo estetico para el útimo fotograma

.x=seq(min(muestra),max(muestra),length=200)

.y=dnorm(.x,mean(estimado),sd(poblacion))

.yest=dnorm(.x,mean(estimado),sd(estimado))

color=rgb(1,0,0)

#No quiero que me enseñe todas las iteraciones. Solo unas pocas, en

#progresión geométrica después de las 14 primeras...

listaiteraciones=c(1:14,round(10^seq(log10(15),log10(iteraciones),length=20)))

intervalosarriba=seq(min(poblacion),max(poblacion),length=12)

if(n==1) intervalosabajo=intervalosarriba else intervalosabajo=seq(min(estimado),max(estimado),length=12)

for(i in listaiteraciones){

if (i==iteraciones) color=rgb(0,0,1)

hist(poblacion,xlim=limites,main="Distribución de la

población",xlab="",ylab="",sub="",breaks=intervalosarriba,lwd=1,col=rgb(.8,.9,.8),border=rgb(0,.5,0),freq=F);

if(i<5) readline("Pulsa <INTRO>...");

if(i<iteraciones) {

points(muestra[i,],rep(0,n));

}else{

points(.x,.y,type="l",lwd=1,lty=1,col="gray")

media=mean(estimado)

desviacion=sd(poblacion)

.xsd=c(-1,1)*desviacion+media

.ysd=dnorm(.xsd,media,desviacion)

points(.xsd,.ysd,type="l",lwd=1,lty=1,col="gray")

text(media+desviacion,dnorm(media+desviacion,media,desviacion),bquote(paste(sigma,"=",.(signif(desviacion,2)))),pos=4,,cex=1.25)

}

if(i<5) readline("Pulsa <INTRO>...");

abline(v=estimado[i],lty=2,lwd=2,col=color)

points(estimado[i],0,col=color);

if(i>4){

hist(estimado[1:i],xlim=limites,main=paste("Distribución medias,

n=",n),xlab="",ylab="",sub="",col="lightgray",border="gray",freq=F,breaks=intervalosabajo)

rug(estimado[1:i])

abline(v=estimado[i],lty=2,lwd=2,col=color)

points(estimado[i],0,col=color);

} else {

plot(estimado[1:i],rep(0,i),xlim=limites,ylim=c(0,1),main=paste("Distribución

medias, n=",n),xlab="",ylab="",sub="",frame.plot=F);

rug(estimado[1:i])

abline(v=estimado[i],lty=2,lwd=2,col=color)

points(estimado[i],0,col=color);

}

readline("Pulsa <INTRO>...")

}

if (n>1) {

.x=seq(min(muestra),max(muestra),length=200)

.y=dnorm(.x,mean(estimado),sd(estimado))

media=mean(estimado)

desviacion=sd(poblacion)/sqrt(n)

.xsd=c(-1,1)*desviacion+media

.ysd=dnorm(.xsd,mean(estimado),desviacion)

points(.x,.yest,type="l",lwd=3,col="red")

points(.xsd,.ysd,type="l",lwd=1,lty=1,col="darkgray")

text(media+desviacion,dnorm(media+desviacion,media,desviacion),bquote(paste("E.T.=",sigma/sqrt(n),"=",.(signif(desviacion,2)))),pos=4,cex=1.25)

}

}

teoremaCentral(10,1000,)