Está en la página 1de 10

PRÁCTICAS DE FUNDAMENTOS DE METODOLOGIA II.

PRACTICA 1

PRÁCTICA 1.

ANÁLISIS DESCRIPTIVOS DE DATOS

OBJETIVOS GENERALES

1. Saber explorar estadística y gráficamente los datos a analizar mediante las funciones
frecuencias.fnc, descriptivos.fnc, histograma.fnc, diagrama.cajas.fnc y
percentiles.fnc.

2. Repasar los contrates de hipótesis de una sola media conocida o desconocida la varianza
poblacional. Saber establecer la hipótesis nula y alternativa. Establecer el nivel de
confianza y error tipo 1. Poner a prueba la hipótesis nula, utilizando el estadístico de
contraste adecuado. Tomar una decisión sobre la hipótesis nula a partir de la probabilidad
asociada al estadístico. Saber calcular el tamaño del efecto y la potencia de la prueba e
interpretar ambas probabilidades. Saber utilizar las funciones calcula.z.fnc,
calcula.t.una.muestra.fnc

Ejercicio.1
El archivo estudio_labio_leporino.Rdata contiene los datos de 229 niños (49
leporinos y 180 normales) evaluados en dos tareas: Proporción de aciertos de lectura de
fonemas y eficiencia fonemos en pseudopalabras (tiempo de reacción/proporción de aciertos
en la tarea).

1.- Lee el archivo estudio_labio_leporino.Rdata con lee.archivo.fnc( ) y


asígnalo al objeto datos. Comprueba que efectivamente dispones de 229 niños en 5 variables
mediante la función dimension(datos).

2.- Lleva a cabo un análisis exploratorio previo tanto estadístico como gráfico de la base de
datos.
3.- Determina los cuartiles de la variable acierto_fonemas con la llamada a la función
percentiles.fnc( )

4.- Crea una nueva variable, versión discreta percentílica con cuatro niveles de la variable
acierto_fonemas con discretiza.variable.fnc( ) y el argumento ntiles.

5.- Sabiendo que la población de leporinos tiene un promedio de acierto de fonemas se


distribuye N(10,15), ¿pertenecen nuestros leporinos a dicha pobalción? ¿Cuál es la
probabilidad de error tipo 2? (razona la respuesta). Utiliza la función calcula.z.fnc.

6.- Regresa al paso 3 y solicita de nuevo los mismos percentiles pero por cada nivel de la
variable curso. Vuelve a discretizar (paso 4) la misma variable con los mismos criterios
percentílicos en cada nivel de curso. ¿Qué cambios observas?

1
PRÁCTICAS DE FUNDAMENTOS DE METODOLOGIA II. PRACTICA 1

7.- Guarda la base de datos leída y transformada en código binario de R (Rdata) con el
nombre leporino utilizando la función guarda.Rdata.fnc( ).

PRACTICA 1. RESUELTA.

1. Leemos el archivo externo y lo asignamos al objeto dislexia.


datos = lee.archivo.fnc('datos_labio_leporino.Rdata')

Asigna a un objeto de nombre arbitrario el


contenido del archivo leído
El objeto es una matriz que pertenece a la clase data.frame
y tiene 229 filas y 5 columnas (variables)

aciertos_fonemas errores_fonemas curso Tipo_labio Edad


1 0.000000 0.11434098 6Primaria leporino
2 0.000000 0.06794010 3Primaria leporino
3 NA 0.07316955 3Primaria leporino
4 8.333333 0.03940851 1ESO leporino
5 0.000000 0.08233040 2Primaria normal
6 0.000000 0.06853412 2Primaria normal

dimension(datos)

El objeto es una matriz que pertenece a la clase data.frame


y tiene 229 filas y 5 columnas (variables)

nombres.var(datos) # prueba a utilizar nv(datos)


nombre numero tipo
1 aciertos_fonemas 1 numeric
2 errores_fonemas 2 numeric
3 curso 3 factor
4 Tipo_labio 4 factor
5 Edad 5 integer

Comprobamos que la lectura del archivo se ha realizado correctamente mediante la


observación de la cabecera de los datos, de su dimensión y de los tipos de variables leídas.
2. Análisis exploratorio numérico y gráfico de las variables. Comenzamos con una
petición de la tabla de frecuencias para las dos variables cualitativas de la base de datos:
curso y Tipo_labio (columnas 3 y 4).

frecuencias.fnc(datos, variables=3:4, prop=T) # prueba sin prop=T

2
PRÁCTICAS DE FUNDAMENTOS DE METODOLOGIA II. PRACTICA 1

#------------------------------------------------------------------
# TABLA DE FRECUENCIAS
#------------------------------------------------------------------

$curso
$curso$n.total
[1] 229

$curso$tabla

1ESO 2ESO 2Primaria 3Primaria 4Primaria 5Primaria 6Primaria


32 26 52 44 29 26 20

$curso$tabla.prop

1ESO 2ESO 2Primaria 3Primaria 4Primaria 5Primaria 6Primaria


0.13973799 0.11353712 0.22707424 0.19213974 0.12663755 0.11353712 0.08733624

$diagnostico
$diagnostico$n.total
[1] 229

$diagnostico$tabla

dislexia normal
49 180

$diagnostico$tabla.prop

Tipo_labio normal
0.2139738 0.7860262

Ahora lo volveremos a solicitar pero esta vez queremos la tabla de frecuencias absolutas y
relativas del cruce (interacción) de ambas variables (tabla de contingencia). Lo haremos
uniendo ambas variables entre apóstrofes y separadas por el carácter dos puntos (:)
frecuencias.fnc( dislexia, variables='curso:diagnostico', prop=T)

#------------------------------------------------------------------
# TABLA DE FRECUENCIAS
#------------------------------------------------------------------

$variables
[1] "curso:diagnostico"
Para el cruce de variables
$tabla cualitativas, utilizamos el
Tipo_labio leporino normal
carácter :
curso
1ESO 11 21
2ESO 4 22
2Primaria 6 46
3Primaria 9 35
4Primaria 4 25
5Primaria 7 19
6Primaria 8 12

3
PRÁCTICAS DE FUNDAMENTOS DE METODOLOGIA II. PRACTICA 1

$prop.fila
Tipo_labio leporino normal
curso
1ESO 0.3437500 0.6562500
2ESO 0.1538462 0.8461538
2Primaria 0.1153846 0.8846154
3Primaria 0.2045455 0.7954545
4Primaria 0.1379310 0.8620690
5Primaria 0.2692308 0.7307692
6Primaria 0.4000000 0.6000000

$prop.col
Tipo_labio leporino normal
curso
1ESO 0.22448980 0.11666667
2ESO 0.08163265 0.12222222
2Primaria 0.12244898 0.25555556
3Primaria 0.18367347 0.19444444
4Primaria 0.08163265 0.13888889
5Primaria 0.14285714 0.10555556
6Primaria 0.16326531 0.06666667

Esto nos permite ver el número de niños normales y leporinos por cada uno de los cursos
(frecuencias absolutas y relativas).
Ahora solicitaremos los descriptivos de la variable dependiente aciertos_fonemas Tanto
en la versión larga (múltiples estadísticos de resumen) como corta (tabla de medias, dt y n
para el cruce de curso y diagnóstico). Prueba a ejecutar la siguiente función omitiendo el
argumento como.lista=T.
descriptivos.fnc(datos, variables=1, que.factor='Tipo_labio',
como.lista=T) # prueba eliminando como.lista=T

#------------------------------------------------------------------
# ESTADISTICOS DESCRIPTIVOS
#------------------------------------------------------------------

*** Por niveles de la variable: Tipo_labio

$leporino
n media dt mediana trimedia mad min max rango asimetria
apuntamiento et
aciertos.palabra 39 8.12 15.59 0 4.55 0 0 58.33 58.33 2.25
4.08 2.5

$normal
n media dt mediana trimedia mad min max rango
asimetria apuntamiento et
aciertos.palabra 158 40.08 34.78 41.67 38.61 49.42 0 100 100
0.17 -1.57 2.77

La salida es tan ancha que resulta difícil valorarla. Podemos solicitar los mismos descriptivos
pero presentando los estadísticos en fila incluyendo el argumento traspuesta=T.

4
PRÁCTICAS DE FUNDAMENTOS DE METODOLOGIA II. PRACTICA 1

descriptivos.fnc(dislexia, variables=1, que.factor='diagnostico',


como.lista=T, traspuesta=T)

*** Por niveles de la variable: diagnostico

$leporino
acierto_fonemas
n 39.000000
media 8.119658
dt 15.588736
mediana 0.000000
trimedia 4.545455
mad 0.000000
min 0.000000
max 58.333333
rango 58.333333
asimetria 2.245367
apuntamiento 4.084402
et 2.496196

$normal
acierto_fonemas
n 158.0000000
media 40.0843882
dt 34.7770156
mediana 41.6666667
trimedia 38.6067708
mad 49.4200000
min 0.0000000
max 100.0000000
rango 100.0000000
asimetria 0.1707302
apuntamiento -1.5684486
et 2.7667108

Con la misma instrucción aunque omitiendo el argumento variables e incluyendo los


argumentos vd y que.factor nos dará la tabla de medias, dt y n para la proporción de
aciertos de fonemas en el cruce de las variables curso y diagnóstico.
descriptivos.fnc(datos, vd ='acierto_fonemas',
que.factor='curso:Tipo_labio')

#------------------------------------------------------------------
# ESTADISTICOS DESCRIPTIVOS
#------------------------------------------------------------------
*** VD: acierto_fonemas

$curso
1ESO 2ESO 2Primaria 3Primaria 4Primaria 5Primaria 6Primaria
media 26.488 58.730 15.720 29.630 38.141 44.928 46.930
dt 30.936 35.107 23.379 32.638 32.419 37.161 38.711
n 32.000 26.000 52.000 44.000 29.000 26.000 20.000

$Tipo_labio
leporino normal
media 8.120 40.084
dt 15.589 34.777
n 49.000 180.000

5
PRÁCTICAS DE FUNDAMENTOS DE METODOLOGIA II. PRACTICA 1

$`curso-Tipo_labio`
$`curso-Tipo_labio`$media
leporino normal
1ESO 9.091 37.745
2ESO 16.667 63.158
2Primaria 2.778 16.667
3Primaria 3.333 33.871
4Primaria 14.583 42.424
5Primaria 7.143 61.458
6Primaria 7.143 70.139

$`curso-Tipo_labio`$dt
leporino normal
1ESO 17.262 32.956
2ESO 23.570 33.485
2Primaria 4.811 23.936
3Primaria 4.564 33.259
4Primaria 29.167 31.697
5Primaria 7.498 32.329
6Primaria 18.898 25.736

$`curso-Tipo_labio`$n
leporino normal
1ESO 11 21
2ESO 4 22
2Primaria 6 46
3Primaria 9 35
4Primaria 4 25
5Primaria 7 19
6Primaria 8 12

Pediremos seguidamente el histograma de la variable aciertos_fonemas (variable 1) en


cada nivel del factor Tipo_labio. Puedes utilizar en el argumento vd el número de la
columna de la variable o su nombre.
histograma.fnc(datos, vd=1, que.factor='Tipo_labio')

histograma.fnc(datos, vd='acierto_fonemas',
que.factor='Tipo_labio')

Copiamos el gráfico (sólo en windows) haciendo clic en la gráfica en la pestaña Archivo y


posteriormente en Copiar para el área de transferencia como Bitmap. A partir de este
momento en LibreOffice podemos pegar la gráfica y disminuirla para que ocupe la cantidad
de espacio que deseemos en la página.
Solicitamos además el diagrama de cajas de la misma variable dependiente en cada nivel del
factor diagnóstico. Incluiremos el argumento identifica con valor verdadero (T) para
poder revelar el número de registro del niño que pueda tener valores extremos en la variable.
diagrama.cajas.fnc(datos, vd = 1, que.factor= 'Tipo_labio',
identifica= T)

6
PRÁCTICAS DE FUNDAMENTOS DE METODOLOGIA II. PRACTICA 1

MUY IMPORTANTE. Cuando utilizas el argumento identifica=T, obligatoriamente


debes marcar con el cursor (ahora es una cruz cuando estas dentro del gráfico) sobre cada
círculo para revelar el número del registro sospechoso de ser caso extremo. Puedes terminar
en cualquier momento pulsando la tecla escape (Esc) o ratón derecho dentro del gráfico y
Parar.

Hemos utilizado tanto las funciones histograma.fnc y diagrama.cajas.fnc con el


argumento que.factor='diagnostico'. Esto nos permite ver los gráficos parcializados
por nivel de la variable diagnóstico ( normales y leporino). En el histograma de la
izquierda podemos ver que los niños disléxicos se acumulan en la zona baja de la variable
(pocos aciertos) mientras que los niños normales presentan una distribución mucho más
distribuida a lo largo de los valores de acierto. En el diagrama de cajas se observa que los
niños 21, 221 y 90, son niños que aunque disléxicos presentan un nivel de aciertos de palabra
que se encuentra próximo o por encima de la mediana de aciertos (horizontal de color negro
en el grupo normal) de los niños normales.

3. Cálculo de Percentiles.
percentiles.fnc(datos, variable=1)
percentiles.fnc(datos, variable='acierto_fonemas')

*** Percentiles de la variable: aciertos.palabra ***

P.0% P.25% P.50% P.75% P.100%


0.0000 0.0000 16.6667 66.6667 100.0000

4. Discretizamos la variable acierto_fonemas (variable de la columna 1). Esta función


generará una nueva variable de nombre aciertos_fonemas.r. Esto nos obliga a

7
PRÁCTICAS DE FUNDAMENTOS DE METODOLOGIA II. PRACTICA 1

asignar el resultado de dicha discretización. Si no lo hiciéramos nuestro almacén datos


no contendría a la nueva variable discretizada.
datos = discretiza.variable.fnc(datos, variable=1, ntiles=4)

Si no asignas la salida de la función a


un objeto, no tendrás disponible la
nueva variable discretizada.

#------------------------------------------------------------------
# DISCRETIZADO DE VARIABLE CONTINUA
#------------------------------------------------------------------

$resumen
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
0.00 0.00 16.67 33.76 66.67 100.00 32

$metodo
[1] "Cortes Percentilicos"

$tabla.n
Q1 Q2 Q3 Q4
Freq. 64 36 54 43

$tabla.medias
Q1 Q2 Q3 Q4
Media 0 10.18519 48.76543 84.88372

--------------------------------------------------------------------------
*** Se ha creado la variable acierto_fonemas.r discretizado de la variable
*** acierto_fonemas
---------------------------------------------------------------------------

Se ha creado una nueva variable en la base de datos dislexia de nombre


aciertos_fonemas.r que resulta de la discretización en cuatro grupos percentílicos (desde
Q1 hasta Q4). Hay 64 niños que tienen un valor menor o igual al percentil 25 (Q1) con una
media de 0 aciertos, 43 niños cuyo valor en aciertos de palabra es superior al percentil 75
(Q4) y una media de aciertos del 85%.

Si utilizas la función head(datos)verás que tienes una nueva variable de nombre


acierto_fonemas.r que resulta ser la versión discretizada de los aciertos fonemas en
cuatro niveles percentílicos (cuartiles).

5. Contraste de hipótesis de una sola media conocida la desviación típica poblacional.


Como deseamos un contraste de hipótesis sobre una muestra y conocemos los datos de la
población (recuerda que esto no es habitual) debemos utilizar como estadístico de
contraste la distribución Z, para ello utilizaremos la función al vuelo que hemos creado
calcula.z.fnc=function(x,mu,sigma,n) debemos completar los argumentos con los datos
del problema para llevar a cabo el contraste. Los datos vienen de la media muestral los

8
PRÁCTICAS DE FUNDAMENTOS DE METODOLOGIA II. PRACTICA 1

encontramos en el apartado 3, donde le pedimos los descriptivos por factor Tipo_labio. En


este caso la media muestral para acierto_fonemas en leporinos es 8.11. La media
poblacional y sigma vienen dados en el enunciado N(10,15) y el tamaño muestral es 39,
que es el número de niños con labio leporino de nuestra muestra. Ya podemos por tanto
completar los argumentos de la función calcula.z.fnc. Pero ojo!! recuerda que es una
función al vuelo (no está en el toolbox, sino que la hemos creado nosotros) por tanto lo
primero debemos hacer es ejecutar la función para poder luego llamarla con los
argumentos que hemos descrito arriba.

calcula.z.fnc=function(x,mu,sigma,n) {
z=(x-mu)/(sigma/sqrt(n))
return(z)
}

z=calcula.z.fnc=function(8.11,10,15,39)

Si no asignas la salida de la función a


un objeto, no tendrás disponible dicho
valor z en particular.

> z=calcula.z.fnc(8.11,10,15,39);z

[1] -0.7868697

El valor Z que nos devuelve nuestra función al vuelo, es de -0,78. Podemos ya tomar una
decisión sobre el rechazo o no de la hipótesis nula que dice que nuestra muestra con media
8.11 pertenece a una población de niños leporinos con media 10 y dt 15 en la variable
acierto_fonemas. Dado que el intervalo de confianza es 95% (si no se dice en un problema se
asume este), tenemos una probabilidad de error tipo 1 de un 5% (0,05).
Tenemos dos maneras de resolver si rechazamos o no rechazamos la hipótesis nula.
Razonamiento 1. Observando los valores críticos de Z a partir de la confianza establecida por
el investigador.
Dado que el valor Z crítico al 95% de confianza es 1,64 y nuestro valor Z es menor que este
valor crítico, podemos concluir que NO RECHAZO la hipótesis nula.por tanto podemos
conocer la probabilidad de ocurrencia de este valor en una distribución Z. Para ello sólo
tenemos que utilizar la completar los argumentos
Razonamiento 2. Observando la probabilidad de ocurrencia bajo la hipótesis nula de este
valor Z de -0.786.
Dado que hemos establecido la probabilidad alfa (error tipo 1) de rechazo en 0.05, sólo
debemos conocer la probabilidad de ocurrencia de una Z con valor -0.786 y para ello

9
PRÁCTICAS DE FUNDAMENTOS DE METODOLOGIA II. PRACTICA 1

utilizamos la función pnorm. Pero en este caso 1 dado que pnorm nos da probabilidades
acumuladas necesitamos conocer la probabilidad de verificar un valor de 0,786 y para ello
utilizamos 1-pnorm.

> 1-pnorm(z)
0.7843209

Dado que la probabilidad de ocurrencia de un valor de Z de -0.786 es 0.78 que es mayor de


0.05 podemos concluir el NO RECHAZO la hipótesis nula. Por tanto asumimos que la media
de niños con labio leporino de nuestra muestra es muy probable (0.78) en una población de
niños con labio N(10,15).

6. Guardamos en código binario (propietario de R tipo Rdata) la base de datos (data.frame)


leporino que hemos leído y transformado utilizando la función guarda.Rdata.fnc
incluyendo como argumento el nombre de la base de datos que queremos guardar
(datos) y el nombre que queremos darle a dicho archivo entre apóstrofes o comillas
('leporino' también). La función añadirá como extensión del archivo el tipo Rdata.
Como ya sabes, la ventaja de esta opción es que podremos leer en futuras sesiones dicha
base de datos la cual ya incluye todas las modificaciones que hemos realizado en las
variables en esta sesión así como las nuevas creadas.
guarda.Rdata.fnc(datos, nombre='leporino')

*** Se ha guardado con exito el archivo con el nombre: leporino.Rdata


*** para leerlo en futuras sesiones utiliza la funcion: lee.archivo.fnc
*** con leporino.Rdata como unico argumento (entre comillas o apostrofe)
*** Ej. lee.archivo.fnc('mi_archivo')

Propuesta práctica
REPITE TODOS LOS PASOS ANTERIORES QUE HAS REALIZADO PARA LA
VARIABLE aciertos_fonemas PERO AHORA PARA LA VARIABLE errores_fonema.
En este caso te propongo que lleves a cabo un contraste t de una muestra (utiliza la función al
vuelo de la t) dado que no conocemos la varianza poblacional de la distribución de leporinos
en errores_fonemas.
Recuerda que tu variable dependiente ahora es la errores_fonemas.

10

También podría gustarte