Está en la página 1de 12

Práctica Métodos Matemáticos

Adela Ayala Cutillas

2022-10-28

Demostración 1
Dado una muestra de distribuciones independientes e idénticas normales de media µ y desviación típica σ,
podemos demostrar que la media muestral seguirá una distribución normal de media µ, pero desviación
típica √σn .

N<- 1e5

n <- 10

mu<- 2

sigma <-3

X_barra<- S2 <- rep(0,N)

for (i in 1:N){
muestra <- rnorm(n,mu,sigma) # equivale al trabajo de laboratorio
X_barra[i]<- mean(muestra) # media muestral
S2[i] <- var(muestra) # varianza muestral
}

S <- sqrt(S2) # desviación de la muestra

hist(X_barra, 100, probability = TRUE) # realizamos el histograma

x <- seq(mu-(4*(sigma/sqrt(n))), mu +(4*(sigma/sqrt(n))), len = 1001)

lines( x, dnorm(x,mu,sigma/sqrt(n)), col=2) # superponemos la normal para comprobar el teorema

1
Histogram of X_barra
0.4
0.3
Density

0.2
0.1
0.0

−2 0 2 4 6

X_barra

Demostración 2
n−1 2
Vamos a comprobar el teorema 3. Según este teorema, la distribución muestral de σ2 S es una χ2 con
n − 1 grados de libertad.

Y <- (n-1)*S2/(sigmaˆ2) # la distrbución muestral

hist(Y, 100, probability=TRUE)

y <- seq(0,30,len = 1001)

lines(y, dchisq(y,n-1), col= 2) # superponemos la distribución para comprobar la teoría

2
Histogram of Y
0.00 0.02 0.04 0.06 0.08 0.10
Density

0 10 20 30 40

Demostración 3
X̄−µ
A continuación, vamos a demostrar el teorema 4. Dada la distribución T = S/ √ , esta tiende a la distribución
n
t de Student con n − 1 grados de libertad y también tiende a una normal cuando n tiende a infinito.

T <-(X_barra-mu)/(S/sqrt(n))

hist(T,100, probability = TRUE)

t <- seq(-5,5, len = 1001)

lines(t, dt(t, n-1), col =2)

lines(t, dnorm(t,0,sqrt((n-1)/(n-3))) ,col =4)

3
Histogram of T
0.4
0.3
Density

0.2
0.1
0.0

−10 −5 0 5 10

No se parece a una normal, así que probamos haciendo n más grande.

n <- 50 # definimos una n grande

# debemos definir de nuevo las variables para la nueva n


X_barra<- S2 <- rep(0,N)

for (i in 1:N){
muestra <- rnorm(n,mu,sigma)
X_barra[i]<- mean(muestra)
S2[i] <- var(muestra)
}

S <- sqrt(S2)

# ahora sí, definimos la distribución T


T <-(X_barra-mu)/(S/sqrt(n))

hist(T,100, probability = TRUE)

t <- seq(-5,5, len = 1001)

# Comprobamos que sigue una t de student


lines(t, dt(t, n-1), col =2)

#Comprobamos que sigue una normal

4
lines(t, dnorm(t,0,sqrt((n-1)/(n-3))) ,col =4)

Histogram of T
0.4
0.3
Density

0.2
0.1
0.0

−4 −2 0 2 4

Comando integrate
Calculamos el valor esperado de la distribución t de Student.

nu <- 10

mif <- function(x){x * dt(x,nu)}

# Según la teoria, el valor esperado es 0, ya que esta distribución se centra en 0


integrate(mif, -Inf, Inf)

## 0 with absolute error < 0

Hacemos lo mismo con el valor esperado de x2 , es decir, la varianza.

mif2 <- function(x){xˆ2*dt(x,nu)}


integrate(mif2, -Inf, Inf)

## 1.25 with absolute error < 8.6e-07

5
#Según la teoria, la varianza debe ser igual a:
nu/(nu-2) #Comprobamos si integrate lo ha hecho correctamente

## [1] 1.25

Se puede apreciar que el comando integrate es más potente que los sumatorios y por ello más útil a la hora
de comprobar numéricamente.

Histogramas
Los histogramas nos permiten observar la distribución de los datos en cajas que representan su frecuencia.

N <- 1000
X <- rnorm(N)
# Un experimento aleatorio
plot(X, cex = 0.1)
3
2
1
X

0
−1
−2
−3

0 200 400 600 800 1000

Index

#Dinujamos su histograma
hX <- hist(X)

6
Histogram of X
200
150
Frequency

100
50
0

−3 −2 −1 0 1 2 3

# Hay una serie de comandos importantes para conocer los histogramas


hX$breaks # Donde empieza y termina las cajas

## [1] -3.0 -2.5 -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0

hX$counts # Cantidad de cada caja

## [1] 6 22 50 87 143 192 201 141 91 36 20 11

hX$density # Frecuencia relativa

## [1] 0.012 0.044 0.100 0.174 0.286 0.384 0.402 0.282 0.182 0.072 0.040 0.022

hX$mids ## Coordenadas punto medio de la caja

## [1] -2.75 -2.25 -1.75 -1.25 -0.75 -0.25 0.25 0.75 1.25 1.75 2.25 2.75

# Podemos dibujar los histogramas de esta otra manera


plot(hX$mids, hX$counts, type = "h")

7
200
150
hX$counts

100
50
0

−2 −1 0 1 2

hX$mids

# Claramente, esto dará como resultado el número de medidas totales


sum (hX$counts)

## [1] 1000

# Multiplicando por delta de x (anchura de las cajas), obtenemos 1


sum(hX$density * diff(hX$breaks))

## [1] 1

hX <- hist(X)

# Resaltamos los puntos que alcanza como máximo cada caja


points(hX$mids, hX$counts, col=2)

8
Histogram of X
200
150
Frequency

100
50
0

−3 −2 −1 0 1 2 3

Integrales mediante el método Monte Carlo


En este apartado, vamos a llevar a cabo integrales mediante el método Monte Carlo.

# Realizamos un experimento aleatorio


N <- 1000
X <- rnorm(N)
i = 1:N ##IID
plot(X, cex = 0.1)

# Definimos en la gráfica qué puntos vamos a sumar


abline(h=c(-1,1), col = 2)

9
3
2
1
X

0
−1
−2
−3

0 200 400 600 800 1000

Index

# Al seguir una distribución normal, la media es 0 y la desviación típica 1


mean(X)

## [1] -0.01149814

sd(X)

## [1] 1.023351

#Comprobado

# integra desde -1 hasta 1


length(X[(-1<X)&(X<1)])/N

## [1] 0.665

# integramos hasta -1
length(X[X< -1])/N

## [1] 0.17

10
# Si ordenamos de menor a mayor los datos obtenidos

plot(sort(X))
3
2
1
sort(X)

0
−1
−2
−3

0 200 400 600 800 1000

Index

Y <- (1:N)/N

# Le hemos dado la vuelta a la gráfica, ahora es la función acumulada


plot(sort(X), Y, type = "l")

# Comprobamos que coincide con la probabilidad acumulada de una normal


x <- seq(-4,4, len=1000)
lines(x, pnorm(x), col=2)

11
1.0
0.8
0.6
Y

0.4
0.2
0.0

−3 −2 −1 0 1 2 3

sort(X)

Problema número pi
Supongamos que vamos a medir el valor del número pi, por lo que pi es nuestra variable. R es el radio de una
diana (tiene 1 de radio) y X e Y sus posiciones en esa diana. El experimento consiste en lanzar un número
grande de dardos a la diana. Mediante el método Monte Carlo, podemos calcular el valor del número pi.

N <- 1e6

#Coordenada del eje X de los dardos


X <- runif(N,-1,1)
#Coordenada del eje Y de los dardos
Y <- runif(N, -1,1)

#Distacia de los dardos al centro de la diana


R <- sqrt(Xˆ2+Yˆ2)

# Así conoceremos el valor del número pi


4*length(R[R<1])/N

## [1] 3.140616

12

También podría gustarte