library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.4.3
## Warning: package 'ggplot2' was built under R version 4.4.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.2 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
Los siguientes datos representan los gastos anuales en
publicidad
x (en millones de pesos) y las ventas
y (en millones de pesos):.
df <- tibble(
publicidad = c(4.17,10.04,6.02,1.52,4.81,7.70,
3.63,4.65,2.97,1.57,0.82,1.57,
6.09,3.08,1.76,3.09,4.18),
ventas = c(96.97,154.70,151.61,163.92,147.82,141.77,
179.18,171.81,200.23,125.19,120.49,98.61,
196.67,289.59,105.71,275.97,95.83)
)
n <- nrow(df); n
## [1] 17
##Diagrama de dispersion
df %>%
ggplot(aes(x = publicidad, y = ventas)) +
geom_point(color="blue", size=3) +
geom_smooth(formula='y~x', method="lm", se=TRUE, color="red") +
labs(title="Relación entre gastos en publicidad y ventas",
x="Publicidad (millones de pesos)", y="Ventas (millones de pesos)") +
theme_bw()
##Coeficiente de correlación de Pearson
x <- df$publicidad; y <- df$ventas
r <- cor(x, y, method="pearson")
r
## [1] 0.05999696
##Prueba de hipótesis H0:ρ=0 vs H1:ρ≠0
gl <- n-2
t0 <- r * sqrt(gl) / sqrt(1-r^2)
p_val <- 2 * pt(-abs(t0), df=gl)
c(t0=t0, gl=gl, p_val=p_val)
## t0 gl p_val
## 0.2327866 15.0000000 0.8190737
No existe evidencia estadísticamente significativa de correlación lineal entre publicidad y ventas.
##Intervalo de confianza del 95%
gl <- n-2
t0 <- r * sqrt(gl) / sqrt(1-r^2)
p_val <- 2 * pt(-abs(t0), df=gl)
c(t0=t0, gl=gl, p_val=p_val)
## t0 gl p_val
## 0.2327866 15.0000000 0.8190737
incluye valores negativos y positivos (de -0.43 a 0.53), confirmando la ausencia de evidencia clara de relación lineal
##Conclusion Los gastos en publicidad y las ventas en este conjunto de datos no presentan correlación lineal significativa
Los siguientes datos representan el número
x de proyectos presentados el año pasado por 12 universidades privadas y
la ayuda recibida
y (en millones de pesos) para la ejecución de estos proyectos:
df <- tibble(
proyectos = c(15.7,17.2,13.8,24.2,15.0,12.7,13.8,18.7,10.8,11.8,25.4,17.2),
ayudas = c(4,3,6,5,3,12,5,1,12,11,2,4)
)
n <- nrow(df); n
## [1] 12
##Diagrama de dispersion
df %>%
ggplot(aes(x = proyectos, y = ayudas)) +
geom_point(size=3, color="blue") +
geom_smooth(formula = 'y~x', method = "lm", se=TRUE, color="red") +
labs(title="Proyectos vs Ayudas",
x="Número de proyectos",
y="Ayudas (millones de pesos)") +
theme_bw()
##Coeficiente de correlación
r <- cor(df$proyectos, df$ayudas, method="pearson")
r
## [1] -0.6675173
Existe una correlación moderada y negativa: a más proyectos, menores ayudas.
##Prueba de hipótesis bilateral
gl <- n - 2
t0 <- r * sqrt(gl) / sqrt(1 - r^2)
pval <- 2 * pt(-abs(t0), df=gl)
c(t=t0, gl=gl, p=pval)
## t gl p
## -2.83493343 10.00000000 0.01770152
Como p<0.05 se rechaza H0 El número de proyectos y las ayudas están correlacionads linealmente
##Prueba unilateral
pval_uni <- 1 - pt(t0, df=gl) # prueba unilateral hacia la derecha
pval_uni
## [1] 0.9911492
No hay evidencia de que la correlación sea positiva; por el contrario, los datos muestran una relación negativa.
Los siguientes datos se obtienen en un estudio de la relación entre
el peso
x (en kilogramos) y el volumen
y (en centímetros cúbicos) de un tipo de recipiente:
————————————————————————
df <- tibble(
peso = c(5.52,3.21,4.32,2.31,4.30,3.71,2.75,2.15,4.41),
volumen = c(36.5,27.2,27.7,28.3,30.3,29.7,29.5,26.3,32.2)
)
n <- nrow(df); n
## [1] 9
##Diagrama de dispersion
df %>%
ggplot(aes(x = peso, y = volumen)) +
geom_point(size=3, color="blue") +
geom_smooth(formula='y~x', method="lm", se=TRUE, color="red") +
labs(title="Relación entre peso y volumen",
x="Peso (kg)", y="Volumen (cm³)") +
theme_bw()
##Coeficiente de correlación
r <- cor(df$peso, df$volumen, method="pearson")
r
## [1] 0.7923075
##Prueba de hipótesis unilateral
gl <- n - 2
t0 <- r * sqrt(gl) / sqrt(1 - r^2)
pval <- 1 - pt(t0, df=gl) # unilateral hacia la derecha
c(t=t0, gl=gl, p=pval)
## t gl p
## 3.435786070 7.000000000 0.005449651
Com0 p<0.01, se rechaza H0 el peso y el volumen están positivamente correlacionados.
##Porcentaje de variación
r2 <- r^2 * 100
r2
## [1] 62.77512
el 62.8% de la variación en el volumen de los recipientes se explica linealmente por el peso.
Se ha seleccionado una muestra aleatoria de 12 estudiantes de bachillerato que han repetido el séptimo grado este año y, para cada uno, se ha anotado el promedio global de las calificaciones de todas las asignaturas, tanto el de este año ( y ) como el del año pasado ( x ): ————————————————————————
df <- tibble(
x = c(65,55,70,65,70,55,70,50,55,65,50,55), # promedio año pasado
y = c(90,85,87,94,98,81,91,76,74,85,74,76) # promedio este año
)
n <- nrow(df); n
## [1] 12
##Diagrama de dispersion
df %>%
ggplot(aes(x=x, y=y)) +
geom_point(size=3, color="blue") +
geom_smooth(formula='y~x', method="lm", se=TRUE, color="red") +
labs(title="Promedios año pasado (x) vs año actual (y)",
x="Promedio año pasado", y="Promedio año actual") +
theme_bw()
##Coeficiente de correlación
r <- cor(df$x, df$y, method="pearson")
r
## [1] 0.8624546
##Prueba de hipótesis unilateral
rho0 <- 0.5
z_obs <- (atanh(r) - atanh(rho0)) * sqrt(n - 3)
pval <- 1 - pnorm(z_obs) # unilateral hacia la derecha
c(Z=z_obs, pval=pval)
## Z pval
## 2.26062663 0.01189119
se rechaza la hipótesis de que p=0.5. la correlación poblacional es mayor a 0.5.
Los siguientes datos representan el tiempo de vida
x de un bombillo de marca A (en horas), así como el tiempo de vida
y de un bombillo de marca B (en minutos):
df <- tibble(
A_horas = c(4200,3600,3750,3675,4050,2770,4870,4500,3450,2700,3750,3300),
B_min = c(370,340,375,310,350,200,400,375,285,225,345,285)
)
n <- nrow(df); n
## [1] 12
##Coeficiente de correlación
r <- cor(df$A_horas, df$B_min, method="pearson")
r
## [1] 0.9231564
existe una correlación positiva muy fuerte entre los tiempos de vida de ambas marcas.
##Invariancia de la correlación
Si se intercambian las variables el coeficiente de correlación no cambia: sigue siendo r≈0.953
Si se convierte y de minutos a horas el coeficiente tampoco cambia porque la correlación es invariante ante transformaciones lineales
##Gráficas de probabilidad normal
# Gráfico normalidad Marca A
qqnorm(df$A_horas, main="Q-Q plot Marca A (horas)")
qqline(df$A_horas, col="red")
# Gráfico normalidad Marca B
qqnorm(df$B_min, main="Q-Q plot Marca B (minutos)")
qqline(df$B_min, col="red")
##Prueba de hipótesis
gl <- n - 2
t0 <- r * sqrt(gl) / sqrt(1 - r^2)
pval <- 2 * pt(-abs(t0), df = gl)
c(t = t0, gl = gl, p = pval)
## t gl p
## 7.593888e+00 1.000000e+01 1.852845e-05
Decisión: Como p<0.05, se rechaza H0 Hay correlación lineal entre el tiempo de vida de ambas marcas.
Se muestran el peso y la presión sistólica sanguínea (BP) de 26 hombres seleccionados al azar, en el grupo de edades de 25 a 30 años. Suponer que el peso y la presión sanguínea tienen distribución normal conjunta.
df <- tibble(
peso = c(165,167,180,155,212,175,190,210,200,149,158,169,170,
172,159,168,174,183,215,195,180,143,240,235,192,187),
bp = c(130,133,150,128,151,146,150,140,148,125,133,135,150,
153,128,132,149,158,150,163,156,124,170,165,160,159)
)
n <- nrow(df); n
## [1] 26
##Diagrama de dispersión
df %>%
ggplot(aes(x = peso, y = bp)) +
geom_point(size=3, color="blue") +
geom_smooth(formula='y~x', method="lm", se=TRUE, color="red") +
labs(title="Peso vs Presión sistólica",
x="Peso (lbs)", y="BP sistólica (mmHg)") +
theme_bw()
##Coeficiente de correlación
r <- cor(df$peso, df$bp, method="pearson")
r
## [1] 0.7734903
existe una correlación positiva fuerte entre peso y presión sistólica
##Prueba de hipótesis
gl <- n - 2
t0 <- r * sqrt(gl) / sqrt(1 - r^2)
pval <- 2 * pt(-abs(t0), df = gl)
c(t=t0, gl=gl, p=pval)
## t gl p
## 5.978644e+00 2.400000e+01 3.591105e-06
Como p<0.05, se rechaza H0 correlación lineal positiva entre peso y presión.
##Prueba de hipótesis
rho0 <- 0.6
z_obs <- (atanh(r) - atanh(rho0)) * sqrt(n - 3)
pval2 <- 2 * (1 - pnorm(abs(z_obs)))
c(Z=z_obs, pval=pval2)
## Z pval
## 1.6104946 0.1072899
Como p>0.05, no se rechaza H0
No hay evidencia suficiente para afirmar que ρ difiere de 0.6.
##Intervalo de confianza al 95% para p
z0 <- atanh(r)
se_z <- 1 / sqrt(n - 3)
z975 <- qnorm(0.975)
ci_r <- tanh(c(z0 - z975*se_z, z0 + z975*se_z))
ci_r
## [1] 0.5513214 0.8932215
la correlación poblacional es positiva y bastante alta.