Está en la página 1de 7

EJERCICIOS RESUELTOS SOBRE DISTRIBUCIÓN BINOMIAL, CHI CUADRADO,

DISTRIBUCIÓN NORMAL Y FUNCIÓN PROPIA EN R


Por: Mario Orlando Suárez Ibujés
Fecha: 4/12/2023
https://orcid.org/0000-0002-3962-5433
https://scholar.google.com/citations?user=FUoyU1cAAAAJ&hl=e
http://repositorio.utn.edu.ec/handle/123456789/760

Tabla de Contenidos
Ejercicio 1 ............................................................................................................................................................ 1
Ejercicio 2 ............................................................................................................................................................ 5
Ejercicio 3 ............................................................................................................................................................ 5
Ejercicio 4 ............................................................................................................................................................ 6

Ejercicio 1
A través de la prueba chi cuadrada de bondad de ajuste, pruebe si los siguientes datos provienen de
una distribución binomial de parámetros 𝑛 = 7, 𝑝 = 0.67 4 5 5 5 5 5 5 6 3 6 5 4 4 3 4

Hipótesis
𝐻0 : 𝑓(𝜋) = 𝑓(𝜋̂) Los datos provienen de una distribución binomial
𝐻0 : 𝑓(𝜋) ≠ 𝑓(𝜋̂) Los datos no provienen de una distribución binomial
Donde:
𝑓(𝜋)𝑖 : 𝐹𝑟𝑒𝑐𝑢𝑒𝑛𝑐𝑖𝑎𝑠 𝑒𝑠𝑝𝑒𝑟𝑎𝑑𝑎𝑠 (𝑝𝑟𝑜𝑏𝑎𝑏𝑖𝑙𝑖𝑑𝑎𝑑𝑒𝑠 𝑡𝑒ó𝑟𝑖𝑐𝑎𝑠)
𝑓(𝜋̂)𝑖 : 𝐹𝑟𝑒𝑐𝑢𝑒𝑛𝑐𝑖𝑎𝑠 𝑜𝑏𝑠𝑒𝑟𝑣𝑎𝑑𝑎𝑠

x=c(4,5,5,5,5,5,5,6,3,6,5,4,4,3,4)
n=length(x)
n

## [1] 15

Calculando las frecuencias


library(fdth)

##
## Attaching package: 'fdth'
## The following objects are masked from 'package:stats':
##
## sd, var

tf=fdt(x)
tf

## Class limits f rf rf(%) cf cf(%)


## [2.97,3.588) 2 0.13 13.33 2 13.33
## [3.588,4.206) 4 0.27 26.67 6 40.00
## [4.206,4.824) 0 0.00 0.00 6 40.00
## [4.824,5.442) 7 0.47 46.67 13 86.67
## [5.442,6.06) 2 0.13 13.33 15 100.00

fr=table(x)
fobs=c(0,0,0,2,4,7,2,0)
fobs

## [1] 0 0 0 2 4 7 2 0

par(mfrow=c(1,2))
barplot(fobs)
z=c(0,1,2,3,4,5,7)
barplot(dbinom(z,7,0.76))

plot(dbinom(x,size=7,prob = 0.67))
dbinom(x=0:7,size=7,prob = 0.67)

## [1] 0.0004261844 0.0060569848 0.0368925436 0.1248384052 0.2534597924


## [6] 0.3087601107 0.2089588628 0.0606071161

pteor=dbinom(x=0:7,size=7,prob = 0.67)
sum(pteor)

## [1] 1

plot(pteor)

Frecuencias esperadas
fesp=n*pteor
fesp
## [1] 0.006392766 0.090854772 0.553388154 1.872576078 3.801896886 4.631401661
## [7] 3.134382942 0.909106741

Estadístico de prueba
𝑘
2
(𝑓(𝜋)𝑖 − 𝑓(𝜋̂)𝑖 )2
𝜒 =∑
𝑓(𝜋)𝑖
𝑖=1

Con k-1 grados de libertad


ep=sum(((fesp-fobs)^2)/fesp)
ep

## [1] 3.200639

p-valor
k=length(fobs)
k

## [1] 8

pvalue=pchisq(q=ep,df=k-1,lowe=F)
pvalue

## [1] 0.8658419

curve(dchisq(x,df=k-1),0,25)

Comprobación
chisq.test(fobs,p=pteor)

## Warning in chisq.test(fobs, p = pteor): Chi-squared approximation may be


## incorrect

##
## Chi-squared test for given probabilities
##
## data: fobs
## X-squared = 3.2006, df = 7, p-value = 0.8658
ep

## [1] 3.200639

pvalue

## [1] 0.8658419

Decisión y Conclusión
Como p-valor = 0.8658 es mayor que 0.05 No se rechaza 𝐻0 y se concluye que no existe evidencia
para decir que los datos no provienen de una distribución binomial al 95% de confianza.

Ejercicio 2
Elaborar una R función propia que, con base en la prueba chi cuadrado de bondad de ajuste, calcule
el estadístico de prueba y el p valor para determinar si un grupo de datos proviene o no de una
distribución normal. La función debe contener un solo argumento que es el vector de datos.
funcion.chi.bond.ajust=function(x){
tf=fdt(x)
fobs=tf$table$f
fobs=c(0,fobs,0)
med=mean(x)
de=sd(x)
pteor=NULL
int=seq(tf$breaks[1],tf$breaks[2],tf$breaks[3])
m=length(int)
for (i in 1:(m-1)) {
pteor[i]<-pnorm(int[i + 1], med, de) - pnorm(int[i], med, de)
}
pteor=c(pnorm(tf$breaks[1],med,de,lower.tail = T),pteor)
pteor=c(pteor,1-sum(pteor))
n=length(x)
fesp=n*pteor

ep=sum(((fesp-fobs)^2)/fesp)
k=length(fobs)

pvalor=pchisq(q=ep,df=k-1,lowe=F)
c("estadistico.prueba"=ep,"pvalor"=pvalor)
}

Ejercicio 3
Pruebe su función elaborada en 2. con los siguientes dos conjuntos de datos (por separado):
𝑥1 = 6.76, 4.7, 3.8, 1.97, 1.87, 1.63, 1.62, 1.55, 1.23, 0.63, −1.12, −1.25
𝑥2 = 3.90 3.89 3.41 1.98 4.10 2.24 3.88 1.09 4.01 3.71 2.57 2.96 3.57 4.08 2.69
Hipótesis
𝐻0 : 𝑓(𝜋) = 𝑓(𝜋̂) Los datos provienen de una distribución normal
𝐻0 : 𝑓(𝜋) ≠ 𝑓(𝜋̂) Los datos no provienen de una distribución normal

x1=c(6.76, 4.7, 3.8, 1.97, 1.87, 1.63, 1.62, 1.55, 1.23, 0.63, -1.12, -1.25)
x1

## [1] 6.76 4.70 3.80 1.97 1.87 1.63 1.62 1.55 1.23 0.63 -1.12 -1.25

funcion.chi.bond.ajust(x1)

## estadistico.prueba pvalor
## 9.0444022 0.1710963

Decisión y Conclusión
Como p-valor = 0.171 es mayor que 0.05 No se rechaza 𝐻0 y se concluye que no existe evidencia
para decir que los datos no provienen de una distribución normal al 95% de confianza.

x2=c(3.90, 3.89, 3.41, 1.98, 4.10, 2.24, 3.88, 1.09, 4.01, 3.71, 2.57, 2.96, 3.5
7, 4.08, 2.69)
x2

## [1] 3.90 3.89 3.41 1.98 4.10 2.24 3.88 1.09 4.01 3.71 2.57 2.96 3.57 4.08 2.
69

funcion.chi.bond.ajust(x2)

## estadistico.prueba pvalor
## 11.76915921 0.06732121

Decisión y Conclusión
Como p-valor = 0.067 es mayor que 0.05 No se rechaza 𝐻0 y se concluye que no existe evidencia
para decir que los datos no provienen de una distribución normal al 95% de confianza.

Ejercicio 4
Realice una R función propia que calcule los rangos de los datos contenidos en una variable. Pruebe
su función con los siguientes datos:
𝑥1 = 6.76, 4.7, 3.8, 1.97, 1.87, 1.63, 1.62, 1.55, 1.23, 0.63, −1.12, −1.25

Función creada
funcion.Rangos=function(x){
xabs=abs(x)
xabs_sort=sort(xabs)
ranks = match(xabs,xabs_sort)
c("rangos"=ranks)
}

Datos
x1 = c(6.76, 4.7, 3.8, 1.97, 1.87, 1.63, 1.62, 1.55, 1.23, 0.63, -1.12, -1.25)
x1

## [1] 6.76 4.70 3.80 1.97 1.87 1.63 1.62 1.55 1.23 0.63 -1.12 -1.25

Prueba de la función creada


funcion.Rangos(x1)

## rangos1 rangos2 rangos3 rangos4 rangos5 rangos6 rangos7 rangos8


## 12 11 10 9 8 7 6 5
## rangos9 rangos10 rangos11 rangos12
## 3 1 2 4

También podría gustarte