#install.packages("ggplot2")
library(ggplot2)
#install.packages("lmtest")
library(lmtest)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric

Cargar los datos

lamina <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
diferencia <- c(0.71, 0.67, 1.98, 1.61, 0.67, 1.48, 0.25, 1.44, 1.06, 0.95)
errores <- c(12, 10, 4, 2, 6, 5, 16, 3, 4, 8)

length(lamina)
## [1] 10
length(diferencia)
## [1] 10
length(errores)
## [1] 10
data <- data.frame(Lamina = lamina, Diferencia =diferencia, N_errores = errores)

Descriptivo de los datos

Antes de proceder con el análisis numérico y la interpretación de ello, se proporciona una gráfica como una introducción al comportamiento de los datos. Además, se muestra un resumen del comportamiento de cada una de las variables. En este caso se ha escogido x como las diferencias presentadas, y el y como el Número de errores.

summary(data)
##      Lamina        Diferencia      N_errores   
##  Min.   : 1.00   Min.   :0.250   Min.   : 2.0  
##  1st Qu.: 3.25   1st Qu.:0.680   1st Qu.: 4.0  
##  Median : 5.50   Median :1.005   Median : 5.5  
##  Mean   : 5.50   Mean   :1.082   Mean   : 7.0  
##  3rd Qu.: 7.75   3rd Qu.:1.470   3rd Qu.: 9.5  
##  Max.   :10.00   Max.   :1.980   Max.   :16.0
str(data)
## 'data.frame':    10 obs. of  3 variables:
##  $ Lamina    : num  1 2 3 4 5 6 7 8 9 10
##  $ Diferencia: num  0.71 0.67 1.98 1.61 0.67 1.48 0.25 1.44 1.06 0.95
##  $ N_errores : num  12 10 4 2 6 5 16 3 4 8

Visualización de los datos

ggplot(data = data, mapping = aes(x = Diferencia, y = N_errores)) +
  geom_point(color = "firebrick", size = 2) +
  labs(title  =  'Diagrama de dispersion', x  =  'Diferencias distancias logaritmicas', y = 'N° de errores') +
  theme_bw() +
  theme(plot.title = element_text(hjust = 0.5))

Comprobar supuestos para la elección correcta del coeficiente de correlación

Prueba de normalidad

# Realizar la prueba de normalidad con Shapiro-Wilk
test_result1 <- shapiro.test(data$Diferencia)

# Comprobar si el p-value es mayor o menor que 0.05
if (test_result1$p.value > 0.05) {
  print("La variable Diferencia sigue una distribución normal.")
} else {
  print("La variable Diferencia NO sigue una distribución normal.")
}
## [1] "La variable Diferencia sigue una distribución normal."
# Realizar la prueba de normalidad con Shapiro-Wilk
test_result2 <- shapiro.test(data$N_errores)

# Comprobar si el p-value es mayor o menor que 0.05
if (test_result1$p.value > 0.05) {
  print("La variable N_errores sigue una distribución normal.")
} else {
  print("La variable N_errores NO sigue una distribución normal.")
}
## [1] "La variable N_errores sigue una distribución normal."

Supuesto de linealidad

X <- data$Diferencia
Y <- data$N_errores
ggplot(data = data, aes(x = Diferencia, y = N_errores)) +
  geom_point(aes(color = N_errores)) +
  scale_color_gradient2(low = "blue3", mid = "grey", high = "red") +
  geom_hline(yintercept = 0) +
  geom_segment(aes(xend = Diferencia, yend = 0), alpha = 0.2) +
  labs(title = "Distribucion de los residuos", x = "prediccion modelo",
       y = "residuo") +
  theme_bw() +
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")

Pruebas de Homocedasticidad

X <- data$Diferencia
Y <- data$N_errores
model <- lm(Y ~ X)

# Prueba de Breusch-Pagan para homocedasticidad
bp_test <- bptest(model)

# Imprimir el resultado
if (bp_test$p.value > 0.05) {
  print("Se cumple la homocedasticidad (varianza constante).")
} else {
  print("No se cumple la homocedasticidad (varianza no constante).")
}
## [1] "Se cumple la homocedasticidad (varianza constante)."

Pruebas de independencia

La prueba de Durbin-Watson se utiliza para verificar la independencia de los residuos en un modelo de regresión lineal. Los residuos son las diferencias entre los valores observados y los valores predichos por el modelo. Si los residuos no son independientes, eso sugiere que puede haber algún patrón o correlación temporal o estructural que no se ha capturado por el modelo, lo cual es un problema porque uno de los supuestos de la regresión lineal es que los errores (residuos) deben ser independientes entre sí.

¿Qué mide exactamente? La prueba de Durbin-Watson calcula un valor estadístico (DW) que varía entre 0 y 4:

  • DW cerca de 2: Indica que los residuos no tienen correlación, es decir, son independientes.

  • DW cercano a 0: Indica una fuerte correlación positiva en los residuos, lo que significa que los residuos están “siguiendo un patrón”, probablemente porque hay una variable faltante que debería ser incluida en el modelo.

  • DW cercano a 4: Indica una fuerte correlación negativa en los residuos, es decir, los residuos están alternando de forma sistemática entre valores positivos y negativos.

# Prueba de Durbin-Watson para independencia de los residuos
X <- data$Diferencia
Y <- data$N_errores
model <- lm(Y ~ X)
dw_test <- dwtest(model)

# Imprimir el resultado
if (dw_test$p.value > 0.05) {
  print("Las observaciones son independientes.")
} else {
  print("Las observaciones NO son independientes.")
}
## [1] "Las observaciones son independientes."

¿Cómo saber si es adecuado usar el coeficiente de correlación de Pearson?

Para saber si es adecuado usar el coeficiente de correlación de Pearson, se deben verificar los siguientes supuestos

  1. Linealidad: Las variables X e Y deben tener una relación lineal. Esto se puede evaluar con la correlación de Pearson o mediante una prueba de linealidad. En este caso se ha hecho de manera visual.

  2. Normalidad: Ambas variables deben seguir una distribución normal. Esto se puede verificar con la prueba de Shapiro-Wilk para X y Y.

  3. Homoscedasticidad: Los residuos del modelo de regresión deben tener varianza constante. Esto se evalúa con la prueba de Breusch-Pagan.

  4. Independencia: Los residuos deben ser independientes entre sí. Esto se verifica con la prueba de Durbin-Watson.

Uso del coeficiente de correlación de Pearson

El coeficiente de correlación de Pearson mide la relación lineal entre dos variables numéricas, este coeficiente viene de una covarianza que se estadarizó y toma valores entre -1 y 1:

Siguiendo el explicado en clase se tiene que:

Inferencias:

El cálculo del coeficiente de Pearson se realiza mediante estos pasos:

  1. Calcular las medias de ambas variables, \(X\) e \(Y\).
  2. Obtener las desviaciones de cada valor de \(X\) e \(Y\) respecto a sus medias.
  3. Multiplicar las desviaciones correspondientes de \(X\) y \(Y\), y sumar estos productos para obtener la covarianza no escalada.
  4. Calcular la suma de los cuadrados de las desviaciones de \(X\) y \(Y\).
  5. Dividir la suma de productos de desviaciones entre la raíz cuadrada del producto de las sumas de cuadrados de cada variable.

Matemáticamente, esto se expresa como:

\[ r = \frac{\sum{(X - \bar{X})(Y - \bar{Y})}}{\sqrt{\sum{(X - \bar{X})^2} \cdot \sum{(Y - \bar{Y})^2}}} \]

Los supuestos necesarios para que el coeficiente de Pearson sea adecuado incluyen:

El coeficiente de correlación de Pearson es útil para cuantificar e interpretar la fuerza y dirección de la relación lineal entre dos variables cuando estos supuestos son razonablemente válidos.

#Función manual

# Paso 1: Calcular las medias
mean_x <- mean(data$Diferencia)
mean_y <- mean(data$N_errores)

# Paso 2: Calcular desviaciones respecto a la media
dev_x <- data$Diferencia - mean_x
dev_y <- data$N_errores - mean_y

# Paso 3: Calcular la suma de productos de las desviaciones
sum_product_deviations <- sum(dev_x * dev_y)

# Paso 4: Calcular la suma de cuadrados de cada variable
sum_sq_dev_x <- sum(dev_x^2)
sum_sq_dev_y <- sum(dev_y^2)

# Paso 5: Calcular el coeficiente de correlación de Pearson
correlation <- sum_product_deviations / sqrt(sum_sq_dev_x * sum_sq_dev_y)

# Paso 6: Calcular el estadístico t
n <- length(data$Diferencia)  # Tamaño de la muestra
t_value <- correlation * sqrt((n - 2) / (1 - correlation^2))

# Paso 7: Calcular los grados de libertad
df <- n - 2

# Paso 8: Calcular el p-valor asociado al estadístico t
p_value <- 2 * pt(-abs(t_value), df)

# Paso 9: Calcular el intervalo de confianza
alpha <- 0.05  # Nivel de confianza del 95%
stderr <- sqrt((1 - correlation^2) / (n - 2))
t_critical <- qt(1 - alpha / 2, df)
ci_lower <- correlation - t_critical * stderr
ci_upper <- correlation + t_critical * stderr

# Imprimir los resultados
cat("Correlación producto-momento de Pearson\n")
## Correlación producto-momento de Pearson
cat("datos: x e y\n")
## datos: x e y
cat("t =", t_value, ", grados de libertad =", df, ", valor p =", p_value, "\n")
## t = -4.196713 , grados de libertad = 8 , valor p = 0.003010005
cat("hipótesis alternativa: la correlación verdadera no es igual a 0\n")
## hipótesis alternativa: la correlación verdadera no es igual a 0
cat(paste0("Intervalo de confianza del ", 100 * (1 - alpha), " por ciento:\n"))
## Intervalo de confianza del 95 por ciento:
cat(ci_lower, ci_upper, "\n")
## -1.284901 -0.3735937
cat("estimación de la muestra:\n")
## estimación de la muestra:
cat("cor =", correlation, "\n")
## cor = -0.8292474
#Correlacion de pearson de R
cor.test(data$Diferencia, data$N_errores)
## 
##  Pearson's product-moment correlation
## 
## data:  data$Diferencia and data$N_errores
## t = -4.1967, df = 8, p-value = 0.00301
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.9584511 -0.4177187
## sample estimates:
##        cor 
## -0.8292474

Explicación del output

Datos: $x$ e $y$

Indica que los datos que estás utilizando son las variables \(x\) y \(y\), que son los vectores o columnas con los que estás calculando la correlación.

Valor t

Este es el valor del estadístico \(t\) calculado para la prueba de hipótesis. El valor \(t\) se calcula con la siguiente fórmula:

\[ t = R \times \sqrt{\frac{n - 2}{1 - R^2}} \]

donde \(R\) es el coeficiente de correlación de Pearson, \(R^2\) es el coeficiente de determinación y \(n\) es el tamaño de la muestra. Este valor \(t\) se usa para evaluar la hipótesis nula de que la correlación es 0. \(R\): Coeficiente de correlación: Mide la fuerza y la dirección de la relación lineal entre dos variables. El valor de \(r\) varía entre -1 y +1:

  • \(r = 1\): Correlación positiva perfecta (cuando una variable aumenta, la otra también lo hace en una proporción constante).

  • \(r = -1\): Correlación negativa perfecta (cuando una variable aumenta, la otra disminuye en una proporción constante).

\(R^2\) Coeficiente de determinación: Mide qué tan bien los valores de una variable pueden ser predichos por la otra. Es decir, mide qué tan bien el modelo de regresión lineal explica la variabilidad de la variable dependiente en función de la variable independiente. Varía entre 0 y 1, y según la clase, se estableció que era aceptable si \(R^2 \geq 70\%\).

Grados de libertad (gl)

Los grados de libertad (\(gl\), por sus siglas en inglés) se calculan como \(n - 2\), donde \(n\) es el número de observaciones. En este caso, el tamaño de la muestra es \(n = 10\) (porque \(10 - 2 = 8\)).

P-valor

Este es el p-valor, que indica la probabilidad de obtener un valor de correlación tan extremo como el observado, bajo la suposición de que la correlación verdadera es 0. Un p-valor pequeño (por ejemplo, menor a 0.05) indica que podemos rechazar la hipótesis nula de que la correlación es 0 y aceptar la hipótesis alternativa (es decir, que hay una correlación significativa).

En este caso, el p-valor es 0.003, lo cual es menor que 0.05, lo que indica que la correlación observada es estadísticamente significativa.

Hipótesis alternativa

La hipótesis nula sería que no hay correlación entre las dos variables (es decir, que la correlación es 0). La es que la correlación no es 0, es decir, que existe una relación lineal entre las variables.

Intervalo de confianza del 95%

El intervalo de confianza indica el rango dentro del cual se encuentra el valor verdadero del coeficiente de correlación con un 95% de certeza. En este caso, el intervalo de confianza para el coeficiente de correlación es:

\[ [-1.284901, -0.3735937] \]

Esto significa que, con un 95% de certeza, el coeficiente de correlación verdadero está entre \(-1.28\) y \(-0.37\).

Estimación de la muestra: cor = -0.8292474

Este es el coeficiente de correlación de Pearson calculado a partir de los datos. En este caso, el coeficiente es aproximadamente \(-0.83\). Esto indica una correlación negativa fuerte entre las variables \(x\) y \(y\), es decir, cuando una de las variables aumenta, la otra tiende a disminuir, de manera casi proporcional.

Recta de regresión lineal

# Crear las variables X y Y
X <- data$Diferencia
Y <- data$N_errores

# Calcular las medias de X y Y
mean_X <- mean(X)
mean_Y <- mean(Y)

# Calcular la pendiente (beta_1)
numerador <- sum((X - mean_X) * (Y - mean_Y))  # Suma de (X_i - X_bar)(Y_i - Y_bar)
denominador <- sum((X - mean_X)^2)  # Suma de (X_i - X_bar)^2
beta_1 <- numerador / denominador

# Calcular el intercepto (beta_0)
beta_0 <- mean_Y - beta_1 * mean_X

# Mostrar los coeficientes
cat("Coeficiente de la pendiente (beta_1):", beta_1, "\n")
## Coeficiente de la pendiente (beta_1): -6.953777
cat("Intercepto (beta_0):", beta_0, "\n")
## Intercepto (beta_0): 14.52399
# Calcular los valores predichos
predicciones <- beta_0 + beta_1 * X

# Calcular los residuos
residuos <- Y - predicciones

# Calcular el error estándar residual
residual_std_error <- sqrt(sum(residuos^2) / (length(Y) - 2))

# Calcular R-cuadrado
SST <- sum((Y - mean_Y)^2)  # Suma total de los cuadrados
SSE <- sum(residuos^2)  # Suma de los cuadrados de los errores
R_squared <- 1 - SSE / SST

cat("R-cuadrado:", R_squared, "\n")
## R-cuadrado: 0.6876513
# Calcular el valor de t para la pendiente (beta_1)
t_value <- beta_1 / (residual_std_error / sqrt(sum((X - mean_X)^2)))
cat("Valor t:", t_value, "\n")
## Valor t: -4.196713
# P-valor (usando distribución t)
p_value <- 2 * pt(-abs(t_value), df = length(Y) - 2)
cat("P-valor:", p_value, "\n")
## P-valor: 0.003010005
# Calcular los errores estándar de los coeficientes
SE_beta_1 <- residual_std_error / sqrt(sum((X - mean_X)^2))
SE_beta_0 <- residual_std_error * sqrt(1 / length(Y) + mean_X^2 / sum((X - mean_X)^2))

# Calcular el intervalo de confianza para beta_1 y beta_0 manualmente
alpha <- 0.05
t_critical <- qt(1 - alpha / 2, df = length(Y) - 2)

# Intervalo de confianza para beta_1
ci_beta_1_lower <- beta_1 - t_critical * SE_beta_1
ci_beta_1_upper <- beta_1 + t_critical * SE_beta_1

# Intervalo de confianza para beta_0
ci_beta_0_lower <- beta_0 - t_critical * SE_beta_0
ci_beta_0_upper <- beta_0 + t_critical * SE_beta_0

cat("Intervalo de confianza del 95% para beta_1:", ci_beta_1_lower, "-", ci_beta_1_upper, "\n")
## Intervalo de confianza del 95% para beta_1: -10.77473 - -3.132825
cat("Intervalo de confianza del 95% para beta_0:", ci_beta_0_lower, "-", ci_beta_0_upper, "\n")
## Intervalo de confianza del 95% para beta_0: 9.960068 - 19.08791
# Residuos
cat("Residuos:\n")
## Residuos:
cat("Mínimo:", min(residuos), "\n")
## Mínimo: -3.864956
cat("1er Cuartil:", quantile(residuos, 0.25), "\n")
## 1er Cuartil: -1.465012
cat("Mediana:", median(residuos), "\n")
## Mediana: 0.1085727
cat("3er Cuartil:", quantile(residuos, 0.75), "\n")
## 3er Cuartil: 2.001797
cat("Máximo:", max(residuos), "\n")
## Máximo: 3.244492
cat("\n")
# Mostrar error estándar residual
cat("Error estándar residual:", residual_std_error, "\n")
## Error estándar residual: 2.651009
# R-cuadrado manual
cat("R-cuadrado (manual):", R_squared, "\n")
## R-cuadrado (manual): 0.6876513
#Recta con la función de R
modelo <- lm(N_errores ~ Diferencia, data = data)
summary(modelo)
## 
## Call:
## lm(formula = N_errores ~ Diferencia, data = data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.8650 -1.4650  0.1086  2.0018  3.2445 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   14.524      1.979   7.339 8.08e-05 ***
## Diferencia    -6.954      1.657  -4.197  0.00301 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.651 on 8 degrees of freedom
## Multiple R-squared:  0.6877, Adjusted R-squared:  0.6486 
## F-statistic: 17.61 on 1 and 8 DF,  p-value: 0.00301

Interpretación de los resultados

El modelo de regresión lineal obtenido fue el siguiente:

\[N° errores = 14.524 - 6.954 \times \text{Diferencia}\] esto es \[Y = 14.524-6.954X\]

modelo <- lm(Y ~ X)

# Obtener los coeficientes
beta_0 <- coef(modelo)[1]
beta_1 <- coef(modelo)[2]

# Graficar los datos
plot(X, Y, main="Gráfico de dispersión con la línea de regresión",
     xlab="X", ylab="Y", pch=19)

# Graficar la línea de regresión
abline(modelo, col="red")  # O si prefieres usar la ecuación explícita:
# abline(a = beta_0, b = beta_1, col = "blue")

#line
text(3, 4, paste("Y =", round(beta_0, 2), "+", round(beta_1, 2), "* X"), pos = 4)

  • Intercepto (\(\beta_0 = 14.524\)): El valor estimado del intercepto es 14.524. Esto significa que cuando la variable Diferencia es igual a 0, el valor predicho de N_errores es 14.524.

  • Pendiente (\(\beta_1 = -6.954\)): El coeficiente de la variable Diferencia es -6.954. Esto indica que por cada aumento unitario en Diferencia, el valor de N_errores disminuye en 6.954 unidades. En otras palabras, existe una relación negativa entre Diferencia y N_errores, es decir, a medida que la diferencia aumenta, el número de errores disminuye.

  • Error estándar residual: El error estándar residual es 2.651. Esto indica la cantidad de variabilidad que no ha sido explicada por el modelo de regresión. Un valor más bajo sugiere que el modelo se ajusta mejor a los datos.

  • R-cuadrado (\(R^2 = 0.6877\)): El valor de \(R^2\) es 0.6877, lo que significa que aproximadamente el 68.77% de la variabilidad en el número de errores se puede explicar por la variable Diferencia. El valor relativamente alto sugiere que la variable explicativa tiene una influencia considerable sobre la variable dependiente.

  • Valor t para la pendiente (\(\beta_1\)): El valor t de la pendiente es -4.197, lo que se utiliza para determinar si la pendiente es significativamente diferente de 0. En este caso, el valor t es negativo, lo que refleja una relación inversa entre las dos variables, y el valor p correspondiente es 0.00301, lo que indica que la pendiente es significativamente diferente de 0 a un nivel de significancia de 0.01.

  • Valor p para la pendiente: El valor p de 0.00301 es menor que 0.05, lo que indica que la relación entre Diferencia y N_errores es estadísticamente significativa.

  • Intervalo de confianza del \(95\%\) para \(\beta_1\): El intervalo de confianza del 95% para la pendiente es (-10.775, -3.133). Esto sugiere que con un 95% de confianza, la pendiente real de la regresión está entre -10.775 y -3.133.

  • Intervalo de confianza del \(95\%\) para \(\beta_0\): El intervalo de confianza del 95% para el intercepto es (9.960, 19.088). Esto sugiere que con un 95% de confianza, el intercepto real de la regresión está entre 9.960 y 19.088.

Interpretación de los asteriscos

Los asteriscos (***) que aparecen en el output de R indican el nivel de significancia estadística de los coeficientes en el modelo de regresión. R usa estos asteriscos para mostrar de manera visual qué tan fuerte es la evidencia en contra de la hipótesis nula de que el coeficiente es igual a cero (lo que significa que no hay efecto). Aquí te explico lo que cada cantidad de asteriscos significa:

  • *** (tres asteriscos): El valor p es menor que 0.001. Esto indica que el coeficiente es altamente significativo. Hay una fuerte evidencia para rechazar la hipótesis nula, lo que sugiere que la variable tiene una relación significativa con la variable dependiente.

  • ** (dos asteriscos): El valor p es menor que 0.01 pero mayor que 0.001. También indica que el coeficiente es significativo, pero con menor evidencia en comparación con tres asteriscos.

  • * (un asterisco): El valor p es menor que 0.05 pero mayor que 0.01. Aunque todavía es significativo, la evidencia es más débil.

  • . (un punto): El valor p es menor que 0.1 pero mayor que 0.05. Esto indica que el coeficiente tiene una significancia marginal, es decir, es débilmente significativo.

  • (sin asterisco): El valor p es mayor que 0.1, lo que indica que no hay suficiente evidencia para rechazar la hipótesis nula. En este caso, el coeficiente no es significativo.

En este caso:
El intercepto tiene tres asteriscos (***), lo que significa que es altamente significativo, con un valor p de 8.08e-05, mucho menor que 0.001.

  • La variable Diferencia tiene dos asteriscos (**), lo que indica que también es significativa, pero con un valor p de 0.00301, que es menor que 0.01 pero mayor que 0.001.

Conclusión

El modelo de regresión lineal muestra una relación negativa significativa entre la variable Diferencia y el número de errores (N° de errores), con un coeficiente de pendiente de -6.954, lo que indica que a medida que la diferencia entre distancias aumenta, el número de errores disminuye. Este hallazgo es estadísticamente significativo, con un valor p de 0.003, y el modelo tiene un buen ajuste, explicando aproximadamente el 69% de la variabilidad de los datos (R² = 0.6877). Los coeficientes son confiables, ya que sus intervalos de confianza no incluyen 0, y el error estándar residual es de 2.651, lo que sugiere un margen de error razonable en las predicciones.

Mismo problema en el caso euclideano

En la evaluación de este caso ya no se realizarán de manera manual los cálculos, pues hemos evidenciado con el caso anterior que los resultados calculados manualmente van acorde a los realizados por las funciones de R, además, ya se explicó detalladamente el uso, significado e importancia de las cosas que se usan. Dicho esto, procedamos nuevamente a realizar el mismo desarrollo usando las funciones de R.

lamina <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
diferencia <- c(9.98, 9.97, 9.93, 9.92, 9.99, 9.99, 9.93, 9.93, 9.97, 8.00)
errores <- c(12, 10, 4, 2, 6, 5, 16, 3, 4, 8)

length(lamina)
## [1] 10
length(diferencia)
## [1] 10
length(errores)
## [1] 10
data <- data.frame(Lamina = lamina, Diferencia =diferencia, N_errores = errores)
#Descriptivo
summary(data)
##      Lamina        Diferencia      N_errores   
##  Min.   : 1.00   Min.   :8.000   Min.   : 2.0  
##  1st Qu.: 3.25   1st Qu.:9.930   1st Qu.: 4.0  
##  Median : 5.50   Median :9.950   Median : 5.5  
##  Mean   : 5.50   Mean   :9.761   Mean   : 7.0  
##  3rd Qu.: 7.75   3rd Qu.:9.977   3rd Qu.: 9.5  
##  Max.   :10.00   Max.   :9.990   Max.   :16.0
str(data)
## 'data.frame':    10 obs. of  3 variables:
##  $ Lamina    : num  1 2 3 4 5 6 7 8 9 10
##  $ Diferencia: num  9.98 9.97 9.93 9.92 9.99 9.99 9.93 9.93 9.97 8
##  $ N_errores : num  12 10 4 2 6 5 16 3 4 8
ggplot(data = data, mapping = aes(x = Diferencia, y = N_errores)) +
  geom_point(color = "firebrick", size = 2) +
  labs(title  =  'Diagrama de dispersion logaritmico', x  =  'diferencias') +
  theme_bw() +
  theme(plot.title = element_text(hjust = 0.5))

Prueba de normalidad

# Realizar la prueba de normalidad con Shapiro-Wilk
test_result1 <- shapiro.test(data$Diferencia)

# Comprobar si el p-value es mayor o menor que 0.05
if (test_result1$p.value > 0.05) {
  print("La variable Diferencia sigue una distribución normal.")
} else {
  print("La variable Diferencia NO sigue una distribución normal.")
}
## [1] "La variable Diferencia NO sigue una distribución normal."
# Realizar la prueba de normalidad con Shapiro-Wilk
test_result2 <- shapiro.test(data$N_errores)

# Comprobar si el p-value es mayor o menor que 0.05
if (test_result1$p.value > 0.05) {
  print("La variable N_errores sigue una distribución normal.")
} else {
  print("La variable N_errores NO sigue una distribución normal.")
}
## [1] "La variable N_errores NO sigue una distribución normal."

Supuesto de linealidad

X <- data$Diferencia
Y <- data$N_errores
ggplot(data = data, aes(x = Diferencia, y = N_errores)) +
  geom_point(aes(color = N_errores)) +
  scale_color_gradient2(low = "blue3", mid = "grey", high = "red") +
  geom_hline(yintercept = 0) +
  geom_segment(aes(xend = Diferencia, yend = 0), alpha = 0.2) +
  labs(title = "Distribucion de los residuos", x = "prediccion modelo",
       y = "residuo") +
  theme_bw() +
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")

Pruebas de Homocedasticidad

X <- data$Diferencia
Y <- data$N_errores
model <- lm(Y ~ X)

# Prueba de Breusch-Pagan para homocedasticidad
bp_test <- bptest(model)

# Imprimir el resultado
if (bp_test$p.value > 0.05) {
  print("Se cumple la homocedasticidad (varianza constante).")
} else {
  print("No se cumple la homocedasticidad (varianza no constante).")
}
## [1] "Se cumple la homocedasticidad (varianza constante)."

Pruebas de independencia

# Prueba de Durbin-Watson para independencia de los residuos
X <- data$Diferencia
Y <- data$N_errores
model <- lm(Y ~ X)
dw_test <- dwtest(model)

# Imprimir el resultado
if (dw_test$p.value > 0.05) {
  print("Las observaciones son independientes.")
} else {
  print("Las observaciones NO son independientes.")
}
## [1] "Las observaciones son independientes."
#Correlacion de pearson con R
cor.test(data$Diferencia, data$N_errores, method = "spearman")
## Warning in cor.test.default(data$Diferencia, data$N_errores, method =
## "spearman"): Cannot compute exact p-value with ties
## 
##  Spearman's rank correlation rho
## 
## data:  data$Diferencia and data$N_errores
## S = 124.64, p-value = 0.4958
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##       rho 
## 0.2446114
#Modelo lineal
modelo_lineal <- lm(data$N_errores ~ data$Diferencia, data = data)
summary(modelo_lineal)
## 
## Call:
## lm(formula = data$N_errores ~ data$Diferencia, data = data)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -4.917 -2.906 -1.380  2.351  9.089 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)
## (Intercept)      12.1176    24.8983   0.487    0.640
## data$Diferencia  -0.5243     2.5462  -0.206    0.842
## 
## Residual standard error: 4.731 on 8 degrees of freedom
## Multiple R-squared:  0.005272,   Adjusted R-squared:  -0.1191 
## F-statistic: 0.0424 on 1 and 8 DF,  p-value: 0.842

Interpretación

El modelo lineal no parece ser adecuado para estos datos, ya que los resultados del ajuste no son significativos:

\[Y=12.12−0.5243X\]

modelo <- lm(Y ~ X)

# Obtener los coeficientes
beta_0 <- coef(modelo)[1]
beta_1 <- coef(modelo)[2]

# Graficar los datos
plot(X, Y, main="Gráfico de dispersión con la línea de regresión",
     xlab="X", ylab="Y", pch=19)

# Graficar la línea de regresión
abline(modelo, col="red")  # O si prefieres usar la ecuación explícita:
# abline(a = beta_0, b = beta_1, col = "blue")

# También puedes añadir la ecuación de la línea en el gráfico
text(3, 4, paste("Y =", round(beta_0, 2), "+", round(beta_1, 2), "* X"), pos = 4)

  • Intercepto: El valor estimado del intercepto es 12.12 (con un error estándar de 24.90), lo cual tiene un valor t de 0.49 y un p-valor de 0.64, lo que indica que el intercepto no es significativo.

  • Pendiente: La pendiente estimada es -0.5243 (con un error estándar de 2.5462), con un valor t de -0.206 y un p-valor de 0.842, lo que también sugiere que la pendiente no es significativamente diferente de cero.

  • R-cuadrado: El R-cuadrado es 0.0053, lo que indica que el modelo lineal no explica prácticamente nada de la variabilidad en los datos. Esto se ve reflejado en el R-cuadrado ajustado de -0.1191, que incluso es negativo, lo cual es indicativo de que el modelo no es adecuado para los datos.

  • Estadístico F: El estadístico F es 0.0424 con un p-valor de 0.842, lo que indica que el modelo no tiene capacidad predictiva significativa.

Dado el bajo valor de R-cuadrado y los p-valores altos, podemos concluir que el modelo lineal no es adecuado para modelar la relación entre las variables Diferencia y N_errores en este caso.

Correlación de Spearman:

El modelo de correlación de Spearman, usado debido a que las variables no siguen una distribución normal, también muestra resultados poco concluyentes:

  • Coeficiente de Spearman (rho): El valor estimado de la correlación es 0.2446, lo que sugiere una correlación positiva débil entre las dos variables.

  • Valor p: El p-valor es 0.4958, lo que indica que la correlación no es significativamente diferente de cero. Por lo tanto, no se puede concluir que exista una relación monotónica significativa entre las variables Diferencia y N_errores en este caso.

Conclusión final (comparativa)

En comparación entre los dos modelos, el modelo logarítmico mostró una relación estadísticamente significativa entre las variables, con un coeficiente de correlación de Pearson de −0.829, lo que indica una fuerte correlación negativa entre la diferencia y el número de errores. Además, el p-valor asociado a la pendiente (p=0.003) mostró que esta relación es significativa. En cambio, el modelo lineal con las distancias euclídeas no presentó una relación significativa, ya que el coeficiente de la pendiente (−0.5243) no es estadísticamente significativo (p=0.842), lo que sugiere que la diferencia no tiene un impacto claro sobre el número de errores en este modelo. En términos de ajuste del modelo, el modelo logarítmico tiene un mejor valor de \(R^2=0.6877\), lo que significa que puede explicar una mayor proporción de la variabilidad en los errores en comparación con el modelo lineal, que tiene un muy bajo (\(R^2=0.0053\)).

Se concluye entonces que el modelo logarítmico es más adecuado para expresar la relación entre las diferencias y los errores, ya que muestra una correlación significativa y un mejor ajuste del modelo, mientras que el modelo lineal con distancias euclídeas no proporciona resultados concluyentes ni explicativos de la variabilidad observada.