PROYECTO FINAL

MARIA JULIANA MONROY, HIROSHI TAKESHITA, WILSON STEVEN NEIRA,GIGLIAN STIVEN PRADA

2025-11-27

library(dplyr)
library(ggplot2)
library(descriptr)
library(knitr)
library(modeest)
library(fdth)
library(readxl)
library(plotrix)

Sección A: Medidas descriptivas y tablas

library(readxl)
EncuestaSitiosComida<-read_excel("C:/Users/Acer/OneDrive/Pictures/Prrobabilidad/EncuestaSitiosComida.xlsx")
View(EncuestaSitiosComida)

set.seed(8126)
datos<- EncuestaSitiosComida
muestra_290 <- sample_n(EncuestaSitiosComida, size=290, replace = FALSE)

muestra_290
## # A tibble: 290 × 15
##       ID V1_SitioZona V2_TiempoConoce_meses V3_Recomienda V4_Atencion_cat
##    <dbl> <chr>                        <dbl> <chr>         <chr>          
##  1   306 Zona Centro                     34 No            Mala           
##  2   747 Zona Sur                        28 Sí            Buena          
##  3     5 Zona Centro                     66 Sí            Regular        
##  4   909 Zona Centro                     16 No            Mala           
##  5   870 Zona Centro                     51 No            Buena          
##  6   186 Zona Centro                     11 No            Buena          
##  7   689 Zona Norte                      66 No            Buena          
##  8   328 Zona Sur                        34 Sí            Buena          
##  9  1142 Zona Centro                     38 Sí            Mala           
## 10   554 Zona Sur                        21 No            Regular        
## # ℹ 280 more rows
## # ℹ 10 more variables: V5_Atencion_1a4 <dbl>, V6_VisitasSemana <dbl>,
## #   V7_PrecioAlmuerzo <dbl>, V8_CompanerosAlmuerzo <dbl>, V9_Edad <dbl>,
## #   V11_Ingresos <dbl>, V12_Gastos <dbl>, V13_PesoKg <dbl>,
## #   V14_EstaturaCm <dbl>, V15_Sexo <chr>

1) Calcule e interprete media, mediana, moda, desviación estándar y coeficiente de variación para las variables cuantitativas. Interpretación esperada: Identificar concentraciones, asimetrías, atípicos y diferencias visibles entre variables. Comparar media vs mediana para inferir asimetría; usar CV para comparar dispersión relativa

vars_cuant <- c("V2_TiempoConoce_meses", "V5_Atencion_1a4", "V6_VisitasSemana",
                "V7_PrecioAlmuerzo", "V8_CompanerosAlmuerzo", "V9_Edad",
                "V11_Ingresos", "V12_Gastos", "V13_PesoKg", "V14_EstaturaCm")

resumen_var <- function(x) {
  x <- na.omit(x)  
  media <- mean(x)
  mediana <- median(x)
  moda <- as.numeric(names(sort(table(x), decreasing = TRUE)[1])) 
  sd_val <- sd(x)
  cv <- sd_val / media
  return(c(Media = media,
           Mediana = mediana,
           Moda = moda,
           DesvEst = sd_val,
           CV = cv))
}

# Aplicar a todas las variables cuantitativas
resultados <- sapply(muestra_290 [vars_cuant], resumen_var)

# Transponer para que quede tabla legible
resultados <- t(resultados)
round(resultados, 2)
##                            Media    Mediana      Moda    DesvEst   CV
## V2_TiempoConoce_meses      32.32      27.00      21.0      23.13 0.72
## V5_Atencion_1a4             2.54       3.00       3.0       1.02 0.40
## V6_VisitasSemana            2.98       3.00       3.0       1.89 0.63
## V7_PrecioAlmuerzo       22552.67   22816.00   21845.0    4601.58 0.20
## V8_CompanerosAlmuerzo       1.96       2.00       1.0       1.38 0.70
## V9_Edad                    37.47      36.00      34.0      10.32 0.28
## V11_Ingresos          3782795.95 2882780.50 1500000.0 2626404.66 0.69
## V12_Gastos            2241448.66 1776881.00  500000.0 1650129.39 0.74
## V13_PesoKg                 68.42      68.90      69.1       9.60 0.14
## V14_EstaturaCm            165.98     165.25     150.0       8.70 0.05
View(resultados)

cat("En general, la comparación entre la media y la mediana muestra el grado de asimetría de cada variable, el CV permite identificar cuáles tienen mayor dispersión relativa y los valores atípicos visibles refuerzan dónde hay alta variabilidad y concentraciones claras en la distribución.")
## En general, la comparación entre la media y la mediana muestra el grado de asimetría de cada variable, el CV permite identificar cuáles tienen mayor dispersión relativa y los valores atípicos visibles refuerzan dónde hay alta variabilidad y concentraciones claras en la distribución.

Punto 2

percentiles_fun <- function(x) {
  x_no_na <- na.omit(x)
  q <- quantile(x_no_na, probs = c(0.25, 0.5, 0.75), na.rm = TRUE)
  iqr <- IQR(x_no_na, na.rm = TRUE)
  p10 <- quantile(x_no_na, probs = 0.10, na.rm = TRUE)
  p50 <- quantile(x_no_na, probs = 0.50, na.rm = TRUE)
  p90 <- quantile(x_no_na, probs = 0.90, na.rm = TRUE)
  tibble::tibble(
    q1 = q[[1]],
    q2 = q[[2]],
    q3 = q[[3]],
    iqr = iqr,
    p10 = p10,
    p50 = p50,
    p90 = p90
  )
}

cuartiles_list <- lapply(muestra_290 [vars_cuant], percentiles_fun)
cuartiles_df <- bind_rows(cuartiles_list, .id = "variable")
print(cuartiles_df)
## # A tibble: 10 × 8
##    variable                     q1        q2      q3    iqr    p10    p50    p90
##    <chr>                     <dbl>     <dbl>   <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
##  1 V2_TiempoConoce_meses      16        27    4.27e1 2.68e1 9   e0 2.7 e1 6.11e1
##  2 V5_Atencion_1a4             2         3    3   e0 1   e0 1   e0 3   e0 4   e0
##  3 V6_VisitasSemana            2         3    4   e0 2   e0 1   e0 3   e0 6   e0
##  4 V7_PrecioAlmuerzo       18585.    22816    2.65e4 7.88e3 1.59e4 2.28e4 2.89e4
##  5 V8_CompanerosAlmuerzo       1         2    3   e0 2   e0 0      2   e0 4   e0
##  6 V9_Edad                    30        36    4.48e1 1.47e1 2.5 e1 3.6 e1 5.3 e1
##  7 V11_Ingresos          1985442.  2882780.   4.85e6 2.87e6 1.5 e6 2.88e6 6.98e6
##  8 V12_Gastos            1102128.  1776881    2.82e6 1.72e6 8.39e5 1.78e6 4.18e6
##  9 V13_PesoKg                 61.5      68.9  7.49e1 1.34e1 5.46e1 6.89e1 8.17e1
## 10 V14_EstaturaCm            159.      165.   1.72e2 1.29e1 1.55e2 1.65e2 1.78e2
View(cuartiles_df)

cat("Los percentiles y el IQR muestran que varias variables tienen una alta dispersión y valores muy alejados entre Q1 y Q3, lo que indica presencia de asimetría y posibles outliers, mientras que otras presentan rangos más compactos que reflejan mayor concentración de muestra_290.")
## Los percentiles y el IQR muestran que varias variables tienen una alta dispersión y valores muy alejados entre Q1 y Q3, lo que indica presencia de asimetría y posibles outliers, mientras que otras presentan rangos más compactos que reflejan mayor concentración de muestra_290.

Punto 3

k <- 8
x <- muestra_290 $V7_PrecioAlmuerzo

rango <- max(x, na.rm = TRUE) - min(x, na.rm = TRUE)

amplitud <- ceiling(rango / k)

# Construcción de intervalos
breaks <- seq(min(x, na.rm = TRUE), max(x, na.rm = TRUE) + amplitud, by = amplitud)

# Tabla de frecuencias
tabla_freq <- cut(x, breaks = breaks, right = FALSE, include.lowest = TRUE) %>%
  table() %>%
  as.data.frame()

colnames(tabla_freq) <- c("Clase", "Frecuencia")

# Agregar frecuencia acumulada y relativa
tabla_freq <- tabla_freq %>%
  mutate(
    Frecuencia_Acumulada = cumsum(Frecuencia),
    Frecuencia_Relativa = round(Frecuencia / sum(Frecuencia), 3),
    Frecuencia_Relativa_Acumulada = cumsum(Frecuencia_Relativa)
  )

print(tabla_freq)
##                 Clase Frecuencia Frecuencia_Acumulada Frecuencia_Relativa
## 1 [1.32e+04,1.55e+04)         22                   22               0.076
## 2 [1.55e+04,1.78e+04)         28                   50               0.097
## 3 [1.78e+04,2.01e+04)         45                   95               0.155
## 4 [2.01e+04,2.24e+04)         43                  138               0.148
## 5 [2.24e+04,2.48e+04)         48                  186               0.166
## 6 [2.48e+04,2.71e+04)         44                  230               0.152
## 7 [2.71e+04,2.94e+04)         43                  273               0.148
## 8 [2.94e+04,3.17e+04]         17                  290               0.059
##   Frecuencia_Relativa_Acumulada
## 1                         0.076
## 2                         0.173
## 3                         0.328
## 4                         0.476
## 5                         0.642
## 6                         0.794
## 7                         0.942
## 8                         1.001
View(tabla_freq)

cat("La tabla de frecuencias muestra cómo se distribuyen los precios del almuerzo en intervalos: se observa en qué rangos se concentra la mayoría de los valores y cómo aumenta la frecuencia acumulada, permitiendo identificar si los precios están agrupados, dispersos o presentan posibles sesgos.")
## La tabla de frecuencias muestra cómo se distribuyen los precios del almuerzo en intervalos: se observa en qué rangos se concentra la mayoría de los valores y cómo aumenta la frecuencia acumulada, permitiendo identificar si los precios están agrupados, dispersos o presentan posibles sesgos.

Punto 4

tabla_contingencia <- table(muestra_290 $V4_Atencion_cat, muestra_290 $V1_SitioZona)
tabla_contingencia
##            
##             Zona Centro Zona Norte Zona Sur
##   Buena              45         26       22
##   Excelente          21         22       16
##   Mala               29         13       13
##   Regular            39         26       18
prop_por_fila <- prop.table(tabla_contingencia, margin = 1)  # proporciones por fila
round(prop_por_fila, 3)
##            
##             Zona Centro Zona Norte Zona Sur
##   Buena           0.484      0.280    0.237
##   Excelente       0.356      0.373    0.271
##   Mala            0.527      0.236    0.236
##   Regular         0.470      0.313    0.217
View(prop_por_fila)

Punto 5

ingresos_por_sexo <- muestra_290  %>%
  group_by(V15_Sexo) %>%
  summarise(
    n = sum(!is.na(V11_Ingresos)),
    media_ingresos = mean(V11_Ingresos, na.rm = TRUE),
    sd_ingresos = sd(V11_Ingresos, na.rm = TRUE),
    cv = sd_ingresos / media_ingresos
  )

print(ingresos_por_sexo)
## # A tibble: 2 × 5
##   V15_Sexo      n media_ingresos sd_ingresos    cv
##   <chr>     <int>          <dbl>       <dbl> <dbl>
## 1 Femenino    159       3956181.    2723158. 0.688
## 2 Masculino   131       3572352.    2498120. 0.699
View(ingresos_por_sexo)

SECCIÓN B: GRÁFICOS

(6)

library(e1071)


numericas <- muestra_290 %>% select(where(is.numeric))


numericas <- numericas %>% select(-ID)


print("Variables numéricas utilizadas:")
## [1] "Variables numéricas utilizadas:"
print(names(numericas))
##  [1] "V2_TiempoConoce_meses" "V5_Atencion_1a4"       "V6_VisitasSemana"     
##  [4] "V7_PrecioAlmuerzo"     "V8_CompanerosAlmuerzo" "V9_Edad"              
##  [7] "V11_Ingresos"          "V12_Gastos"            "V13_PesoKg"           
## [10] "V14_EstaturaCm"
for (col in names(numericas)) {
  
  variable <- numericas[[col]]
  
  cat("\n-------------------------------------------------------------\n")
  cat("Variable:", col, "\n")
  cat("Asimetría:", skewness(variable, na.rm = TRUE), "\n")
  cat("Curtosis:", kurtosis(variable, na.rm = TRUE), "\n")
  cat("-------------------------------------------------------------\n")
  
  print(
    ggplot(numericas, aes(x = .data[[col]])) +
      geom_histogram(aes(y = ..density..), bins = 20,
                     fill = "gold", color = "black") +
      geom_density(color = "blue", size = 1) +
      ggtitle(paste("Histograma y Densidad de", col))
  )
}
## 
## -------------------------------------------------------------
## Variable: V2_TiempoConoce_meses 
## Asimetría: 1.682065 
## Curtosis: 3.887833 
## -------------------------------------------------------------

## 
## -------------------------------------------------------------
## Variable: V5_Atencion_1a4 
## Asimetría: -0.06326795 
## Curtosis: -1.117882 
## -------------------------------------------------------------

## 
## -------------------------------------------------------------
## Variable: V6_VisitasSemana 
## Asimetría: 0.7748562 
## Curtosis: 0.47054 
## -------------------------------------------------------------

## 
## -------------------------------------------------------------
## Variable: V7_PrecioAlmuerzo 
## Asimetría: -0.04014105 
## Curtosis: -1.035454 
## -------------------------------------------------------------

## 
## -------------------------------------------------------------
## Variable: V8_CompanerosAlmuerzo 
## Asimetría: 0.5868898 
## Curtosis: -0.4073709 
## -------------------------------------------------------------

## 
## -------------------------------------------------------------
## Variable: V9_Edad 
## Asimetría: 0.529299 
## Curtosis: -0.06673003 
## -------------------------------------------------------------

## 
## -------------------------------------------------------------
## Variable: V11_Ingresos 
## Asimetría: 2.001392 
## Curtosis: 4.865776 
## -------------------------------------------------------------

## 
## -------------------------------------------------------------
## Variable: V12_Gastos 
## Asimetría: 2.284432 
## Curtosis: 7.591873 
## -------------------------------------------------------------

## 
## -------------------------------------------------------------
## Variable: V13_PesoKg 
## Asimetría: 0.04523087 
## Curtosis: -0.3792265 
## -------------------------------------------------------------

## 
## -------------------------------------------------------------
## Variable: V14_EstaturaCm 
## Asimetría: 0.2039556 
## Curtosis: -0.6497969 
## -------------------------------------------------------------

(7)

library(reshape2)
numericas <- muestra_290[vars_cuant]

numericas_std <- as.data.frame(scale(numericas))

melted_std <- melt(numericas_std)

ggplot(melted_std, aes(x = variable, y = value)) +
  geom_boxplot(fill = "grey", color = "black") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  ggtitle("Boxplots comparativos (Variables estandarizadas Z-score)")

(8)

library(gridExtra)

qq_ingresos <- ggplot(muestra_290, aes(sample = V11_Ingresos)) +
  stat_qq() + stat_qq_line(color = "purple") +
  ggtitle("QQ-Plot de V11_Ingresos")

qq_edad <- ggplot(muestra_290, aes(sample = V9_Edad)) +
  stat_qq() + stat_qq_line(color = "purple") +
  ggtitle("QQ-Plot de V9_Edad")

grid.arrange(qq_ingresos, qq_edad, ncol = 2)

SECCIÓN C: PROBABILIDAD Y CONTEO

(9)

n_centro <- sum(muestra_290 $V1_SitioZona == "Zona Centro")
n_otros  <- sum(muestra_290 $V1_SitioZona != "Zona Centro")

formas <- choose(n_centro, 2) * choose(n_otros, 3)
formas
## [1] 5530344820

(10)

num <- sum(muestra_290$V3_Recomienda == "Sí" & muestra_290$V5_Atencion_1a4 >= 4)
den <- sum(muestra_290$V5_Atencion_1a4 >= 4)

prob_condicional <- num / den
prob_condicional
## [1] 0.6101695

(11)

num <- sum(muestra_290$V1_SitioZona=="Zona Norte"& muestra_290$V3_Recomienda == "Sí")
den <- sum(muestra_290 $V3_Recomienda == "Sí")

prob_bayes <- num / den
prob_bayes
## [1] 0.2635659

(12)

p <- mean(muestra_290 $V3_Recomienda == "Sí")  # proporción muestral

prob_binom <- 1 - pbinom(7, size = 10, prob = p)
prob_binom
## [1] 0.02535099

(13)

lambda_sur <- mean(muestra_290$V6_VisitasSemana[muestra_290$V1_SitioZona == "Zona Sur"])

prob_pois <- 1 - ppois(3, lambda_sur)  # P(X >= 4)
prob_pois
## [1] 0.5805572

(14)

N <- 1200
K <- sum(datos$V4_Atencion_cat == "Excelente")
n <- 20
k <- 6

prob_hiper <- dhyper(k, K, N-K, n)
prob_hiper
## [1] 0.1103612

(15)

mu  <- mean(muestra_290 $V7_PrecioAlmuerzo)
sigma <- sd(muestra_290 $V7_PrecioAlmuerzo)

prob_normal <- pnorm(24000, mu, sigma) - pnorm(20000, mu, sigma)
prob_normal
## [1] 0.333903

(16)

lambda <- mean(muestra_290 $V6_VisitasSemana) / 7  # tasa por día

prob_exp <- exp(-lambda * 10)
prob_exp
## [1] 0.01417667

Sección D Intervalos de confianza y pruebas de hipótesis

17) Calcule e interprete un Intervalo de Confianza IC del 95% para la media de V7_PrecioAlmuerzo

attach(muestra_290)
precioalmuerzo <- muestra_290$V7_PrecioAlmuerzo

#prueba de normalidad
library(nortest)
lillie.test( x = precioalmuerzo)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  precioalmuerzo
## D = 0.061962, p-value = 0.009161
cvm.test (precioalmuerzo)
## 
##  Cramer-von Mises normality test
## 
## data:  precioalmuerzo
## W = 0.28117, p-value = 0.0005446
#Aunque en ambas pruebas se evidencia que los muestra_290 no siguen una distribución normal por ser el p-value menor a 0.10, igual se procede con la prueba T.Test porque la muestra es de 290 muestra_290

respuesta17<- t.test(x=precioalmuerzo, conf.level=0.95)$conf.int
respuesta17
## [1] 22020.83 23084.51
## attr(,"conf.level")
## [1] 0.95
cat("Con una confianza del 95% se estima que el promedio del precio del almuerzo está entre", respuesta17)
## Con una confianza del 95% se estima que el promedio del precio del almuerzo está entre 22020.83 23084.51

18) IC 95% para la proporción de quienes recomiendan (V3_Recomienda=‘Si’).

attach(muestra_290)
reco <- muestra_290$V3_Recomienda

n_si <- sum(reco == "Si")

respuesta18<- prop.test(x=n_si, n=290, conf.level=0.95)$conf.int
respuesta18
## [1] 0.00000000 0.01629641
## attr(,"conf.level")
## [1] 0.95
cat("Con una confianza del 95% la proporcion de quienes recomiendan Si está entre el 38,7% y el 50,4%")
## Con una confianza del 95% la proporcion de quienes recomiendan Si está entre el 38,7% y el 50,4%

19) IC 95% para la varianza de V11_Ingresos

library(stests)
attach(muestra_290)
ing <- muestra_290$V11_Ingresos

lillie.test(ing)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  ing
## D = 0.19238, p-value < 2.2e-16
ad.test(ing)
## 
##  Anderson-Darling normality test
## 
## data:  ing
## A = 15.853, p-value < 2.2e-16
cat ("El test de Lilliefors (p < 2.2e−16) y el test de Anderson–Darling (p < 2.2e−16) indican que los ingresos no siguen una distribución normal. Por lo tanto, no se cumple el supuesto de normalidad requerido para los intervalos de confianza basados en la distribución chi-cuadrado.")
## El test de Lilliefors (p < 2.2e−16) y el test de Anderson–Darling (p < 2.2e−16) indican que los ingresos no siguen una distribución normal. Por lo tanto, no se cumple el supuesto de normalidad requerido para los intervalos de confianza basados en la distribución chi-cuadrado.

20) Prueba t (dos colas) para H0: media Precio = 22000. (No olvide plantear todos los pasos)

\[ \small H_0: \mu \space precio= 22000\\ \small H_1: \mu \space precio \neq 22000\\ \]

attach(muestra_290)

muestra  <- muestra_290$V7_PrecioAlmuerzo
# Ahora se usará t.test para desarrollar la prueba de hipótesis

resp20 <- t.test(muestra, alternative='two.sided', conf.level=0.95, mu=22000)

resp20
## 
##  One Sample t-test
## 
## data:  muestra
## t = 2.0453, df = 289, p-value = 0.04173
## alternative hypothesis: true mean is not equal to 22000
## 95 percent confidence interval:
##  22020.83 23084.51
## sample estimates:
## mean of x 
##  22552.67
cat("
El estadístico que arroja la prueba es t = 2.0453
Los grados de libertad que arroja la prueba es df = 289, es decir que la muestra tiene 290 muestra_290.
Como el p~value es 0.03, se rechaza la hipótesis nula")
## 
## El estadístico que arroja la prueba es t = 2.0453
## Los grados de libertad que arroja la prueba es df = 289, es decir que la muestra tiene 290 muestra_290.
## Como el p~value es 0.03, se rechaza la hipótesis nula

21) Chi-cuadrado de independencia entre V4_Atencion_cat y V1_SitioZona.

attach(muestra_290)
tabla21 <- table(muestra_290$V4_Atencion_cat, muestra_290$V1_SitioZona)
tabla21
##            
##             Zona Centro Zona Norte Zona Sur
##   Buena              45         26       22
##   Excelente          21         22       16
##   Mala               29         13       13
##   Regular            39         26       18
resp21 <- chisq.test(tabla21)
resp21
## 
##  Pearson's Chi-squared test
## 
## data:  tabla21
## X-squared = 4.4464, df = 6, p-value = 0.6165
cat ("Con un p-value de 0.6165 (>0.05), no se rechaza la hipótesis nula de independencia entre V4_Atención_cat y V1_SitioZona. Esto quiere decir que no existe una asociación significativa entre la zona y la atención. Es decir, la percepción de atención es similar en todas las zonas.")
## Con un p-value de 0.6165 (>0.05), no se rechaza la hipótesis nula de independencia entre V4_Atención_cat y V1_SitioZona. Esto quiere decir que no existe una asociación significativa entre la zona y la atención. Es decir, la percepción de atención es similar en todas las zonas.

22) Prueba de bondad de ajuste: ¿Precio sigue una distribución normal? (usar como estadística Kolmogorov- Smirnov vs Shapiro-wilk en submuestra).

#H0: El precie sigue una distribución

precio <- muestra_290$V7_PrecioAlmuerzo

shapiro.test(precio)
## 
##  Shapiro-Wilk normality test
## 
## data:  precio
## W = 0.97288, p-value = 2.667e-05
lillie.test(precio)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  precio
## D = 0.061962, p-value = 0.009161
cat("Según ambas pruebas de  Kolmogorov- Smirnov vs Shapiro-wilk, donde la primera tiene como valor p 0.009 y la segunda un valor p de 0.00002667, se evidencia que la distribución del precio no es normal")
## Según ambas pruebas de  Kolmogorov- Smirnov vs Shapiro-wilk, donde la primera tiene como valor p 0.009 y la segunda un valor p de 0.00002667, se evidencia que la distribución del precio no es normal

SECCIÓN E: REGRESIÓN Y ASOCIACIÓN

(23)

modelo_simple <- lm(V7_PrecioAlmuerzo ~ V9_Edad, data = muestra_290 )
summary(modelo_simple)
## 
## Call:
## lm(formula = V7_PrecioAlmuerzo ~ V9_Edad, data = muestra_290)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -9242.7 -3894.2   283.5  4012.8  9055.0 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 22023.03    1020.23  21.586   <2e-16 ***
## V9_Edad        14.14      26.25   0.538    0.591    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4607 on 288 degrees of freedom
## Multiple R-squared:  0.001006,   Adjusted R-squared:  -0.002463 
## F-statistic: 0.2899 on 1 and 288 DF,  p-value: 0.5907
# Coeficiente de correlación de Pearson
cor_precio_edad <- cor(
  muestra_290 $V7_PrecioAlmuerzo,
  muestra_290 $V9_Edad,
  use = "complete.obs"
)
cor_precio_edad
## [1] 0.03171036
# Coeficiente de determinación (R^2)
r2_simple <- summary(modelo_simple)$r.squared
r2_simple
## [1] 0.001005547

(24)

modelo_multiple <- lm(
  V7_PrecioAlmuerzo ~ V9_Edad + V11_Ingresos + V6_VisitasSemana,
  data = muestra_290 
)
summary(modelo_multiple)
## 
## Call:
## lm(formula = V7_PrecioAlmuerzo ~ V9_Edad + V11_Ingresos + V6_VisitasSemana, 
##     data = muestra_290)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -9547.1 -3388.9   134.3  3018.2 10539.3 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       2.193e+04  1.006e+03  21.804  < 2e-16 ***
## V9_Edad           8.002e+00  2.294e+01   0.349    0.727    
## V11_Ingresos      6.689e-04  9.017e-05   7.418 1.36e-12 ***
## V6_VisitasSemana -7.393e+02  1.252e+02  -5.906 9.90e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4018 on 286 degrees of freedom
## Multiple R-squared:  0.2453, Adjusted R-squared:  0.2374 
## F-statistic: 30.99 on 3 and 286 DF,  p-value: < 2.2e-16
# R^2 y R^2 ajustado
summary(modelo_multiple)$r.squared
## [1] 0.2453435
summary(modelo_multiple)$adj.r.squared
## [1] 0.2374276

(25)

cor_ing_gasto <- cor(
  muestra_290 $V11_Ingresos,
  muestra_290 $V12_Gastos,
  use = "complete.obs"
)
cor_ing_gasto
## [1] 0.9389095
cor_test_ing_gasto <- cor.test(
  muestra_290 $V11_Ingresos,
  muestra_290 $V12_Gastos,
  use = "complete.obs"
)
cor_test_ing_gasto
## 
##  Pearson's product-moment correlation
## 
## data:  muestra_290$V11_Ingresos and muestra_290$V12_Gastos
## t = 46.297, df = 288, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.9236123 0.9512210
## sample estimates:
##       cor 
## 0.9389095

SECCIÓN F: ANÁLISIS DE VARIANZA

(26)

anova_unavia <- aov(V7_PrecioAlmuerzo ~ V1_SitioZona, data = muestra_290 )
summary(anova_unavia)
##               Df    Sum Sq   Mean Sq F value Pr(>F)    
## V1_SitioZona   2 4.719e+09 2.359e+09   483.3 <2e-16 ***
## Residuals    287 1.401e+09 4.881e+06                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# ANOVA de dos vías 
anova_dosvias <- aov(
  V7_PrecioAlmuerzo ~ V1_SitioZona * V4_Atencion_cat,
  data = muestra_290 
)
summary(anova_dosvias)
##                               Df    Sum Sq   Mean Sq F value Pr(>F)    
## V1_SitioZona                   2 4.719e+09 2.359e+09 493.877 <2e-16 ***
## V4_Atencion_cat                3 4.562e+07 1.521e+07   3.183 0.0244 *  
## V1_SitioZona:V4_Atencion_cat   6 2.730e+07 4.550e+06   0.952 0.4579    
## Residuals                    278 1.328e+09 4.777e+06                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1