###Propiedades de los estimadores y prueba de significancia de la regresión lineal simple Aplicación a la relación entre la presión arterial diastólica y sistólica en pacientes con diabetes.
La regresión lineal simple es una técnica estadística utilizada para modelar la relación entre una variable respuesta y una variable explicativa. Su objetivo es cuantificar dicha relación, evaluar su significancia estadística y generar modelos predictivos.
En este estudio se analiza la relación entre la presión arterial diastólica (dbp) y la presión arterial sistólica (sbp) en pacientes con diabetes mediante mínimos cuadrados ordinarios, ANOVA y comparación de modelos. ### 2. ANÁLISIS EXPLORATORIO
library(haven)
Diabetes <- read_sav("C:/Users/aidas/Downloads/Diabetes.sav")
View(Diabetes)
str(Diabetes)
## tibble [149 × 9] (S3: tbl_df/tbl/data.frame)
## $ numpacie: num [1:149] 1 4 6 7 10 12 16 22 28 29 ...
## ..- attr(*, "label")= chr "Número de identificación del paciente en el estudio"
## ..- attr(*, "format.spss")= chr "F3.0"
## $ edat : num [1:149] 44 47 47 50 49 54 48 40 38 43 ...
## ..- attr(*, "label")= chr "Edad a la entrada en el estudio"
## ..- attr(*, "format.spss")= chr "F2.0"
## $ imc : num [1:149] 34.2 37.9 33.1 36.5 34.1 42.9 25.3 43.9 23.7 24.8 ...
## ..- attr(*, "label")= chr "Índice de masa corporal"
## ..- attr(*, "format.spss")= chr "F4.1"
## $ edatdiag: num [1:149] 41 45 44 48 45 43 48 34 28 43 ...
## ..- attr(*, "label")= chr "Edad a la que se diagnóstico la diabetes"
## ..- attr(*, "format.spss")= chr "F2.0"
## $ tabac : dbl+lbl [1:149] 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...
## ..@ label : chr "Hábito tabáquico"
## ..@ format.spss: chr "F1.0"
## ..@ labels : Named num [1:3] 0 1 2
## .. ..- attr(*, "names")= chr [1:3] "No fumador" "Ex fumador" "Fumador"
## $ sbp : num [1:149] 132 128 156 140 102 128 120 122 102 134 ...
## ..- attr(*, "label")= chr "Presión arterial sistólica"
## ..- attr(*, "format.spss")= chr "F3.0"
## $ dbp : num [1:149] 96 76 94 86 68 74 68 92 60 80 ...
## ..- attr(*, "label")= chr "Presión arterial diastólica"
## ..- attr(*, "format.spss")= chr "F3.0"
## $ ecg : dbl+lbl [1:149] 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 3, 1, ...
## ..@ label : chr "Electrocardiograma"
## ..@ format.spss: chr "F1.0"
## ..@ labels : Named num [1:3] 1 2 3
## .. ..- attr(*, "names")= chr [1:3] "Normal" "Frontera" "Anormal"
## $ chd : dbl+lbl [1:149] 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, ...
## ..@ label : chr "Antecedentes coronarios"
## ..@ format.spss: chr "F1.0"
## ..@ labels : Named num [1:2] 0 1
## .. ..- attr(*, "names")= chr [1:2] "No" "Si"
summary(Diabetes)
## numpacie edat imc edatdiag
## Min. : 1.00 Min. :31.00 Min. :18.20 Min. :26.00
## 1st Qu.: 38.00 1st Qu.:43.00 1st Qu.:26.60 1st Qu.:38.00
## Median : 75.00 Median :50.00 Median :31.20 Median :45.00
## Mean : 75.01 Mean :52.17 Mean :31.78 Mean :45.99
## 3rd Qu.:112.00 3rd Qu.:60.00 3rd Qu.:35.20 3rd Qu.:53.00
## Max. :149.00 Max. :86.00 Max. :59.70 Max. :81.00
## tabac sbp dbp ecg
## Min. :0.0000 Min. : 98.0 Min. : 58 Min. :1.000
## 1st Qu.:0.0000 1st Qu.:124.0 1st Qu.: 74 1st Qu.:1.000
## Median :1.0000 Median :138.0 Median : 80 Median :1.000
## Mean :0.9597 Mean :139.1 Mean : 80 Mean :1.329
## 3rd Qu.:2.0000 3rd Qu.:152.0 3rd Qu.: 88 3rd Qu.:2.000
## Max. :2.0000 Max. :222.0 Max. :108 Max. :3.000
## chd
## Min. :0.0000
## 1st Qu.:0.0000
## Median :0.0000
## Mean :0.3356
## 3rd Qu.:1.0000
## Max. :1.0000
library(summarytools)
## Warning: package 'summarytools' was built under R version 4.5.3
view(dfSummary(Diabetes))
## Switching method to 'browser'
## Output file written: C:\Users\aidas\AppData\Local\Temp\RtmpaKqfeJ\filedb089e13c2.html
par(mfrow= c (1,2))
hist(Diabetes$sbp, col = "blue")
boxplot(Diabetes$sbp, col = "blue", horizontal = T)
library(PerformanceAnalytics)
## Warning: package 'PerformanceAnalytics' was built under R version 4.5.3
## Cargando paquete requerido: xts
## Warning: package 'xts' was built under R version 4.5.3
## Cargando paquete requerido: zoo
## Warning: package 'zoo' was built under R version 4.5.3
##
## Adjuntando el paquete: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
##
## Adjuntando el paquete: 'PerformanceAnalytics'
## The following object is masked from 'package:graphics':
##
## legend
chart.Correlation(Diabetes)
La matriz de correlación de Pearson permitió identificar las variables con mayor asociación lineal con la presión arterial sistólica (SBP). Para este estudio se seleccionó la presión arterial diastólica (DBP), ya que presentó la correlación más alta y estadísticamente significativa (r=0.644, p<0.05). Este resultado sugiere una relación positiva moderada-fuerte entre ambas variables, justificando su utilización en el modelo de regresión lineal simple.
###Gráfico de dispersión
plot(Diabetes$dbp,
Diabetes$sbp,
pch=19,
xlab="Presión Diastólica (dbp)",
ylab="Presión Sistólica (sbp)",
main="Relación entre presión diastólica y sistólica")
El gráfico permite visualizar la relación entre las variables.
Una tendencia creciente en la nube de puntos sugiere una posible relación lineal positiva.
dim(Diabetes)
## [1] 149 9
Cuando la muestra es mayor de 50 se utiliza la prueba se kolmogorov
###Antes de ajustar un modelo es conveniente evaluar la intensidad de la asociación lineal.
Hipotesis nula: Los datos correspondientes a la presiòn arterial sistolica (sbp) se ajustan a una distribuciòn normal.
Hipotesis alternativa: (sbp) no se ajustan a una distribuciòn normal
ks.test(Diabetes$sbp, "pnorm", mean(Diabetes$sbp), sd(Diabetes$sbp))
## Warning in ks.test.default(Diabetes$sbp, "pnorm", mean(Diabetes$sbp),
## sd(Diabetes$sbp)): ties should not be present for the one-sample
## Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: Diabetes$sbp
## D = 0.089405, p-value = 0.1846
## alternative hypothesis: two-sided
Hipotesis nula: Los datos correspondientes a la presiòn arterial diastolica (dbp) #se ajustan a una distribuciòn normal.
Hipotesis alternativa: (dbp) no se ajustan a una distribuciòn normal
ks.test(Diabetes$dbp, "pnorm", mean(Diabetes$dbp), sd(Diabetes$dbp))
## Warning in ks.test.default(Diabetes$dbp, "pnorm", mean(Diabetes$dbp),
## sd(Diabetes$dbp)): ties should not be present for the one-sample
## Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: Diabetes$dbp
## D = 0.089805, p-value = 0.1807
## alternative hypothesis: two-sided
no se rechaza la hipotesis nula a una vivel de significacia de 0.05 en ninguna de las variables por lo tanto los datos se ajustan a una distribuciòn normal.
y<- Diabetes$sbp
x<- Diabetes$dbp
#Hipotesis nula: No exite correlaciòn lineal.
#Hipotesis alternativa: si exite correlaciòn lineal.
cor(x,y)
## [1] 0.6438134
cor.test(x,y)
##
## Pearson's product-moment correlation
##
## data: x and y
## t = 10.201, df = 147, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.5387920 0.7291301
## sample estimates:
## cor
## 0.6438134
se rechaza la hipotesis nula por lo tanto si hay correlaciòn. Correlaciòn positiva moderadamente fuerte entre la presiòn arterial distolica y sistolica
siendo significativamente menor que 0.05, por lo que existe evidencia estadística suficiente para afirmar que la relación observada no se debe al azar.
y_mean <- mean(y)
x_mean <- mean(x)
numerador<- sum(x*(y-y_mean))
denominador <- sum(x*(x-x_mean))
b1 <- numerador/denominador
b0 = y_mean - b1*x_mean
plot(x, y)
abline(a = b0, b = b1,
col = "red",
lwd = 2)
La pendiente estimada fue de 1.182, indicando que por cada incremento de 1 (milimetros de mercurio)mmHg en la presión arterial diastólica, la presión arterial sistólica aumenta en promedio aproximadamente 1.18 mmHg. Desde el punto de vista clínico, esto sugiere que pacientes con mayores niveles de presión diastólica tienden también a presentar mayores niveles de presión sistólica, evidenciando un comportamiento conjunto de ambas medidas de presión arterial.
modelo <- lm(sbp ~ dbp,
data=Diabetes)
summary(modelo)
##
## Call:
## lm(formula = sbp ~ dbp, data = Diabetes)
##
## Residuals:
## Min 1Q Median 3Q Max
## -31.316 -10.398 -2.222 7.224 56.860
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 44.5351 9.3595 4.758 4.62e-06 ***
## dbp 1.1824 0.1159 10.201 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 15.53 on 147 degrees of freedom
## Multiple R-squared: 0.4145, Adjusted R-squared: 0.4105
## F-statistic: 104.1 on 1 and 147 DF, p-value: < 2.2e-16
El modelo estimado fue sbp=44.535+1.182(dbp). La pendiente indica que por cada aumento de 1 mmHg en la presión diastólica, la presión sistólica aumenta en promedio 1.182 mmHg. El modelo fue estadísticamente significativo (p<0.001) y explicó el 41.45% de la variabilidad observada en la presión sistólica (R2=0.4145).
###5. OBTENCIÓN MANUAL DE LOS ESTIMADORES
x_bar <- mean(Diabetes$dbp)
y_bar <- mean(Diabetes$sbp)
Sxy <- sum((Diabetes$dbp-x_bar)*
(Diabetes$sbp-y_bar))
Sxx <- sum((Diabetes$dbp-x_bar)^2)
beta1 <- Sxy/Sxx
beta1
## [1] 1.182405
beta0 <- y_bar - beta1*x_bar
beta0
## [1] 44.53509
Por cada incremento de 1 mmHg en la presión diastólica, la presión sistólica aumenta en promedio 1.182 mmHg.
La relación encontrada es positiva.
###7. INTERVALOS DE CONFIANZA
confint(modelo)
## 2.5 % 97.5 %
## (Intercept) 26.0384579 63.031720
## dbp 0.9533444 1.411466
Como el intervalo de confianza para la pendiente no contiene el valor cero, existe evidencia de una relación lineal significativa.
###8. COEFICIENTE DE DETERMINACIÓN
summary(modelo)$r.squared
## [1] 0.4144957
El 41.45% de la variabilidad observada en la presión arterial sistólica es explicada por la presión arterial diastólica.
###9. PRUEBA DE SIGNIFICANCIA DE LA REGRESIÓN (ANOVA)
Hipótesis H0:β1=0
La variable explicativa no aporta información.
H1:β1 =0
La variable explicativa aporta información significativa
anova(modelo)
## Analysis of Variance Table
##
## Response: sbp
## Df Sum Sq Mean Sq F value Pr(>F)
## dbp 1 25110 25109.6 104.07 < 2.2e-16 ***
## Residuals 147 35469 241.3
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Dado que el valor p es menor a 0.05, se rechaza la hipótesis nula.
Existe evidencia estadística suficiente para afirmar que la presión diastólica explica significativamente la presión sistólica.
###10. COMPARACIÓN DE MODELOS
modelo0 <- lm(sbp ~ 1,
data=Diabetes)
modelo1 <- lm(sbp ~ dbp,
data=Diabetes)
anova(modelo0,
modelo1)
## Analysis of Variance Table
##
## Model 1: sbp ~ 1
## Model 2: sbp ~ dbp
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 148 60579
## 2 147 35469 1 25110 104.07 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
La disminución de RSS de 60579 a 35469 indica que la incorporación de la presión diastólica mejora significativamente la capacidad explicativa del modelo.
Residuos vs Ajustados
plot(modelo,
which=1)
plot(modelo,
which=2)
1.Los estimadores obtenidos mediante mínimos cuadrados ordinarios permitieron modelar la relación entre presión diastólica y sistólica. 2.La pendiente estimada fue positiva y estadísticamente significativa. 3.El modelo explicó aproximadamente el 41.45% de la variabilidad observada en la presión sistólica. 4.El análisis ANOVA confirmó la significancia global del modelo. 5.La comparación de modelos mostró que la inclusión de la presión arterial diastólica mejora significativamente el ajuste y la capacidad predictiva del modelo.