Características de la tabla, valores perdidos, asignar tipos de variables a las columnas, igualar valores perdidos a cero, valores repetidos, problema de Fernanda Esquinca.
A Fernanda Esquinca le recomendaría comprarse un Dodge Fusion Híbrido, ya que maneja tanto en carretera como en ciudad diariamente. Este automóvil es el más eficiente en términos de consumo combinado.
knitr::opts_chunk$set(echo = TRUE)
library(readxl)
carros<-read.csv("C:/Users/TOSHIBA/Documents/CIDE/METPOL/1 SEMESTRE/BASES DE DATOS/CARROS.csv")
dim(carros)
## [1] 356 14
attach(carros)
columnas<-colnames(carros)
summary(carros)
## No Marca MAKE.MODEL CLASS
## Min. : 1.00 Length:356 Length:356 Length:356
## 1st Qu.: 89.75 Class :character Class :character Class :character
## Median :178.50 Mode :character Mode :character Mode :character
## Mean :178.50
## 3rd Qu.:267.25
## Max. :356.00
##
## ENGINE.SIZE..L. CYLINDERS TRANSMISSION FUEL.TYPE
## Min. :0.900 Min. : 3.000 Length:356 Length:356
## 1st Qu.:2.000 1st Qu.: 4.000 Class :character Class :character
## Median :3.000 Median : 6.000 Mode :character Mode :character
## Mean :3.175 Mean : 5.644
## 3rd Qu.:3.800 3rd Qu.: 6.000
## Max. :6.700 Max. :12.000
## NA's :2 NA's :2
## CONSUMPTION..CITY..L.100.KM. CONSUMPTION..HIGHWAY..L.100.KM.
## Min. : 5.40 Min. : 5.500
## 1st Qu.:10.00 1st Qu.: 7.000
## Median :11.90 Median : 8.200
## Mean :12.11 Mean : 8.333
## 3rd Qu.:14.10 3rd Qu.: 9.300
## Max. :20.70 Max. :13.300
## NA's :2 NA's :2
## CONSUMPTION..COMBINED..L.100.KM. X..PER.YEAR CO2.EMISSIONS..g.km.
## Min. : 5.50 Min. :1199 Min. :130.0
## 1st Qu.: 8.70 1st Qu.:2034 1st Qu.:203.2
## Median :10.25 Median :2430 Median :238.0
## Mean :10.41 Mean :2450 Mean :241.6
## 3rd Qu.:12.05 3rd Qu.:2802 3rd Qu.:272.8
## Max. :17.20 Max. :4266 Max. :404.0
## NA's :2 NA's :10 NA's :2
## CO2.RATING
## Min. :2.000
## 1st Qu.:4.000
## Median :5.000
## Mean :5.364
## 3rd Qu.:6.000
## Max. :9.000
## NA's :2
#2
verina<-function(x)
{
if(is.na(x)==T)
{
x<-as.numeric(0)
}
else
{
x<-as.numeric(x)
}
}
#3,4 Y 5
marca<-as.factor(carros$Marca)
verina(marca)
## Warning in if (is.na(x) == T) {: la condición tiene longitud > 1 y sólo el
## primer elemento será usado
modelo<-as.factor(carros$MODEL)
clase<-as.factor(carros$CLASS)
verina(clase)
## Warning in if (is.na(x) == T) {: la condición tiene longitud > 1 y sólo el
## primer elemento será usado
maquina<-as.numeric(carros$ENGINE)
verina(maquina)
## Warning in if (is.na(x) == T) {: la condición tiene longitud > 1 y sólo el
## primer elemento será usado
cilindros<-as.numeric(carros$CYLINDERS)
verina(cilindros)
## Warning in if (is.na(x) == T) {: la condición tiene longitud > 1 y sólo el
## primer elemento será usado
transmision<-as.factor(carros$TRANSMISSION)
verina(transmision)
## Warning in if (is.na(x) == T) {: la condición tiene longitud > 1 y sólo el
## primer elemento será usado
combustible<-as.factor(carros$FUEL)
verina(combustible)
## Warning in if (is.na(x) == T) {: la condición tiene longitud > 1 y sólo el
## primer elemento será usado
ciudad<-as.data.frame(carros$CITY)
pista<-as.data.frame(carros$HIGHWAY)
mixto<-as.data.frame(carros$COMBINED)
costo<-as.numeric(carros$COST)
emisiones<-as.numeric(carros$CO2EMISSIONS)
rating<-as.numeric(carros$CO2RATING)
sort(mixto, decreasing = FALSE, na.last=TRUE)
## Warning in xtfrm.data.frame(x): cannot xtfrm data frames
## data frame with 0 columns and 0 rows
Función para etiquetar de manera adecuada la variable “sexo”
knitr::opts_chunk$set(echo = TRUE)
encuesta<-read.csv("C:/Users/TOSHIBA/Documents/CIDE/METPOL/1 SEMESTRE/BASES DE DATOS/ENCUESTA.csv")
etiqueta<-function(x){
if(x=="mujer"|x=="Femenino" |x=="M")
{x<-"0"}
else
{x<-"1"}
}
genero<-apply(encuesta[,2,drop=F],c(1,2),etiqueta)
genero
## sexo
## [1,] "1"
## [2,] "1"
## [3,] "1"
## [4,] "1"
## [5,] "1"
## [6,] "0"
## [7,] "0"
## [8,] "0"
## [9,] "1"
## [10,] "0"
## [11,] "0"
## [12,] "1"
## [13,] "1"
## [14,] "1"
## [15,] "1"
## [16,] "1"
## [17,] "0"
## [18,] "0"
## [19,] "1"
## [20,] "0"
## [21,] "0"
## [22,] "1"
## [23,] "1"
## [24,] "1"
## [25,] "1"
## [26,] "0"
## [27,] "0"
## [28,] "0"
## [29,] "0"
## [30,] "0"
## [31,] "1"
## [32,] "1"
## [33,] "0"
## [34,] "1"
## [35,] "1"
## [36,] "1"
## [37,] "0"
## [38,] "0"
## [39,] "0"
## [40,] "1"
Estimar el ingreso de las personas bajo estudio Los coeficientes del intercepto y de las variables “sexo” y “empleo” fueron tomados del trabajo del Mtro. Javier Jiménez Rodríguez y de la Dra. Rosario Cota Yáñez, “Relación del grado de escolaridad y el ingreso bajo la perspectiva del capital humano. Estudio de caso”, doi.org/10.15198/seeci.2019.48.87-108.
un hombre gana $1438 pesos más que una mujer
por cada año de escolaridad,el trabajador gana 2591 pesos más
Asumí que:
un obrero tiene educación secundaria, equivalente a 9 años de escolaridad.
tanto enfermeros como maestros cuentan con carrera técnica, equivalente a 14 años de escolaridad.
un abogado tiene educación superior, equivalente a 16 años de escolaridad.
un político tiene posgrado, que equivale a 18 años de escolaridad
el peso, la altura y la edad no influyen en el ingreso.
En el output de R, se puede observar el ingreso por estimación, en la última columna de nombre “empleo”
knitr::opts_chunk$set(echo = TRUE)
encuesta<-read.csv("C:/Users/TOSHIBA/Documents/CIDE/METPOL/1 SEMESTRE/BASES DE DATOS/ENCUESTA.csv")
gender<-function(x){
if(x=="mujer"|x=="Femenino" |x=="M")
{x<-0}
else
{x<-1438}
}
ingen<-apply(encuesta[,2,drop=F],c(1,2),gender)
job<-function(x)
{
if(x=="Enfermeria"|x=="mtro")
{
x<-14*2591
}
else
{
if(x=="obrero")
{
x<-9*2591
}
else
{
if(x=="abogado")
{
x<-16*2591
}
else
{
x<-18*2591
}
}}}
injob<-apply(encuesta[,3,drop=F],c(1,2),job)
income<-injob+ingen
encuestaingreso<-cbind(encuesta, income)
encuestaingreso
## encuestador sexo empleo ingreso edad altura peso empleo
## 1 arturo hombre Enfermeria #N/A 51 150.5 64 37712
## 2 arturo hombre obrero #N/A 33 155.7 62 24757
## 3 arturo hombre mtro #N/A 47 170.8 76 37712
## 4 arturo hombre obrero #N/A 38 166.0 67 24757
## 5 arturo hombre abogado #N/A 46 192.5 90 42894
## 6 arturo mujer mtro #N/A 47 171.7 80 36274
## 7 arturo mujer obrero #N/A 55 164.8 75 23319
## 8 arturo mujer Enfermeria #N/A 40 173.0 65 36274
## 9 arturo hombre politico #N/A 57 179.8 83 48076
## 10 arturo mujer abogado #N/A #N/A 166.3 68 41456
## 11 jessica Femenino mtro #N/A 56 168.5 62 36274
## 12 jessica masculino obrero #N/A 47 175.0 79 24757
## 13 jessica masculino mtro #N/A 36 155.8 65 37712
## 14 jessica masculino mtro #N/A 51 188.0 88 37712
## 15 jessica mascuino mtro #N/A 41 188.3 74 37712
## 16 jessica masculino abogado #N/A 26 160.0 63 42894
## 17 jessica Femenino obrero #N/A 52 179.4 86 23319
## 18 jessica Femenino abogado #N/A 55 176.4 81 41456
## 19 jessica masculino Enfermeria #N/A 42 180.2 88 37712
## 20 jessica Femenino abogado #N/A 40 188.3 95 41456
## 21 susy Femenino abogado #N/A 52 165.2 68 41456
## 22 susy Masculino obrero #N/A 62 166.0 76 24757
## 23 susy Masculino obrero #N/A 49 166.0 70 24757
## 24 susy Masculino Enfermeria #N/A 49 168.4 63 37712
## 25 susy Masculino obrero #N/A 58 186.3 83 24757
## 26 susy Femenino obrero #N/A 64 176.3 70 23319
## 27 susy Femenino obrero #N/A 49 184.3 75 23319
## 28 susy Femenino obrero #N/A 39 173.6 80 23319
## 29 susy Femenino politico #N/A 70 166.0 66 46638
## 30 susy Femenino abogado #N/A 44 181.3 76 41456
## 31 pedro H obrero #N/A 47 160.4 68 24757
## 32 pedro H mtro #N/A 40 183.3 76 37712
## 33 pedro M Enfermeria #N/A 34 164.5 #N/A 36274
## 34 pedro H Enfermeria #N/A 44 178.4 78 37712
## 35 pedro H Enfermeria #N/A 49 191.7 80 37712
## 36 pedro H obrero #N/A 33 168.0 73 24757
## 37 pedro M obrero #N/A 45 155.9 54.3 23319
## 38 pedro M mtro #N/A 49 188.0 #N/A 36274
## 39 pedro M obrero #N/A 46 186.0 88 23319
## 40 pedro H obrero #N/A 80 178.6 83 24757
PREGUNTA 4. Estimar los valores perdidos de la variable peso a partir de la variable altura.
knitr::opts_chunk$set(echo = TRUE)
encuesta<-read.csv("C:/Users/TOSHIBA/Documents/CIDE/METPOL/1 SEMESTRE/BASES DE DATOS/ENCUESTA.csv")
pesos<-as.numeric(gsub("\\.", "", encuesta$peso))
## Warning: NAs introducidos por coerción
alturas<-as.numeric(gsub("\\.", "", encuesta$altura))
MCO<-(lm(pesos~alturas))
summary(MCO)
##
## Call:
## lm(formula = pesos ~ alturas)
##
## Residuals:
## Min 1Q Median 3Q Max
## -28.57 -17.91 -12.14 -6.06 453.49
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 76.33670 26.91784 2.836 0.00745 **
## alturas 0.00845 0.01795 0.471 0.64067
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 77.21 on 36 degrees of freedom
## (2 observations deleted due to missingness)
## Multiple R-squared: 0.006118, Adjusted R-squared: -0.02149
## F-statistic: 0.2216 on 1 and 36 DF, p-value: 0.6407
MCO$coefficients
## (Intercept) alturas
## 76.336698355 0.008449584
nas<-which(is.na(encuesta[,7])==TRUE)
nas
## integer(0)
#DADO QUE NO HAY NA'S EN LA COLUMNA DE PESO DE LA BASE DE DATOS, NO ES NECESARIO ESTIMAR,PERO SI LO FUERA, HARÍA LO SIGUIENTE PARA ESTIMAR LOS MISSING VALUES.
pesoestimado<-76.3367+(0.00847*encuesta$altura)
encuestapeso<-cbind(encuesta, pesoestimado)
encuestapeso
## encuestador sexo empleo ingreso edad altura peso pesoestimado
## 1 arturo hombre Enfermeria #N/A 51 150.5 64 77.61144
## 2 arturo hombre obrero #N/A 33 155.7 62 77.65548
## 3 arturo hombre mtro #N/A 47 170.8 76 77.78338
## 4 arturo hombre obrero #N/A 38 166.0 67 77.74272
## 5 arturo hombre abogado #N/A 46 192.5 90 77.96717
## 6 arturo mujer mtro #N/A 47 171.7 80 77.79100
## 7 arturo mujer obrero #N/A 55 164.8 75 77.73256
## 8 arturo mujer Enfermeria #N/A 40 173.0 65 77.80201
## 9 arturo hombre politico #N/A 57 179.8 83 77.85961
## 10 arturo mujer abogado #N/A #N/A 166.3 68 77.74526
## 11 jessica Femenino mtro #N/A 56 168.5 62 77.76389
## 12 jessica masculino obrero #N/A 47 175.0 79 77.81895
## 13 jessica masculino mtro #N/A 36 155.8 65 77.65633
## 14 jessica masculino mtro #N/A 51 188.0 88 77.92906
## 15 jessica mascuino mtro #N/A 41 188.3 74 77.93160
## 16 jessica masculino abogado #N/A 26 160.0 63 77.69190
## 17 jessica Femenino obrero #N/A 52 179.4 86 77.85622
## 18 jessica Femenino abogado #N/A 55 176.4 81 77.83081
## 19 jessica masculino Enfermeria #N/A 42 180.2 88 77.86299
## 20 jessica Femenino abogado #N/A 40 188.3 95 77.93160
## 21 susy Femenino abogado #N/A 52 165.2 68 77.73594
## 22 susy Masculino obrero #N/A 62 166.0 76 77.74272
## 23 susy Masculino obrero #N/A 49 166.0 70 77.74272
## 24 susy Masculino Enfermeria #N/A 49 168.4 63 77.76305
## 25 susy Masculino obrero #N/A 58 186.3 83 77.91466
## 26 susy Femenino obrero #N/A 64 176.3 70 77.82996
## 27 susy Femenino obrero #N/A 49 184.3 75 77.89772
## 28 susy Femenino obrero #N/A 39 173.6 80 77.80709
## 29 susy Femenino politico #N/A 70 166.0 66 77.74272
## 30 susy Femenino abogado #N/A 44 181.3 76 77.87231
## 31 pedro H obrero #N/A 47 160.4 68 77.69529
## 32 pedro H mtro #N/A 40 183.3 76 77.88925
## 33 pedro M Enfermeria #N/A 34 164.5 #N/A 77.73001
## 34 pedro H Enfermeria #N/A 44 178.4 78 77.84775
## 35 pedro H Enfermeria #N/A 49 191.7 80 77.96040
## 36 pedro H obrero #N/A 33 168.0 73 77.75966
## 37 pedro M obrero #N/A 45 155.9 54.3 77.65717
## 38 pedro M mtro #N/A 49 188.0 #N/A 77.92906
## 39 pedro M obrero #N/A 46 186.0 88 77.91212
## 40 pedro H obrero #N/A 80 178.6 83 77.84944
binomial.
knitr::opts_chunk$set(echo = TRUE)
###para la pregunta 1 utilizaré un Ejemplo para P(X=1) y P(Y=1) para ambas funciones de probabilidad binomial con los parámetros dados en el problema
preg1x<-dbinom(1,5,0.5)
preg1x
## [1] 0.15625
preg1y<-dbinom(1,2,0.5)
preg1y
## [1] 0.5
respuesta1<-preg1x*preg1y
respuesta1
## [1] 0.078125
Teorema de Bayes
\(P(Y\mid X)=\frac{P(X \mid Y)P(Y)}{P(X)}\)
Fórmula de probabilidad condicional
\(P(Y\mid X)=\frac{P(X \cap Y)}{P(X)}\)
IGUALANDO \(\frac{P(X \mid Y)P(Y)}{P(X)}=\frac{P(X \cap Y)}{P(X)}\) \(P(X \mid Y)P(Y)=P(X \cap Y)\)
TENEMOS QUE LA PROBABILIDAD DE Y ES \[P(Y)=\frac{P(X \cap Y)}{P(X \mid Y)}\]
y la probabilidad conjunta de X, Y \[P(X \mid Y)P(Y)=P(X \cap Y)\]