knit UNIVERSIDA FRANCISCO GAVIDIA
ESTADISTICA I - GRUPO 02
Lic. Miguel Angel Gomez
ACTIVIAD GRUPAL UNIDAD IV
Integrantes del equipo:
Stephanie Guadalupe Contreras Mendoza CM103818
Angel Manuel Guevara Colocho GC102318
Katerine Vanessa Hernandez Hernandez HH101019
Monica Sindell Murgas Herrera MH100920
Gerson Steven Pineda Escobar PE100219
PARTE I. Análisis descriptivo correlacional
installed.packages("readxl")
library(readxl) #Carga el paquete readxl que contiene la función read_excel
bsrl=read_excel("Base de dato Santa Rosa de Lima.xlsx", sheet = 1) #Importa la base de datos del municipio de Santa Rosa de Lima en formato Excel a R
bsrl #Observamos la base de datos en R
## # A tibble: 614 x 12
## Municipio `Número de miem~ `Gasto total de~ `Ingreso total ~ `Condición de p~
## <chr> <dbl> <dbl> <dbl> <chr>
## 1 Santa Ro~ 5 2707. 1077. No pobre
## 2 Santa Ro~ 5 2707. 1077. No pobre
## 3 Santa Ro~ 5 2707. 1077. No pobre
## 4 Santa Ro~ 5 2707. 1077. No pobre
## 5 Santa Ro~ 5 2707. 1077. No pobre
## 6 Santa Ro~ 5 1191. 2675 No pobre
## 7 Santa Ro~ 5 1191. 2675 No pobre
## 8 Santa Ro~ 5 1191. 2675 No pobre
## 9 Santa Ro~ 5 1191. 2675 No pobre
## 10 Santa Ro~ 5 1191. 2675 No pobre
## # ... with 604 more rows, and 7 more variables:
## # Carrera en la cual se graduó de pregrado o postgrado <chr>,
## # Razón por la que no estudia actualmente <chr>,
## # Título o diploma que obtuvo en el nivel más alto que aprobó <chr>,
## # Forma de tenencia de la vivienda <chr>, Vivienda en buen estado <chr>,
## # Tipo de alumbrado de la vivienda <chr>,
## # Forma de abastecimiento de agua de la vivienda <chr>
View(bsrl) #Visualizamos la base de datos en formato de tabla en R
names(bsrl) #Nombres de las variables en la base de datos
## [1] "Municipio"
## [2] "Número de miembros del hogar"
## [3] "Gasto total del hogar"
## [4] "Ingreso total del hogar"
## [5] "Condición de pobreza del hogar"
## [6] "Carrera en la cual se graduó de pregrado o postgrado"
## [7] "Razón por la que no estudia actualmente"
## [8] "Título o diploma que obtuvo en el nivel más alto que aprobó"
## [9] "Forma de tenencia de la vivienda"
## [10] "Vivienda en buen estado"
## [11] "Tipo de alumbrado de la vivienda"
## [12] "Forma de abastecimiento de agua de la vivienda"
#Histograma de ingreso total del hogar (alternativa 1)
hist(bsrl$`Ingreso total del hogar`, main = "Histograma de ingreso total del hogar", xlab = "Ingreso total del hogar", ylab = "Frecuencia", col = "#3335FF", breaks = 10, labels = TRUE)
#Histograma de gasto total del hogar(alternativa 2
histPer <- function(x, ...) {
H <- hist(x, plot = FALSE, breaks=10)
H$density <- with(H, 100 * density* diff(breaks)[1])
labs <- paste(round(H$density), "%", sep="")
plot(H, freq = FALSE, labels = labs, ylim=c(0, 1.08*max(H$density)),...)
}
histPer(bsrl$`Ingreso total del hogar`, main="Histograma de ingreso total del hogar", xlab = "Ingreso total del hogar", ylab = "Porcentajes", col="#3335FF")
#Histograma de gasto total del hogar (alternativa 1)
hist(x = bsrl$`Gasto total del hogar`, main = "Histograma de gasto total del hogar", xlab = "Gasto total del hogar", ylab = "Frecuencia", col = "#FF3339", breaks = 10, labels = TRUE)
#Histograma de gasto total del hogar (alternativa 2)
histPer <- function(x, ...) {
H <- hist(x, plot = FALSE, breaks=10)
H$density <- with(H, 100 * density* diff(breaks)[1])
labs <- paste(round(H$density), "%", sep="")
plot(H, freq = FALSE, labels = labs, ylim=c(0, 1.08*max(H$density)),...)
}
histPer(bsrl$`Gasto total del hogar`, main="Histograma de gasto total del hogar", xlab = "Gasto total del hogar", ylab = "Porcentajes", col="#FF3339")
nm=table(bsrl$`Número de miembros del hogar`)
nm
##
## 1 2 3 4 5 6 7 8 10
## 26 68 150 120 150 54 28 8 10
pn=round(prop.table(nm)*100, 2)
pn
##
## 1 2 3 4 5 6 7 8 10
## 4.23 11.07 24.43 19.54 24.43 8.79 4.56 1.30 1.63
barplot(pn, main="Gráfico de barras de número de miembros del hogar", xlab="Número de miembros del hogar\n", ylab = "Porcentajes", ylim = c(0, 60), sub="Noviembre-2021", col=c("#3357FF", "#B633FF", "#FF5233", "#FFE933", "#4DFF33", "#FFCA33", "#33BAFF", "#D1FF33"), legend.text = rownames(pn))
fr <- table(bsrl$`Razón por la que no estudia actualmente`)
fr
##
## Causas del hogar Discapacidad
## 13 6
## Enfermedad Finalizó sus estudios
## 9 7
## Muy caro Necesita trabajar
## 30 134
## No hay escuela cercana No hay escuela para adultos
## 10 1
## No le interesa Otros
## 115 1
## Padre y/o madre no quieren Por la edad
## 10 79
## Trabajo doméstico y cuidado
## 30
pr=round(prop.table(fr)*100, 2)
pr
##
## Causas del hogar Discapacidad
## 2.92 1.35
## Enfermedad Finalizó sus estudios
## 2.02 1.57
## Muy caro Necesita trabajar
## 6.74 30.11
## No hay escuela cercana No hay escuela para adultos
## 2.25 0.22
## No le interesa Otros
## 25.84 0.22
## Padre y/o madre no quieren Por la edad
## 2.25 17.75
## Trabajo doméstico y cuidado
## 6.74
bare=barplot(pr, main="Gráfico de barras de razón por la que no estudia actualmente", xlab=" Razón por la que no estudia actualmente\n", ylab = "Porcentajes", ylim = c(0, 70), col=c("#3433FF", "#AF33FF", "#339BFF", "#33FFD5", "#33FF69", "#62FF33", "#DEFF33"), sub="Noviembre-2021", legend.text = rownames(pr))
fv <- table(bsrl$`Forma de tenencia de la vivienda`)
fv
##
## Inquilino(a)
## 108
## Ocupante gratuito
## 117
## Propietario(a)
## 296
## Propietario(a) de la vivienda en terreno privado
## 45
## Propietario(a) de la vivienda en terreno público
## 41
## Propietario(a) de la vivienda pero la está pagando a plazos
## 7
pv=round(prop.table(fv)*100, 2)
pv
##
## Inquilino(a)
## 17.59
## Ocupante gratuito
## 19.06
## Propietario(a)
## 48.21
## Propietario(a) de la vivienda en terreno privado
## 7.33
## Propietario(a) de la vivienda en terreno público
## 6.68
## Propietario(a) de la vivienda pero la está pagando a plazos
## 1.14
names(pv) = c("Inquilino", "Ocupante gratuito", "Propietario", "Propietario público")
n <- length(pv);n
## [1] 6
hoja <- data.frame(pv)
hoja
## Var1 Freq
## 1 Inquilino 17.59
## 2 Ocupante gratuito 19.06
## 3 Propietario 48.21
## 4 Propietario público 7.33
## 5 <NA> 6.68
## 6 <NA> 1.14
etiq <- c(paste(hoja$Var1, "-", hoja$Freq))
pie(pv, main="Gráfico de pastel de forma de tenencia de la vivienda", xlab=" Forma de tenencia de la vivienda\n\n\n", labels=etiq, col=rainbow(n), border=TRUE, sub="Noviembre-2021")
bc=bsrl[,2:4] #Creamos una base de datos con tres variables cuantitativas
bc
## # A tibble: 614 x 3
## `Número de miembros del hogar` `Gasto total del hogar` `Ingreso total del ho~
## <dbl> <dbl> <dbl>
## 1 5 2707. 1077.
## 2 5 2707. 1077.
## 3 5 2707. 1077.
## 4 5 2707. 1077.
## 5 5 2707. 1077.
## 6 5 1191. 2675
## 7 5 1191. 2675
## 8 5 1191. 2675
## 9 5 1191. 2675
## 10 5 1191. 2675
## # ... with 604 more rows
View(bc) #Visualizamos la base de datos en formato de tabla dentro de RStudio
#Se realiza un análisis de correlación:
pairs(bc) #Matriz de diagramas de dispersión con las tres variables cuantitativas
#Se realiza una análisis de regresión lineal simple:
regresion <- lm(bc$`Gasto total del hogar` ~ bc$`Ingreso total del hogar`, data = bc, na.action = na.omit)
summary(regresion)
##
## Call:
## lm(formula = bc$`Gasto total del hogar` ~ bc$`Ingreso total del hogar`,
## data = bc, na.action = na.omit)
##
## Residuals:
## Min 1Q Median 3Q Max
## -510.04 -143.20 -58.08 74.70 2046.82
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 194.44547 19.72691 9.857 <2e-16 ***
## bc$`Ingreso total del hogar` 0.43296 0.02017 21.466 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 301.9 on 612 degrees of freedom
## Multiple R-squared: 0.4295, Adjusted R-squared: 0.4286
## F-statistic: 460.8 on 1 and 612 DF, p-value: < 2.2e-16
La estimación de los parámetros de la ecuación de la recta de mínimos cuadrados que relaciona la variable gasto total del hogar en función de la variable ingreso total del hogar son:
Intercepto: 194.445
Coeficiente: 0.4329
Por lo tanto, en este ejemplo la ecuación de la recta de mínimos cuadrados es: y=194.445+0.4329x
plot(bc$`Ingreso total del hogar`, bc$`Gasto total del hogar`, xlab="Ingreso total del hogar", ylab="Gasto total del hogar") #Diagrama de dispersión entre las variables
abline(regresion)
##Parte II: Construcción de distribuciones de probabilidad
Distribución binomial.
Supongamos que la probabilidad de tener una unidad defectuosa en una línea de ensamblaje es de 0.05. Si el conjunto de unidades terminadas constituye un conjunto de ensayos independientes
Sea X=Número de defectuosos encontrados en la muestra de 10 unidades
n=10 #Tamaño de la muestra
p=0.05 #Probabilidad de éxito
x=c(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10) #Valores que toma la variable aleatoria binomial
x
## [1] 0 1 2 3 4 5 6 7 8 9 10
pb=dbinom(x, n, p) #Distribución de probabilidad de la variable binomial
pb
## [1] 5.987369e-01 3.151247e-01 7.463480e-02 1.047506e-02 9.648081e-04
## [6] 6.093525e-05 2.672599e-06 8.037891e-08 1.586426e-09 1.855469e-11
## [11] 9.765625e-14
pab=pbinom(x, n, p) #Distribución de probabilidad acumulada de la variable binomial
pab
## [1] 0.5987369 0.9138616 0.9884964 0.9989715 0.9999363 0.9999972 0.9999999
## [8] 1.0000000 1.0000000 1.0000000 1.0000000
plot(x, pb, main = "Distribución de probabilidad de la variable X binomial")
plot(x, pb, type="h", main = "Distribución de probabilidad de la variable X binomial")
plot(x, pab, main = "Distribucion de probabilidad acumulada de la variable X binomial")
plot(x, pab, type="s", main = "Distribucion de probabilidad acumulada de la variable X binomial")
Distribución de Poisson.
La veterinaria de Jorge recibe un promedio de μ = 4 pacientes por día. Sabiendo que el número de pacientes que llegan en un día sigue una distribución de Poisson, calcular:
que lleguen 3 pacientes en 1 dia
que lleguen 5 pacientes en 1 dia
sea x= numeros de pacientes que llegan en un dia
l=4 #número promedio de pacientes que llegan en un dia
x=c(0:20) #Valores que toma la variable de Poisson: X=0, 1, 2, 3, 4, ...
x
## [1] 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
pp=dpois(x,l) #Distribución de probabilidad de la variable de Poisson
pp
## [1] 1.831564e-02 7.326256e-02 1.465251e-01 1.953668e-01 1.953668e-01
## [6] 1.562935e-01 1.041956e-01 5.954036e-02 2.977018e-02 1.323119e-02
## [11] 5.292477e-03 1.924537e-03 6.415123e-04 1.973884e-04 5.639669e-05
## [16] 1.503912e-05 3.759779e-06 8.846539e-07 1.965898e-07 4.138732e-08
## [21] 8.277464e-09
pap=ppois(x, l) #Distribución de probabilidad acumulada de la variable de Poisson
pap
## [1] 0.01831564 0.09157819 0.23810331 0.43347012 0.62883694 0.78513039
## [7] 0.88932602 0.94886638 0.97863657 0.99186776 0.99716023 0.99908477
## [13] 0.99972628 0.99992367 0.99998007 0.99999511 0.99999887 0.99999975
## [19] 0.99999995 0.99999999 1.00000000
plot(x, pp, main = "Distribución de probabilidad de la variable X de poisson")
plot(x, pp, type="h", main = "Distribución de probabilidad de la variable X de poisson")
plot(x, pap, main = "Distribucion de probabilidad acumulada de la variable X de poisson")
plot(x, pap, type="s", main = "Distribucion de probabilidad acumulada de la variable X de poisson")
Distribución normal.
En una ciudad se estima que la temperatura máxima en el mes de junio sigue una distribución normal, con media 23° y desviación típica 5°.
Calcular el número de días del mes en los que se espera alcanzar máximas entre 25° y 27°
mu=23 #Media de la variable normal
sd=5 #Desviación estándar de la variable normal
x=rnorm(1:30, mu, sd) #Genera un vector de valores aleatorios provenientes de una distribución normal con parámetros mu=23, y sd=5.
pnr=dnorm(x, mu, sd) #Obtiene un vector de valores de densidad que caen sobre la curva normal
plot(x, pnr, main = "Curva normal de la variable aleatoria X") #Dibuja la curva normal
#Grafico de la probabilidad asociada al valor de z<-1.5 [P(x<27)]
z1=(25-mu)/sd #Estandarizamos el valor de la variable
z1
## [1] 0.4
cord.x=c(-3, seq(-3, -1.5, 0.01), -1.5)
cord.y=c(0, dnorm(seq(-3, -1.5, 0.01)), 0)
curve(dnorm(x, 0, 1), xlim = c(-3, 3), main="Normal estandar", xlab = "Z")
polygon(cord.x, cord.y, col="#3357FF")
area=pnorm(-1.5, 0, 1)
area
## [1] 0.0668072
result=paste("P(Z<", -1.5, ")=", signif(area, digits = 4))
mtext(result, 3)
#Grafico del área en el intervalo z1=-0.5<Z<z2=1.5 [P(25<X<27)]
z1=(25-mu)/sd #Estandarizamos el valor del límite inferior del intervalo
z1
## [1] 0.4
z2=(27-mu)/sd #Estandarizamos el valor del límite superior del intervalo
z2
## [1] 0.8
cord.x=c(-0.5, seq(-0.5, 1.5, 0.01), 1.5)
cord.y=c(0, dnorm(seq(-0.5, 1.5, 0.01)), 0)
curve(dnorm(x, 0, 1), xlim = c(-3, 3), main="Normal estandar", xlab = "Z")
polygon(cord.x, cord.y, col="#3357FF")
area=pnorm(1.5, 0, 1)-pnorm(-0.5, 0, 1)
area
## [1] 0.6246553
result=paste("P(", -0.5, "< Z <", 1.5, ")=", signif(area, digits = 4))
mtext(result, 3)
#Grafico de la probabilidad asociada al valor de z>=1.75 [P(x>25)]
z1=(25-mu)/sd #Estandarizamos el valor de la variable
z1
## [1] 0.4
cord.x=c(1.75, seq(1.75, 3.0, 0.01), 3.0)
cord.y=c(0, dnorm(seq(1.75, 3.0, 0.01)), 0)
curve(dnorm(x, 0, 1), xlim = c(-3, 3), main="Normal estandar", xlab = "Z")
polygon(cord.x, cord.y, col="#3357FF")
area=1-pnorm(1.75, 0, 1)
area
## [1] 0.04005916
result=paste("P(Z>", 1.75, ")=", signif(area, digits = 4))
mtext(result, 3)