Codigo


library(readr)
library(dplyr)
library(tidyr)
library(stringr)
library(ggplot2)

url <- "https://docs.google.com/spreadsheets/d/e/2PACX-1vQgvFxytN5X9ThquAMpNGY7B3_kIQZY3o1nmq9OJSh0dToodBnsdgl6tpnvumGbd3I3eEy_t29ier36/pub?output=csv"

df <- read_csv(url, show_col_types = FALSE)

df_long <- df %>%
  pivot_longer(
    cols = 4:9,                  # <- tus preguntas de cantidad por precio
    names_to = "pregunta",
    values_to = "cantidad_raw"
  ) %>%
  mutate(
    # saca el número del precio desde el texto de la columna
    precio = as.numeric(str_extract(pregunta, "\\d+")),
    cantidad = parse_number(as.character(cantidad_raw), locale = locale(decimal_mark = ",", grouping_mark = "."))
  ) %>%
  filter(!is.na(precio), !is.na(cantidad))
Revisión rápida

cat("\n=== Resumen df_long ===\n") print(summary(df_long[, c("precio","cantidad")]))
Gráfico + ajuste lineal

ggplot(df_long, aes(x = precio, y = cantidad)) +
  geom_point() +
  geom_smooth(method = "lm", se = TRUE) +
  labs(title = "Cantidad demandada vs Precio (Galleta)",
       x = "Precio (COP)", y = "Cantidad")
Regresión Q = b0 + b1*P}

m <- lm(cantidad ~ precio, data = df_long) cat("\n=== REGRESIÓN ===\n") print(summary(m))
Correlación

corr <- cor(df_long$precio, df_long$cantidad, use = "complete.obs")
cat("\n=== CORRELACIÓN ===\n")
print(corr)
Elasticidad en el promedio: E = b1*(Pbar/Qbar)

b1 <- coef(m)[["precio"]]
Pbar <- mean(df_long$precio)
Qbar <- mean(df_long$cantidad)
E <- b1 * (Pbar / Qbar)

cat("\n=== ELASTICIDAD ===\n")
cat("b1 =", b1, "\nPbar =", Pbar, "\nQbar =", Qbar, "\nE =", E, "\n")