Cargamos la base de datos Clasificacion Credito:
library(readr)
ClasificacionCredito <- read_csv("ClasificacionCredito.csv") #Cargamos la base de datos
ClasificacionCredito=as.data.frame(unclass(ClasificacionCredito),stringsAsFactors = TRUE)
nrow(ClasificacionCredito)
## [1] 164
Teniendo en cuenta la base de datos “Clasificacion Credito”,sacamos una muestra por conveniencia de nuestra poblacion
Se obtiene una base de datos con N=164
set.seed(123)
n1=sample(ClasificacionCredito$Age, size = 100, replace = FALSE ) #Muestra de la Edad
n1
## [1] 53 32 38 29 32 44 34 52 49 25 33 30 30 50 46 34 26 47 47 33 29 41 53 37 35
## [26] 42 27 51 27 48 53 29 45 31 37 50 30 27 38 40 44 28 29 36 38 52 51 52 38 30
## [51] 30 42 25 50 32 33 29 37 41 30 41 39 26 40 30 31 49 48 43 44 45 45 34 50 46
## [76] 25 51 51 38 35 49 41 50 34 34 31 31 43 25 31 28 47 47 25 51 29 25 53 35 46
set.seed(123)
n2=sample(ClasificacionCredito$Income, size = 100, replace = FALSE) #Muetra de los Ingresos
n2
## [1] 122500 55000 67500 27500 57500 87500 47500 130000 77500 57500
## [11] 52500 112500 105000 162500 97500 45000 40000 90000 95000 52500
## [21] 27500 120000 127500 75000 80000 110000 37500 140000 37500 70000
## [31] 122500 68000 105000 67500 72500 155000 117500 35000 67500 142500
## [41] 87500 32500 25000 85000 65000 135000 140000 130000 67500 112500
## [51] 117500 95000 62500 150000 57500 82000 27500 77500 110000 105000
## [61] 110000 62500 55000 125000 117500 95000 77500 82500 80000 87500
## [71] 105000 115000 47500 155000 95000 55000 135000 150000 67500 90000
## [81] 77500 115000 160000 105000 47500 65000 60000 92500 55000 65000
## [91] 75000 90000 85000 60000 145000 27500 57500 115000 80000 102500
set.seed(123)
n3=sample(ClasificacionCredito$Number.of.Children, size = 100, replace = FALSE)#Muestra de numero de hijos
n3
## [1] 0 0 2 0 0 0 0 0 1 0 0 2 2 0 1 0 0 1 1 0 0 0 0 2 1 0 0 0 0 1 0 2 3 0 2 0 2
## [38] 0 2 0 0 0 0 2 2 0 0 0 2 2 2 0 0 0 0 1 0 2 0 2 0 2 1 0 2 0 1 1 0 0 3 3 0 0
## [75] 1 0 0 0 2 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1
Se extrae una muestra aleatoria por medio de un muestreo por conveniencia de n=100
Calculamos el promedio muestral de nuestros estimadores.
Promedio_Edad=mean(n1) #Promedio muestral de la Edad
Promedio_Edad
## [1] 38.47
Promedio_Ingresos=mean(n2) #Promedio muestral Ingresos
Promedio_Ingresos
## [1] 87125
Promedio_Hijos=mean(n3) #Promedio muestral numero de hijos
Promedio_Hijos
## [1] 0.63
Se obtiene que el promedio de nuestro estimador “Edad” ~ 38, el de “Ingresos” ~ 87125 y el de “Numero de hijos” ~ 1
Se calcula la varianza muestral de mis estimadores.
Varianza_Edad=var(n1)
Varianza_Edad
## [1] 79.1203
Varianza_Ingresos=var(n2)
Varianza_Ingresos
## [1] 1217198864
Varianza_Hijos=var(n3)
Varianza_Hijos
## [1] 0.7809091
Se puede observar que nuestros estimadores sus valores varian: Para Edad=79.12, Ingresos=1217198864, Numero de Hijos=0.78
Desviacion_Edad=sd(n1)
Desviacion_Edad
## [1] 8.894959
Desviacion_Ingresos=sd(n2)
Desviacion_Ingresos
## [1] 34888.38
Desviacion_Hijos=sd(n3)
Desviacion_Hijos
## [1] 0.8836906
La desviacion estandar de nuestros estimadores son:
Edad=9.8949
Ingresos=34900
Numero de hijos= 0.8836
sesgo_edad=Promedio_Edad - mean(ClasificacionCredito$Age) #Valor Sesgado de la Edad
sesgo_edad
## [1] 0.4943902
sesgo_ingresos=Promedio_Ingresos - mean(ClasificacionCredito$Income) #Valor Sesgado de los ingresos
sesgo_ingresos
## [1] 3359.756
sesgo_hijos=Promedio_Hijos - mean(ClasificacionCredito$Number.of.Children) #Valor sesgado de numero de hijos
sesgo_hijos
## [1] -0.02243902
Se puede analizar que los estimadores como Edad tiene un sesgo de 0.49, lo que significa que es un buen estadigrafo para estimar sobre el parametro Edad. Asi mismo el estimador Ingreso tiene un sesgo de 3359, al conocer que este estimador es sobre dinero, presenta un sesgo aceptable para inferir sobre el parametro. El estadigrado que me representa los Numero de hijos tiene un sesgo de 0.02, lo cual demuestra que dentro de nuestros estimadores es el mas insesgado para poder inferir sobre nuestra poblacion.
Ahora se calcula la eficienta teniendo en cuenta que se extrae otra muestra por conveniencia de 75.
var.edad= Varianza_Edad / 75 #Eficiencia de mi estimador edad
var.edad
## [1] 1.054937
var_ingresos= Varianza_Ingresos / 75 #Eficiencia de mi estimador ingresos
var_ingresos
## [1] 16229318
var_hijos= Varianza_Hijos/75 #Eficiencia del estimador varianza
var_hijos
## [1] 0.01041212
Dentro del analisis el cual se evalua la varianza a cada estimador para calcular la eficiencia de cada estadigrafo. Para el estimador Edad se observa una eficiencia del 1.05, por otro lado Ingresos muestra una eficiencia de 16229318, , el estimador Numero de hijos es de 0.010
Para realizar nuestra consistencia debemos calcular una segunda muestra por conveniencia de 80 de nuestros estimadores y calcular el promedio
set.seed(123)
muestra2_edad=sample(ClasificacionCredito$Age, size = 80, replace = FALSE ) #Muestra 2 de la Edad
muestra2_edad
## [1] 53 32 38 29 32 44 34 52 49 25 33 30 30 50 46 34 26 47 47 33 29 41 53 37 35
## [26] 42 27 51 27 48 53 29 45 31 37 50 30 27 38 40 44 28 29 36 38 52 51 52 38 30
## [51] 30 42 25 50 32 33 29 37 41 30 41 39 26 40 30 31 49 48 43 44 45 45 34 50 46
## [76] 25 51 51 38 35
set.seed(123)
muestra2_ingresos=sample(ClasificacionCredito$Income, size = 80, replace = FALSE) #Muestra 2 de los Ingresos
muestra2_ingresos
## [1] 122500 55000 67500 27500 57500 87500 47500 130000 77500 57500
## [11] 52500 112500 105000 162500 97500 45000 40000 90000 95000 52500
## [21] 27500 120000 127500 75000 80000 110000 37500 140000 37500 70000
## [31] 122500 68000 105000 67500 72500 155000 117500 35000 67500 142500
## [41] 87500 32500 25000 85000 65000 135000 140000 130000 67500 112500
## [51] 117500 95000 62500 150000 57500 82000 27500 77500 110000 105000
## [61] 110000 62500 55000 125000 117500 95000 77500 82500 80000 87500
## [71] 105000 115000 47500 155000 95000 55000 135000 150000 67500 90000
set.seed(123)
muestra2_hijos=sample(ClasificacionCredito$Number.of.Children)#Muestra 2 de numero de hijos
muestra2_hijos
## [1] 0 0 2 0 0 0 0 0 1 0 0 2 2 0 1 0 0 1 1 0 0 0 0 2 1 0 0 0 0 1 0 2 3 0 2 0 2
## [38] 0 2 0 0 0 0 2 2 0 0 0 2 2 2 0 0 0 0 1 0 2 0 2 0 2 1 0 2 0 1 1 0 0 3 3 0 0
## [75] 1 0 0 0 2 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 2 2 0 3 2 0 3 0 0 0
## [112] 1 2 1 0 2 0 0 1 0 0 2 0 2 0 0 0 0 1 0 0 0 0 1 0 0 0 1 1 1 0 2 0 0 0 0 0 1
## [149] 0 1 2 0 2 2 0 1 1 0 0 1 2 0 0 1
Se calcula el promedio de las muestras
Promedio.muestra2edad=mean(muestra2_edad) #Promedio muestra 2 edad
Promedio.muestra2edad
## [1] 38.65
Promedio.muestra2ingresos=mean(muestra2_ingresos) #Promedio muestra 2 ingresos
Promedio.muestra2ingresos
## [1] 87906.25
Promedio.muestra2hijos=mean(muestra2_hijos) #Promedio muestra 2 hijos
Promedio.muestra2hijos
## [1] 0.652439
Como se observa, el promedio de las segunda muestra de los estimadores es: Edad=38.65 , Ingresos=87906, Numero de hijos=0.65
Consistencia.edad=Promedio_Edad/ Promedio.muestra2edad #Consistencia de la Edad
Consistencia.edad
## [1] 0.9953428
Consistencia.ingresos=Promedio_Ingresos / Promedio.muestra2ingresos #Consistencia del estimador ingresos
Consistencia.ingresos
## [1] 0.9911127
Consistencia.hijos=Promedio_Hijos / Promedio.muestra2hijos #Consistencia del estimador hijos
Consistencia.hijos
## [1] 0.9656075
La consistencia de los estimadores Edad, Ingresos y Numero de hijos estan al rededor 0.99 lo que indica que el valor de los estimadores estan muy cerca al valor de los parametros.
Se realizara por intervalos de confianza nuestro estimador Numero de hijos debido a que es un estimador insesgado, eficiente y consistente. Para obtener un intervalo de confianza aceptable, brindamos un nivel de confianza del 0.95.
nivel.confianza=0.95 #Nivel de confianza
Promedio_Hijos #Media muestral de la edad
## [1] 0.63
Desviacion_Hijos #Desviacion estandar muestral de Edad
## [1] 0.8836906
n1=100 #Tamaño muestral
En este punto se establece que para una muestra de 100, el promedio del numero de hijos muestral es aproximadamente 1 con una desviacion estandar muestral de 0.8836
Error.estandar= Desviacion_Hijos/ sqrt(n1)
Error.estandar
## [1] 0.08836906
Se demuestra que el error estandar del estimador es de 0.088
Valor.Critico= qnorm((1+nivel.confianza)/2)
Valor.Critico
## [1] 1.959964
El valor critico para nuestro nivel de confianza es de 1.95 para el estimador Numero de Hijos.
Margen.error.hijos= Valor.Critico*Error.estandar
Margen.error.hijos
## [1] 0.1732002
El margen de error del estimador Numero de hijos es del 17.3%. Se realiza el intervalo de confianza para la media del estimador.
intervalo.confianza.media= c(Promedio_Hijos- Margen.error.hijos, Promedio_Hijos + Margen.error.hijos)
intervalo.confianza.media
## [1] 0.4567998 0.8032002
Como se puede observar, el intervalo de confianza de la media para el estimador de Numero de hijos es del 45% al 80%
Para el intervalo de confianza para la proporcion se debe extraer informacion de las variables de interes. Para emplear esta estimacion vamos a extraer informacion de cuantas personas tienen 2 hijos de las 164 personas dentro de la base de datos “Clasificacion Credito” .
n3 # Muestra de los numeros de hijos de la base de datos
## [1] 0 0 2 0 0 0 0 0 1 0 0 2 2 0 1 0 0 1 1 0 0 0 0 2 1 0 0 0 0 1 0 2 3 0 2 0 2
## [38] 0 2 0 0 0 0 2 2 0 0 0 2 2 2 0 0 0 0 1 0 2 0 2 0 2 1 0 2 0 1 1 0 0 3 3 0 0
## [75] 1 0 0 0 2 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1
personas.2hijos=subset(n3, n3 == "2") #Se crea el subset para extraer cuantas personas tienen 2 hijos dentro de la base de datos
personascon2hijos=length(personas.2hijos) #Calcula cuantas personas son las que tienen 2 hijos
personascon2hijos #Numero de personas que tienen 2 hijos
## [1] 18
Se calcula que de las 100 personas de la muestra, 18 personas tienen 2 hijos. Se calcula el intervalo de confianza para la proporcion teniendo en cuenta:
muestra.numerohijos=100 #Tamaño Muestra
personascon2hijos #Personas con 2 hijos
## [1] 18
nivel.confianza #Nivel de confianza
## [1] 0.95
Proporcionmuestra= personascon2hijos / muestra.numerohijos #Calcula la proporcion de la muestra
Proporcionmuestra #Proporcion de la muestra
## [1] 0.18
error.estandar.proporcion= sqrt((Proporcionmuestra*(1 - Proporcionmuestra))/ muestra.numerohijos) #Error estandar de la proporcion
margen.error.proporcion= Valor.Critico*error.estandar.proporcion #Margen de error
margen.error.proporcion
## [1] 0.07529936
Se obtiene que existe un margen de error de la proporcion de 7.5% para el estimador de proporcion para la variable Numero de hijos. Con estos datos ya se puede hallar el intervalo de confianza para la proporcion
Intervalo.Confianza.Proporcion = c(Proporcionmuestra- margen.error.proporcion, Proporcionmuestra + margen.error.proporcion) #Se calcula el intervalo de confianza para la proporcion
Intervalo.Confianza.Proporcion #Intervalo de confianza para la proporcion
## [1] 0.1047006 0.2552994
Se demuestra que el intervalo de confianza del 95% para la proporcion de la variable de Numero de hijos es del 10% al 25%
Con base a la muestra del estimador Numero de Hijos, se tiene en cuenta el promedio y la desviacion estandar para aplicar la funcion de verosimilitud para una distribucion normal
muestra2_hijos #Muestra del estimador numero de hijos
## [1] 0 0 2 0 0 0 0 0 1 0 0 2 2 0 1 0 0 1 1 0 0 0 0 2 1 0 0 0 0 1 0 2 3 0 2 0 2
## [38] 0 2 0 0 0 0 2 2 0 0 0 2 2 2 0 0 0 0 1 0 2 0 2 0 2 1 0 2 0 1 1 0 0 3 3 0 0
## [75] 1 0 0 0 2 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 2 2 0 3 2 0 3 0 0 0
## [112] 1 2 1 0 2 0 0 1 0 0 2 0 2 0 0 0 0 1 0 0 0 0 1 0 0 0 1 1 1 0 2 0 0 0 0 0 1
## [149] 0 1 2 0 2 2 0 1 1 0 0 1 2 0 0 1
Promedio_Hijos #Promedio estimador numero de hijos
## [1] 0.63
Desviacion_Ingresos #Desviacion estandar del estimador numero de hijos
## [1] 34888.38
Teniendo en cuenta los estadigrafos de la variable Numero de hijos, se aplica la funcion de verosimilitud con una muestra de 100 personas
datos=rnorm(100, Promedio_Hijos, Desviacion_Hijos)
Logaritmo.delaprobabilidad=function(par,data){
mu=par[1]
sigma=par[2]
-sum(dnorm(data, mean = mu, sd = sigma, log = TRUE))
}
Se asigna la funcion de logaritmo para una distribucion normal, para aplicarla con los dos estimadores para la poder deducir cuanta veracidad tiene el estimador
inicializacion= c(Promedio_Hijos, Desviacion_Hijos)
estimadores_mle= optim(par = inicializacion, fn= Logaritmo.delaprobabilidad, data= datos)
estimadores_mle$par[1] #Estimador por verosimilitud
## [1] 0.6180931
El estimador por medio de estimacion por verosimilitud para la media es de 0.61 por lo que si se compara con la media muestral (0.63) son valores muy cercanos.
H(0): El estado civil no esta relacionado significativamente con el genero
H(0 Rechazo) H(0 Verdadero): El estado civil no esta relacionado significativamente con el genero
H(0 Rechazo) H(0 Falso): El estado civil de las personas está relacionado significativamente con el género.
H(0 No Rechazo) H(0 Verdadero): El estado civil de las personas está relacionado significativamente con el género.
H(0 Rechazo) H(0 Falso): No hay relación significativa entre el estado civil y el género.
Extraccion de la muestra de genero de n=100
## [1] Male Male Female Female Male Male Male Male Female Female
## [11] Male Male Male Male Female Male Female Female Female Male
## [21] Female Male Male Female Female Male Female Male Female Female
## [31] Male Female Female Male Female Male Male Female Female Male
## [41] Male Female Female Female Female Male Male Male Female Male
## [51] Male Male Female Male Male Female Female Female Male Male
## [61] Male Female Female Male Male Male Female Female Male Male
## [71] Female Female Male Male Female Female Male Male Female Female
## [81] Female Male Male Male Male Male Male Male Female Male
## [91] Male Female Female Female Male Female Female Male Female Female
## Levels: Female Male
## [1] 23 32 17 27 35 28 19 17 32 28 28 27 23 33 30 26 22 21 24 22 32 25 20 20 24
## [26] 24 25 31 25 28 42 24 28 30 25 32 21 24 21 26 27 26 26 33 25 34 18 20 27 28
## [51] 23 37 19 28 28 26 31 37 23 21 22 29 26 22 27 25 26 28 24 22 28 32 28 24 27
## [76] 23 27 23 33 24 34 25 21 35 26 32 23 26 22 29 25 33 35 28 25 27 33 25 18 22
## $breaks
## [1] 15 20 25 30 35 40 45
##
## $counts
## [1] 9 37 33 18 2 1
##
## $density
## [1] 0.018 0.074 0.066 0.036 0.004 0.002
##
## $mids
## [1] 17.5 22.5 27.5 32.5 37.5 42.5
##
## $xname
## [1] "datoss"
##
## $equidist
## [1] TRUE
##
## attr(,"class")
## [1] "histogram"
La prueba de Kolmogorov-Smirnov compara la distribución empírica acumulativa de los datos con la distribución acumulativa esperada para una distribución normal. Interpretación: Un valor p alto indica que no hay suficiente evidencia para rechazar la hipótesis nula de normalidad.
Es útil para tamaños de muestra grandes. Es menos sensible a colas pesadas y es no paramétrica, lo que significa que no asume una media y una desviación estándar específicas.
#KOLMOGOROV
ks.test(datoss, "pnorm", mean = mean(datoss), sd = sd(datoss))
## Warning in ks.test.default(datoss, "pnorm", mean = mean(datoss), sd =
## sd(datoss)): ties should not be present for the one-sample Kolmogorov-Smirnov
## test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: datoss
## D = 0.1217, p-value = 0.1034
## alternative hypothesis: two-sided
La prueba F de Fisher. La utilizamos para comparar dos varianzas y determinar si son significativamente diferentes. Esta prueba es útil en análisis donde queremos verificar si dos poblaciones tienen la misma dispersión. Para este caso evaluaremos dos variables y serán el estado civil de las parejas vs el genero de los posibles hijos que surjan de esa relación
La fórmula para la prueba de Fisher es:
\[P(X\leq a, Y\leq b)=\frac{Combinatorio(a+b,a)*Combinatorio(n-a, m-b)}{Combinatorio(n,m)}\]
donde: - n es el total de observaciones. - m es el total de observaciones en una categoría de una variable. - a es la frecuencia observada en una celda. - b es la frecuencia observada en la misma columna.
set.seed(123)
muestra.genero=sample(ClasificacionCredito$Gender, size=100 , replace = FALSE)
muestra.genero #Muestra genero
## [1] Male Male Female Female Male Male Male Male Female Female
## [11] Male Male Male Male Female Male Female Female Female Male
## [21] Female Male Male Female Female Male Female Male Female Female
## [31] Male Female Female Male Female Male Male Female Female Male
## [41] Male Female Female Female Female Male Male Male Female Male
## [51] Male Male Female Male Male Female Female Female Male Male
## [61] Male Female Female Male Male Male Female Female Male Male
## [71] Female Female Male Male Female Female Male Male Female Female
## [81] Female Male Male Male Male Male Male Male Female Male
## [91] Male Female Female Female Male Female Female Male Female Female
## Levels: Female Male
set.seed(123)
muestra.marital.status=sample(ClasificacionCredito$Marital.Status, size = 100, replace = FALSE) #Muetra de estado civil
muestra.marital.status
## [1] Married Single Married Single Single Single Single Married Married
## [10] Single Single Married Married Married Married Single Single Married
## [19] Married Single Single Single Married Married Married Single Single
## [28] Married Single Married Married Married Married Single Married Married
## [37] Married Single Married Single Single Single Single Married Married
## [46] Married Married Married Married Married Married Single Single Married
## [55] Single Married Single Married Single Married Single Married Married
## [64] Single Married Single Married Married Single Single Married Married
## [73] Single Married Married Single Married Married Married Married Married
## [82] Single Married Married Single Single Single Single Single Single
## [91] Single Married Married Single Married Single Single Married Married
## [100] Married
## Levels: Married Single
N.hombres=subset(muestra.genero, muestra.genero == "Male" & muestra.marital.status == "Married") # Personas de genero masculino y que son casadas
N.Mujeres=subset(muestra.genero, muestra.genero== "Female" & muestra.marital.status == "Married") #Personas de genero femenino y que son casadas
N.hombres.solteros=subset(muestra.genero, muestra.genero == "Male" & muestra.marital.status == "Single") #Personas de genero masculino y que son solteros
N.Mujeres.solteras=subset(muestra.genero, muestra.genero == "Female" & muestra.marital.status == "Single") #Personas de genero femenino y que son solteras
N.hombres
## [1] Male Male Male Male Male Male Male Male Male Male Male Male Male Male Male
## [16] Male Male Male Male Male Male Male Male Male Male
## Levels: Female Male
N.hombres.casados=length(N.hombres)
N.hombres.casados #Numero de hombres casados
## [1] 25
N.Mujeres
## [1] Female Female Female Female Female Female Female Female Female Female
## [11] Female Female Female Female Female Female Female Female Female Female
## [21] Female Female Female Female Female Female Female Female Female Female
## [31] Female
## Levels: Female Male
N.mujeres.casadas=length(N.Mujeres)
N.mujeres.casadas #Numero de mujeres casadas
## [1] 31
N.hombres.solteros
## [1] Male Male Male Male Male Male Male Male Male Male Male Male Male Male Male
## [16] Male Male Male Male Male Male Male Male Male Male Male Male Male
## Levels: Female Male
N.hombres.solteros=length(N.hombres.solteros)
N.hombres.solteros #Numero de hombres solteros
## [1] 28
N.Mujeres.solteras
## [1] Female Female Female Female Female Female Female Female Female Female
## [11] Female Female Female Female Female Female
## Levels: Female Male
N.Mujeres.solteras=length(N.Mujeres.solteras)
N.Mujeres.solteras #Numero de mujeres solteras
## [1] 16
Tabla.contigencia= matrix(c(N.hombres.casados, N.mujeres.casadas, N.hombres.solteros, N.Mujeres.solteras) , nrow = 2) #Matrix de hombres casados y mujeres casadas
colnames(Tabla.contigencia)= c("Married", "Single") #Etiqueta de columnas
rownames(Tabla.contigencia)=c("Male" , "Female") #Etiqueta de filas
Tabla.contigencia #Tabla de contigencia
## Married Single
## Male 25 28
## Female 31 16
resultado.fisher=fisher.test(Tabla.contigencia) #Prueba de Fisher
resultado.fisher #Resultado prueba Fisher
##
## Fisher's Exact Test for Count Data
##
## data: Tabla.contigencia
## p-value = 0.07109
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 0.1889992 1.1135734
## sample estimates:
## odds ratio
## 0.4644856
if (resultado.fisher$p.value < 0.05) {
cat("Hay una asociación significativa entre el genero y el estado civil.")
} else {
cat("No hay suficiente evidencia para afirmar una asociacion significativa.")
}
## No hay suficiente evidencia para afirmar una asociacion significativa.