Está en la página 1de 15

Ejercicios resueltos de exámenes de años anteriores

Problema 1

1) Generar un vector x1 de 1500 elementos que siga una distribución


normal de media 20 y desviación típica 5 y otro vector x2 de 1500
elementos que siga una distribución normal de media 40 y desviación típica
5. (0.5 ptos.)

2) Calcular el vector x3 que resulta de sumar el vector x1 y el vector x2. (El


vector resultante debe contener 1500 elementos). (0.25 ptos.)

3) Dibujar la función de densidad teórica asociada al vector x3 en color rojo.


(0.5 ptos.)

4) Dibujar, en el mismo gráfico, la función de densidad empírica del vector


x3 en color azul. (0.25 ptos.)

5) Calcular la probabilidad de obtener una suma mayor de 70 en base a la


distribución teórica asociada a x3. ¿Es coherente con los datos contenidos
en el vector x3? Justifica tu respuesta. (0.5 ptos.)

Solución P1:

x1<-rnorm(1500,mean=20,sd=5)
x2<-rnorm(1500,mean=40,sd=5)

x3<-x1+x2

xx<-seq(30,90,0.001)
plot(xx,dnorm(xx,60,sqrt(50)),col="blue",type="l")
lines(density(x3),col="red")

pnorm(70,60,sqrt(50),lower.tail=F) #0.0786496
mean(x3>70) # 0.076666 in this case.
Problema 2

Un investigador desea comprobar la eficacia de la dieta A frente a la dieta B


en niños malnutridos. El objetivo del investigador es comprobar qué dieta de
las dos hace que los niños aumenten más de peso. La dieta A se ha aplicado
en 9 niños y la dieta B en 10 niños. Tras un periodo de prueba, la ganancia
de peso en kg para cada niño correspondiente a cada grupo se muestra a
continuación:

gananciaPesoDietaA <-c(16.4,20.2,20.5,21.2,17.3,13.6,12.8,13.1,11.3)
gananciaPesoDietaB <-c(14,12.5,10.2,9.8,10.5,15,22,11.2,13,12.5)

El investigador busca determinar si la ganancia media de peso con la


dieta A es mayor que la ganancia media de peso con la dieta B.

Se pide:

1) Elegir el test estadístico más adecuado para contrastar dicha hipótesis.


Justifica tu respuesta. (0.25 ptos.)

El test más razonable es un t-test (test de diferencia de medias). Sería


necesario comprobar que los datos de ambas dietas son razonablemente
parecidos a una normal.

1) Indicar si habría que realizar el test estadístico a una o a dos colas.


Justifica tu respuesta (0.25 ptos.)

Dado que el investigador desea comprobar que la dieta A provoca mayor


aumento de peso, es lógico hacerlo a una cola.

2) Definir la hipótesis nula y la hipótesis alternativa. (0.5 ptos.)

La hipótesis nula es:


H0: A <= B, es decir, la dieta B produce mayor incremento de peso que la
dieta A.
H1:A <= B , es decir, la hipótesis alternativa es que la dieta A produce
mayor incremento de peso que la dieta B.

3) Calcular los grados de libertad, el estadístico y el pvalor asociado.(0.5


ptos.)
> t.test(gananciaPesoDietaA, gananciaPesoDietaB,var.equal = T,alternative = "greater")

Two Sample t-test


data: gananciaPesoDietaA and gananciaPesoDietaB
t = 1.9054, df = 17, p-value = 0.03689
alternative hypothesis: true difference in means is greater than 0
95 percent confidence interval:
0.2780936 Inf
sample estimates:
mean of x mean of y
16.26667 13.07000

Grados de libertad: 17 (número de datos menos número de clases)


p.valor: 0.03689
Estadístico: t = 1.9054

4) Calcular el intervalo de confianza del 95% para la varianza de la ganancia


de peso con la dieta A y la dieta B (0.75 ptos.)

Para calcular el intervalo de confianza para la varianza, se puede utilizar el


resultado teórico estudiado en clase:

En este caso concreto, n es el número de pacientes con la dieta a, es decir,


9.
s2 es la varianza estimada para la muestra. Se puede calcular en R haciendo:
> s_2 <– var(gananciaPesoDietaA)
[1] 14.08

Los valores de la Chi cuadrado también se pueden calcular en R:

> chisq0.05 <- qchisq(0.05, 8) # 2.732637


> chisq0.95 <- qchisq(0.95, 8) # 15.50731

Combinando todos estos valores, el intervalo de confianza es:


> 8*var(gananciaPesoDietaA)/qchisq(0.05, 8)
[1] 41.22026
> 8*var(gananciaPesoDietaA)/qchisq(0.95, 8)
[1] 7.26367

Es decir, la varianza de la distribución de la que procede esta muestra tiene


un valor entre 7.26 y 41.22 con una probabilidad del 95%.
Problema 3
Se pide:
1) Generar una matriz A de dimensiones (1000 x 20) de valores distribui-
dos según una normal de media 0 y desviación típica 1 (utilizar la fun-
ción rnorm de R). Generar otra matriz B con números aleatorios dife-
rentes de las mismas dimensiones de números normales de media 1 y
desviación típica 1.

A <– matrix(rnorm(1000*20),1000,20)
B <– 1+ matrix(rnorm(1000*20),1000,20)

2) Aplicar 1000 veces un t-test y un test de Wilcoxon comparando cada


una de las 1000 filas de la matriz A con la matriz B.
a. Calcular los p-values correspondientes para cada uno de los tes-
ts.
b. Dibujar el histograma de estos p-values (utilizando la función
hist).

p.valuet <- p.valuew <- rep(NA, 1000)


for (n in 1:1000) {
Salidat <- t.test(A[n,], B[n,])
Salidaw <- wilcox.test(A[n,], B[n,])
p.valuet[n] <- Salidat$p.value
p.valuew[n] <- Salidaw$p.value
}
hist(p.valuet)
hist(p.valuew)

3) En este análisis, en realidad, se está repitiendo 1000 análisis de hipó-


tesis diferentes, es decir, si los datos de cada fila de A y B tienen dife-
rentes medias y por construcción la tienen. Si se considera un umbral
de 0.05 para el p-value, ¿cuál es el porcentaje de falsos negativos, es
decir, de casos en los que decimos que las medias son iguales y en
realidad, no lo son?

mean(p.valuet > 0.05)


mean(p.valuew > 0.05)
4) Repetir estas cuentas generando dos nuevas matrices A y B con la
misma media (0) y desviación típica (1).
a. ¿Qué porcentaje de los tests tienen p.value menor de 0.05, es
decir, cuál es el porcentaje de falsos positivos?
b. ¿Qué test cree que es preferible?

A <– matrix(rnorm(1000*20),1000,20)
B <– matrix(rnorm(1000*20),1000,20)

for (n in 1:1000) {
Salidat <- t.test(A[n,], B[n,])
Salidaw <- wilcox.test(A[n,], B[n,])
p.valuet[n] <- Salidat$p.value
p.valuew[n] <- Salidaw$p.value
}

mean(p.valuet < 0.05)


mean(p.valuew < 0.05)

En este caso, el t-test tiene menos falsos negativos para el


mismo porcentaje de falsos positivos.
Problema 4

Si se realiza un test estadístico, ¿Cuál es la probabilidad de rechazar la


hipótesis nula en caso de que sea cierta? Si, por ejemplo, se hicieran 1000
test estadísticos con un nivel de confianza del 95 %, ¿Cuántos test se
rechazarían en media? ¿Y si el nivel fuera de 99.5%? Según esto, ¿Qué
distribución siguen los p-valores si se cumple la hipotesis nula (H0)?

Por definición, la probabilidad de rechazar la hipótesis nula


siendo esta cierta es el umbral del nivel de rechazo
(habitualmente 5% de los casos).
Si se hacen, por tanto 1000 tests estadísticos, 50 veces se
rechazará la hipótesis nula siendo cierta. Si el umbral es del
99.5%, ocurrirá 5 veces (en media). Estrictamente hablando sería
una distribución binominal con n = 1000 y p = 0.05 o p=0.005
respectivamente.
Según esto, al cambiar el umbral, la probabilidad de aceptación y
rechazo sería precisamente el p.value, que sigue por tanto una
distribución uniforme U(0,1).

 En meta-analisis, en muchas ocasiones, se obtienen p-valores de tests


independientes bajo la misma hipótesis nula. Para poder sumarizar
dichos p-valores en un solo p-valor, se pueden utilizar diferentes
métodos. Uno de los más conocidos es el método de Fisher que
establece que:

La sumarización de Fisher de k pvalores se comporta como una chi-cuadrado


de 2·k grados de libertad

k
−2 ∑ log e ( p i )~ X 2 · k
i=1

siendo k, el número de p-valores bajo la misma hipotesis nula; p i es el


p-valor "i"; y X2·k se trata de una chi-cuadrado con 2·k grados de
libertad. Aunque se puede demostrar teóricamente esta relación, en el
presente ejercicio se pide que, experimentalmente, se refleje que
efectivamente se cumple esta relación. Para ello:

 Generar una matriz A de 10000x10 elementos que sigan una


distribución uniforme U(0,1). Aplicar el loge a todos los elementos
de la matriz. Sumar por filas la matriz resultante. Y multiplicar por
(-2) todos los elementos del vector resultante.
set.seed(123) # Para que los resultados sean repetibles
A<-matrix(runif(100000),10000,10)
A<-log(A)
v<-rowSums(A)
v<- -2*v

 Dibujar en rojo la función de densidad de dicho vector y en verde la


función de densidad de la distribución teórica.

 Determinar el percentil 95 de la función de densidad de la distribución


teórica. Comprobar si se cumple también en los datos empíricos
utilizados.

umbral<-qchisq(0.95,df=20)
print(umbral)
sum(v<=umbral)/length(v)
#0.9511
# O bien
quantile(v,0.95)
# 95%
# 31.30982
Problema 4 (2 ptos)
Generar 4 vectores aleatorios de 10000 componentes que sigan
distribuciones normales de media 1 y desviaciones típicas 1, 2, 3 y 4
respectivamente.
Se pide:
1) Generar el vector de 10000 componentes media de los anteriores.
2) Dibujar su distribución empírica (usando la función density) y teórica en
los mismos ejes en colores rojo y azul respectivamente.

Solución:

> Z1 <- rnorm(10000,mean=1,sd=1)


> Z2 <- rnorm(10000,mean=1,sd=2)
> Z3 <- rnorm(10000,mean=1,sd=3)
> Z4 <- rnorm(10000,mean=1,sd=4)
> ZM <- .25 * (Z1+Z2+Z3+Z4)
> plot(density(ZM), col = "red")
> X <- seq(-4,6,0.01)
> points(X, dnorm(X, mean=1, sd=sqrt(30/16)), col = "blue", type="l")

density.default(x = ZM)
0.00 0.05 0.10 0.15 0.20 0.25
Density

-4 -2 0 2 4 6
N = 10000 Bandwidth = 0.1927

Para calcular la distribución teórica se ha procedido de la siguiente for-


ma:
1) La suma de normales es una normal
2) La media debe ser igual a las medias (en este caso 1).
3) La varianza es igual a la suma de las varianzas por el cuadrado
del coeficiente por el que se multiplica a cada normal, en este
caso:
4)

Problema 1 (2.5 ptos + 0.5 extra)


1. Se pide construir, utilizando datos que proceden de una normal, es
decir con la función rnorm, un conjunto de 10000 datos que sigan una
distribución F con 20 grados de libertad en el numerador y 50 grados
de libertad en el denominador. Este vector de datos lo llamamos
datos1. (1 pto)
x <- rnorm(10000);
hist(x,100);
n <- 20; x20 <- matrix(rnorm(n*10000),n,10000);
x20 <- x20*x20
chi20 <- colSums(x20)
# hist(chi20,100)

n <- 50; x50 <- matrix(rnorm(n*10000),n,10000);


x50 <- x50*x50
chi50 <- colSums(x50)
# hist(chi50,100)

datos1 <- (chi20/20) / (chi50/50)

2. Calcular otros 10000 datos diferentes de una distribución F con los


mismos grados de libertad de la anterior generándolos directamente
sin utilizar la función rnorm. Este vector de datos lo llamamos datos2.
(0.5)
datos2 <- rf(n = 10000, df1 = 20,df2 = 50)

3. Dibujar la función de densidad aproximada de ambos sets de datos en


los mismos ejes en color azul y negro respectivamente y la función de
densidad teórica. (0.5)

plot(density(datos1),col="blue")
lines(density(datos2), col =”black”)
X <- seq(0,4,0.001)
fT <- df(X,df1 = 20, df2 = 50)
lines(X,fT, col="red")
4. ¿Cuál es el valor teórico de la mediana de esta distribución? (0.25)
qf(.5, df1=20, df2=50)

5. ¿Cuál sería el F crítico para un nivel de aceptación del 95%? (0.25)

critF<-qf(.95, df1=20, df2=50)


critF
Problema 1

Funciones de densidad (2 ptos.)

5) Generar un vector x1 de 1500 elementos que siga una distribución


normal de media 20 y desviación típica 10 y otro vector x2 de 1500
elementos que siga una distribución normal de media 50 y desviación
típica 5. (0.5 ptos.)

# Generar un vector x1 de 1500 elementos que siga una


# distribución normal de media 20 y desviación típica 10
x1 <- rnorm(1500, mean = 20, sd=10)

# y otro vector x2 de 1500 elementos que siga una distribución normal


# de media 50 y desviación típica 5.
x2 <- rnorm(1500, mean = 50, sd = 5)

2) Calcular el vector x3 que resulta de sumar el vector x1 y el vector x2


elemento a elemento. El vector resultante x3 debe contener también 1500
elementos. (0.25 ptos.)
x3 <- rowSums(cbind(x1, x2))

3) Dibujar la función de densidad teórica del vector x3 en color negro. (0.5


ptos.)
La media esperada es la suma de las medias, es decir, 70. La varianza es la suma de las varianzas, es decir 125. Por tanto la
desviación típica es la raíz cuadrada de ese valor.

x <- seq(30,110, length.out = 100)


plot(x,dnorm(x,mean = 70, sd = sqrt(100 + 25)), col = "black", type = "l")

4) En el mismo gráfico, dibujar la función de densidad empírica del vector x3


en color verde. (0.25 ptos.)

lines(density(x3), col = "green"); grid()


5) (Nota: esta cuestión es más difícil de lo normal y requieren idea feliz;
eran 0.5 ptos extra). Calcular de forma teórica el valor esperado de sumar
los cuadrados de los 1500 valores de x1 y comparar el resultado con
sum(x1^2), es decir, con la suma de la realización particular que tenemos (0.5
ptos.)

Cada una de las realizaciones son una normal independiente. La esperanza


de la suma (para variables independientes) es la suma de las esperanzas. La
esperanza de una de ellas al cuadrado es:

E(x2) = E((x-+)2)=E((x-)2)+2+2E(x-)

En estos tres términos el primero es la varianza, el segundo la media al


cuadrado y el tercero vale cero. Por tanto,

E(x2) = 2+2=100+400=500

La suma de todos ellos tendrá como esperanza la suma de las esperanzas,


es decir,
500 * 1500 = 750000

En concreto, para los valores de x1 calculados, el valor de esta suma es


> sum(x1^2)
[1] 756625.2
Cuestión 1

Una variable aleatoria Z es la media de otras 3 variables aleatorias (X1, X2,


X3), que siguen distribuciones normales independientes con las siguientes
medias y desviaciones típicas:

 X1N(media = 1; sigma = 1),


 X2N(media = 1.5; sigma = 2),
 X3N(media = 2; sigma = 2).

Se pide determinar cuál es la distribución que sigue Z.

También podría gustarte