contraste.binomial.fnc

Copia, Pega y Adapta

contraste.binomial.fnc(datos, apilados=F)

contraste.binomial.fnc(datos, apilados=F, p=0.25)

contraste.binomial.fnc(datos, variables=1:30, apilados=F)

contraste.binomial.fnc(datos.apilados, vd='error')

Objetivo

Lleva a cabo el contraste de que una determinada variable sigue la distribución binomial con parámetros x (éxitos) sobre n (ensayos) con una probabilidad de éxito por ensayo (p).

Esta función tiene su aplicación mas evidente cuando deseamos determinar en un experimento dado si cada sujeto i de la investigación ha respondido por azar o no a los estímulos presentados.

Contraste binomial

Generaremos datos simulados para 10 sujetos en 40 items.

datos=data.frame(mvrnorm(10,rep(0,40),Sigma=diag(1,40)))

Ahora transformaremos en binario (0,1) cada una de las 40 variables. La nueva variable será 1 si su valor absoluto es menor o igual a 1.2 y 0 en caso contrario.

for(i in 1:40) datos[,i]=as.numeric(abs(datos[,i]) <=1.2)

head(datos) # Se omite la salida

Ahora realizaremos el contraste que pone a prueba la hipótesis nula de que las respuestas de cada uno de los 10 sujetos han sido logradas respondiendo al azar. Como los datos no están apilados (cada sujeto ocupa una fila y sus respuestas por tanto se sitúan en las 40 columnas) llamaremos a la función incluyendo el argumento apilados=F (por defecto es T).

contraste.binomial.fnc(datos, apilados=F)

O de forma equivalente:

contraste.binomial.fnc(datos, variables=1:40, apilados=F)

contraste.binomial.fnc(datos, variables=1:40, apilados=F,

p=0.5)

Por defecto la función asume que la probabilidad de acierto por azar es 0.5. Si esta fuese otra (por ejemplo en ejercicios con cuatro alternativas) el usuario deberá incluir el argumento p con valor 0.25 (p=0.25).

#------------------------------------------------------------------

# TEST BINOMIAL EXACTO

#------------------------------------------------------------------

$Test.exacto.binomial

exitos ensayos p.exito h0 ic.inf ic.sup p.val

suj1 29 40 0.72 0.5 0.56 0.85 0.006427

suj2 36 40 0.90 0.5 0.76 0.97 0.000000

suj3 27 40 0.68 0.5 0.51 0.81 0.038477

suj4 31 40 0.78 0.5 0.62 0.89 0.000680

suj5 29 40 0.72 0.5 0.56 0.85 0.006427

suj6 32 40 0.80 0.5 0.64 0.91 0.000182

suj7 33 40 0.82 0.5 0.67 0.93 0.000042

suj8 34 40 0.85 0.5 0.70 0.94 0.000008

suj9 30 40 0.75 0.5 0.59 0.87 0.002221

suj10 35 40 0.88 0.5 0.73 0.96 0.000001

Seguidamente apilaremos la base de datos anterior y lo haremos simulando que estos datos provienen de un diseño de un solo factor de medidas repetidas (20 items por condición).

  1. Asignaremos como nombre de las 40 variables item con valores sencuenciales entre 1 y 40 .

  2. Declaramos el factor intra mediante el objeto fac.intra.

  3. Apilamos los datos.

datos=crea.nombre.item.fnc(datos)

fac.intra=list(mrA=c('a1','a2'))

datos.ap=apila.los.datos.fnc(datos, fac.intra=fac.intra,

col.empieza.item=1, n.item=40)

contraste.binomial.fnc(datos.ap)

#------------------------------------------------------------------

# TEST BINOMIAL EXACTO

#------------------------------------------------------------------

*** La función asume que los datos de entrada estan apilados. ***

*** si no lo estuvieran deberas introducir el argumento apilados=F ***

$Test.exacto.binomial

exitos ensayos p.exito h0 ic.inf ic.sup p.val

suj1 29 40 0.72 0.5 0.56 0.85 0.006427

suj2 36 40 0.90 0.5 0.76 0.97 0.000000

suj3 27 40 0.68 0.5 0.51 0.81 0.038477

suj4 31 40 0.78 0.5 0.62 0.89 0.000680

suj5 29 40 0.72 0.5 0.56 0.85 0.006427

suj6 32 40 0.80 0.5 0.64 0.91 0.000182

suj7 33 40 0.82 0.5 0.67 0.93 0.000042

suj8 34 40 0.85 0.5 0.70 0.94 0.000008

suj9 30 40 0.75 0.5 0.59 0.87 0.002221

suj10 35 40 0.88 0.5 0.73 0.96 0.000001