Paquetes utilizados:
options(scipen= 999)
library(dplyr)
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(visdat)
## Warning: package 'visdat' was built under R version 4.4.3
library(readxl)
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.4.3
## Warning: package 'ggplot2' was built under R version 4.4.3
## Warning: package 'tibble' was built under R version 4.4.3
## Warning: package 'tidyr' was built under R version 4.4.3
## Warning: package 'readr' was built under R version 4.4.3
## Warning: package 'purrr' was built under R version 4.4.3
## Warning: package 'stringr' was built under R version 4.4.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats 1.0.0 ✔ readr 2.1.5
## ✔ ggplot2 4.0.1 ✔ stringr 1.5.1
## ✔ lubridate 1.9.4 ✔ tibble 3.2.1
## ✔ purrr 1.1.0 ✔ tidyr 1.3.1
## ── 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
library(visdat)
library(naniar)
## Warning: package 'naniar' was built under R version 4.4.3
library(eq5d)
## Cargando paquete requerido: lifecycle
## Cargando paquete requerido: rlang
##
## Adjuntando el paquete: 'rlang'
##
## The following objects are masked from 'package:purrr':
##
## %@%, flatten, flatten_chr, flatten_dbl, flatten_int, flatten_lgl,
## flatten_raw, invoke, splice
library(car)
## Warning: package 'car' was built under R version 4.4.3
## Cargando paquete requerido: carData
## Warning: package 'carData' was built under R version 4.4.3
##
## Adjuntando el paquete: 'car'
##
## The following object is masked from 'package:purrr':
##
## some
##
## The following object is masked from 'package:dplyr':
##
## recode
library(ggeffects)
## Warning: package 'ggeffects' was built under R version 4.4.3
Las variables numéricas continuas que asumieron una distribución normal se reportan como media y desvío estándar (DE). En caso contrario se reportan como mediana y rango intercuartílico (RIQ). Las variables categóricas se reportan como número de presentación y porcentaje (%). Para valorar la normalidad de la muestra se utilizó el test estadístico de Shapiro-Wilk y la evaluación gráfica mediante histogramas. Se consideró como estadísticamente significativo un p ≤ 0,05. Para todos los análisis se utilizó el programa R versión 4.2.2.(Cita: R Core Team (2022). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. URL: https://www.R-project.org/)
#Base de datos y curación
setwd("C:/Users/Juan_Cruz/Desktop/Cosas Juan kinesiologia/Trabajo ikdc")
IKDC <- read_excel("IKDC- Base de datos pacientes.xlsx")
## New names:
## • `T1 EQ-5D movilidad` -> `T1 EQ-5D movilidad...20`
## • `T1 EQ-5D cuidado personal` -> `T1 EQ-5D cuidado personal...21`
## • `T1 EQ-5D avd` -> `T1 EQ-5D avd...22`
## • `T1 EQ-5D dolor` -> `T1 EQ-5D dolor...23`
## • `T1 EQ-5D ansiedad` -> `T1 EQ-5D ansiedad...24`
## • `GROC` -> `GROC...32`
## • `T1 EQ-5D movilidad` -> `T1 EQ-5D movilidad...50`
## • `T1 EQ-5D cuidado personal` -> `T1 EQ-5D cuidado personal...51`
## • `T1 EQ-5D avd` -> `T1 EQ-5D avd...52`
## • `T1 EQ-5D dolor` -> `T1 EQ-5D dolor...53`
## • `T1 EQ-5D ansiedad` -> `T1 EQ-5D ansiedad...54`
## • `GROC` -> `GROC...56`
## • `TAMPA` -> `TAMPA...60`
## • `T1 EQ-5D movilidad` -> `T1 EQ-5D movilidad...74`
## • `T1 EQ-5D cuidado personal` -> `T1 EQ-5D cuidado personal...75`
## • `T1 EQ-5D avd` -> `T1 EQ-5D avd...76`
## • `T1 EQ-5D dolor` -> `T1 EQ-5D dolor...77`
## • `T1 EQ-5D ansiedad` -> `T1 EQ-5D ansiedad...78`
## • `TAMPA` -> `TAMPA...84`
IKDC <- IKDC %>% select(-`Nombre y apellido`,-T1,-T2,-T3,-T4,-`T4 IKDC`,-`T4 TEGNER SCALE`,-`T4 IPAQ`,-`T4 END`,-`T4 LEFS`,-`T1 EQ-5D movilidad...74`,-`T1 EQ-5D cuidado personal...75`,-`T1 EQ-5D avd...76`,-`T1 EQ-5D dolor...77`,-`T1 EQ-5D ansiedad...78`,-`T4 EQ-VAS`,-`T4 GROC`,-`T4 Consumo analgésico`,-`T4 Nombre`,-`T4 PCS`,-TAMPA...84,-`T4 ROM EXT SANA`,-`T4 ROM EXT LESIONADA`,-`T4 STROKE TEST`,-`T4 SIT TO STAND 1 PIE SANA`,-`T4 SIT TO STAND 1 PIE LESIONADA`,-`T4 SIT TO STAND 2 PIE`,-`T4 EQUILIBRIO OC`,-`T4 PASS`,-Antecedentes,-`T4 ROM FLEX SANA`,-`T4 ROM FLEX LESIONADA`,-`T1 Nombre`,-`T2 Nombre`,-`T3 Nombre`)
IKDC %>%
summarise(across(where(is.character), ~sum(is.na(suppressWarnings(as.numeric(.))))))
## # A tibble: 1 × 3
## `Tiempo de realización terapeuta` `T3 IKDC` `T3 EQUILIBRIO OC`
## <int> <int> <int>
## 1 0 3 4
unique(IKDC$`T2 ROM EXT LESIONADA`)
## [1] 6 999 7 -1 8 1 10 19 5 12 -11 3 14 -2 -3 -13 -5 -6 16
## [20] 4 9 2 11 -12 0 -7 -8 -9 -10 -4 13 18 NA
unique(IKDC$`T2 STROKE TEST`)
## [1] 0 999 3 1 4 2 NA
IKDC <- IKDC |>
dplyr::mutate(
dplyr::across(
where(is.character),
~ as.numeric(.)
)
)
names(IKDC)[c(27,49)] <- c("T2 GROC", "T3 GROC")
names(IKDC)[43:47] <- gsub("T1", "T3", names(IKDC)[43:47])
IKDC$`T2 STROKE TEST` <- factor(IKDC$`T2 STROKE TEST`,
levels = c(0,1,2,3,4),
labels = c("0", "1", "2","3","Trace"))
IKDC$`T3 STROKE TEST` <- factor(IKDC$`T3 STROKE TEST`,
levels = c(0,1,2,3,4),
labels = c("0", "1", "2","3","Trace"))
IKDC$Sexo <- factor(IKDC$Sexo,
levels = c(1, 2),
labels = c("Masculino", "Femenino"))
IKDC$`T1 consumo analgésico` <- factor(IKDC$`T1 consumo analgésico`,
levels = c(1, 2),
labels = c("Sí","No"))
IKDC$`T2 Consumo analgésico` <- factor(IKDC$`T2 Consumo analgésico`,
levels = c(1, 2),
labels = c("Sí","No"))
IKDC$`T3 Consumo analgésico` <- factor(IKDC$`T3 Consumo analgésico`,
levels = c(1, 2),
labels = c("Sí","No"))
IKDC$`Niveles de estudios` <- factor(IKDC$`Niveles de estudios`,
levels = c(0,1,2,3,4),
labels = c("Analfabeto", "Primario incompleto","Primario completo","Secundario completo","Terciario/Universitario"))
IKDC$`T2 GROC` <- factor(IKDC$`T2 GROC`,
levels = c(1,2,3,4,5),
labels = c("Peor", "Un poco peor","Igual","Un poco mejor","Mejor"))
IKDC <- IKDC %>% select(-c(26:31,34,35,37))
IKDC$`T3 GROC` <- factor(IKDC$`T3 GROC`,
levels = c(1,2,3,4,5),
labels = c("Peor", "Un poco peor","Igual","Un poco mejor","Mejor"))
IKDC$`Miembro dominante` <- factor(IKDC$`Miembro dominante`,
levels = c(1,2),
labels = c("Derecho", "Izquierdo"))
IKDC$`Miembro afectado` <- factor(IKDC$`Miembro afectado`,
levels = c(1,2),
labels = c("Derecho", "Izquierdo"))
IKDC$`T3 PASS` <- factor(IKDC$`T3 PASS`,
levels = c(1,2),
labels = c("Sí", "No"))
IKDC$`Diagnóstico médico` <- factor(IKDC$`Diagnóstico médico`, levels = c(1,2,3,4,5,6,7,8), labels = c("Lesión de LCA", "Lesión Meniscal","Artrosis","Esguince","Lesión de cartílago","Fractura","Dolor anterior de rodilla", "Otro"))
IKDC$`T3 IPAQ` <- factor(IKDC$`T3 IPAQ`, levels = c(1,2,3),labels = c("Baja", "Moderado", "Alto"))
IKDC$`T1 IPAQ` <- factor(IKDC$`T1 IPAQ`,
levels = c(1,2,3),
labels = c("Baja", "Moderado", "Alto"))
IKDC$`Resolución qx` <- factor(IKDC$`Resolución qx`,
levels = c(0,1),
labels = c("No", "Sí"))
IKDC$`Tratamiento no qx` <- factor(
ifelse(IKDC$`Resolución qx` == "Sí", "No",
ifelse(IKDC$`Resolución qx` == "No", "Sí", NA)),
levels = c("No", "Sí")
)
IKDC <- IKDC %>%
mutate(across(where(is.numeric), ~replace(., . %in% c(888, 777, 999), NA)))
TTO_T1 <- IKDC %>%
select(
`T1 EQ-5D movilidad...20`,
`T1 EQ-5D cuidado personal...21`,
`T1 EQ-5D avd...22`,
`T1 EQ-5D dolor...23`,
`T1 EQ-5D ansiedad...24`
)
#Standby para mejorar la base y calcular TTO
IKDC$EQ5D_TTO_T1 <- eq5d(
scores = TTO_T1,
country = "Argentina",
version = "3L",
type = "TTO",
dimensions = c(
"T1 EQ-5D movilidad...20",
"T1 EQ-5D cuidado personal...21",
"T1 EQ-5D avd...22",
"T1 EQ-5D dolor...23",
"T1 EQ-5D ansiedad...24"
)
)
summary(IKDC)
## Número de ID Edad Ocupacion Sexo
## Min. : 1.00 Min. :18.00 Min. : 0.00 Masculino:62
## 1st Qu.: 31.75 1st Qu.:27.00 1st Qu.: 7.25 Femenino :62
## Median : 62.50 Median :43.50 Median :17.00
## Mean : 62.50 Mean :43.13 Mean :19.43
## 3rd Qu.: 93.25 3rd Qu.:57.25 3rd Qu.:27.00
## Max. :124.00 Max. :77.00 Max. :43.00
## NA's :14
## Niveles de estudios Diagnóstico médico
## Analfabeto : 0 Lesión de LCA :37
## Primario incompleto : 1 Dolor anterior de rodilla:27
## Primario completo :17 Lesión Meniscal :15
## Secundario completo :57 Artrosis :12
## Terciario/Universitario:44 Esguince : 9
## NA's : 5 (Other) :20
## NA's : 4
## Miembro afectado Duracion de dolor (meses) Miembro dominante T1 IKDC
## Derecho :58 Min. : 0.00 Derecho :108 Min. : 4.60
## Izquierdo:65 1st Qu.: 1.25 Izquierdo: 12 1st Qu.:33.83
## NA's : 1 Median : 3.00 NA's : 4 Median :46.50
## Mean : 10.23 Mean :47.20
## 3rd Qu.: 7.50 3rd Qu.:59.72
## Max. :192.00 Max. :87.36
## NA's :17
## Tiempo realizacion paciente Tiempo de realización terapeuta T1 TEGNER SCALE
## Min. :118.0 Min. :1.030 Min. :1.000
## 1st Qu.:182.5 1st Qu.:1.113 1st Qu.:3.000
## Median :276.0 Median :1.190 Median :4.000
## Mean :271.6 Mean :1.427 Mean :4.407
## 3rd Qu.:347.5 3rd Qu.:1.462 3rd Qu.:7.000
## Max. :502.0 Max. :2.510 Max. :9.000
## NA's :109 NA's :118 NA's :6
## T1 IPAQ T1 END T1 LEFS T1 EQ-5D movilidad...20
## Baja :59 Min. : 0.000 Min. : 3.00 Min. :1.000
## Moderado:22 1st Qu.: 3.000 1st Qu.:37.75 1st Qu.:1.000
## Alto :23 Median : 5.000 Median :50.00 Median :1.500
## NA's :20 Mean : 4.837 Mean :49.81 Mean :1.548
## 3rd Qu.: 7.000 3rd Qu.:64.25 3rd Qu.:2.000
## Max. :10.000 Max. :77.00 Max. :3.000
## NA's :1
## T1 EQ-5D cuidado personal...21 T1 EQ-5D avd...22 T1 EQ-5D dolor...23
## Min. :1.000 Min. :1.000 Min. :1.000
## 1st Qu.:1.000 1st Qu.:1.000 1st Qu.:2.000
## Median :1.000 Median :1.000 Median :2.000
## Mean :1.226 Mean :1.524 Mean :1.911
## 3rd Qu.:1.000 3rd Qu.:2.000 3rd Qu.:2.000
## Max. :3.000 Max. :3.000 Max. :3.000
##
## T1 EQ-5D ansiedad...24 T1 EQ-VAS T1 consumo analgésico T1 PCS
## Min. :1.000 Min. : 0.00 Sí : 19 Min. : 0.00
## 1st Qu.:1.000 1st Qu.: 55.00 No :100 1st Qu.: 9.00
## Median :2.000 Median : 70.00 NA's: 5 Median :17.00
## Mean :1.637 Mean : 68.81 Mean :18.67
## 3rd Qu.:2.000 3rd Qu.: 85.00 3rd Qu.:26.00
## Max. :3.000 Max. :100.00 Max. :49.00
## NA's :12 NA's :11
## T1 TAMPA T2 ROM FLEX LESIONADA (activo) T2 STROKE TEST
## Min. :13.00 Min. : 22.0 0 :52
## 1st Qu.:21.75 1st Qu.:116.0 1 :16
## Median :27.00 Median :131.0 2 : 2
## Mean :27.89 Mean :123.2 3 :25
## 3rd Qu.:33.00 3rd Qu.:140.0 Trace:12
## Max. :53.00 Max. :155.0 NA's :17
## NA's :12 NA's :16
## T2 SIT TO STAND 2 PIE T3 IKDC T3 TEGNER SCALE T3 IPAQ
## Min. : 4.00 Min. :24.10 Min. :1.00 Baja :32
## 1st Qu.:10.00 1st Qu.:55.15 1st Qu.:3.00 Moderado:32
## Median :12.50 Median :64.65 Median :4.00 Alto :25
## Mean :12.67 Mean :64.89 Mean :4.08 NA's :35
## 3rd Qu.:15.00 3rd Qu.:75.80 3rd Qu.:5.00
## Max. :36.00 Max. :98.90 Max. :9.00
## NA's :32 NA's :20 NA's :36
## T3 END T3 LEFS T3 EQ-5D movilidad...50
## Min. :0.000 Min. : 3.00 Min. :1.000
## 1st Qu.:1.000 1st Qu.:58.00 1st Qu.:1.000
## Median :3.000 Median :66.00 Median :1.000
## Mean :2.904 Mean :64.00 Mean :1.214
## 3rd Qu.:5.000 3rd Qu.:73.25 3rd Qu.:1.000
## Max. :8.000 Max. :80.00 Max. :3.000
## NA's :20 NA's :20 NA's :21
## T3 EQ-5D cuidado personal...51 T3 EQ-5D avd...52 T3 EQ-5D dolor...53
## Min. :1.000 Min. :1.000 Min. :1.000
## 1st Qu.:1.000 1st Qu.:1.000 1st Qu.:1.000
## Median :1.000 Median :1.000 Median :2.000
## Mean :1.117 Mean :1.282 Mean :1.563
## 3rd Qu.:1.000 3rd Qu.:1.000 3rd Qu.:2.000
## Max. :3.000 Max. :3.000 Max. :3.000
## NA's :21 NA's :21 NA's :21
## T3 EQ-5D ansiedad...54 T3 EQ-VAS T3 GROC
## Min. :1.000 Min. : 40.00 Peor : 0
## 1st Qu.:1.000 1st Qu.: 70.00 Un poco peor : 1
## Median :1.000 Median : 80.00 Igual : 5
## Mean :1.476 Mean : 78.08 Un poco mejor:34
## 3rd Qu.:2.000 3rd Qu.: 90.00 Mejor :63
## Max. :3.000 Max. :100.00 NA's :21
## NA's :21 NA's :27
## T3 Consumo analgésico T3 PCS TAMPA...60 T3 ROM EXT
## Sí : 9 Min. : 0.00 Min. :11.00 Min. :-15.000
## No :92 1st Qu.: 3.00 1st Qu.:18.00 1st Qu.: 1.000
## NA's:23 Median :11.00 Median :23.00 Median : 5.000
## Mean :12.01 Mean :24.10 Mean : 4.473
## 3rd Qu.:16.50 3rd Qu.:29.75 3rd Qu.: 7.000
## Max. :41.00 Max. :44.00 Max. : 20.000
## NA's :32 NA's :30 NA's :31
## T3 ROM FLEX T3 STROKE TEST T3 SIT TO STAND 1 PIE T3 SIT TO STAND 2 PIE
## Min. : 41.0 0 :53 Min. : 0.00 Min. : 5
## 1st Qu.:127.5 1 :13 1st Qu.: 7.90 1st Qu.:13
## Median :136.0 2 : 3 Median :11.00 Median :16
## Mean :131.4 3 :15 Mean : 9.93 Mean :16
## 3rd Qu.:142.0 Trace: 6 3rd Qu.:13.00 3rd Qu.:18
## Max. :160.0 NA's :34 Max. :26.00 Max. :47
## NA's :32 NA's :76 NA's :37
## T3 EQUILIBRIO OC T3 PASS Resolución qx Tratamiento no qx EQ5D_TTO_T1
## Min. : 0.0 Sí :40 No :95 No :25 Min. :-0.2050
## 1st Qu.: 4.0 No :46 Sí :25 Sí :95 1st Qu.: 0.6130
## Median : 9.0 NA's:38 NA's: 4 NA's: 4 Median : 0.7020
## Mean :11.5 Mean : 0.6957
## 3rd Qu.:15.0 3rd Qu.: 0.8830
## Max. :40.0 Max. : 1.0000
## NA's :42
## tibble [124 × 53] (S3: tbl_df/tbl/data.frame)
## $ Número de ID : num [1:124] 1 2 3 4 5 6 7 8 9 10 ...
## $ Edad : num [1:124] 58 25 21 34 56 59 39 24 21 60 ...
## $ Ocupacion : num [1:124] 1 NA 0 26 NA NA 41 27 NA 1 ...
## $ Sexo : Factor w/ 2 levels "Masculino","Femenino": 2 1 2 1 2 2 2 1 1 2 ...
## $ Niveles de estudios : Factor w/ 5 levels "Analfabeto","Primario incompleto",..: 3 NA 4 4 NA 4 5 4 4 2 ...
## $ Diagnóstico médico : Factor w/ 8 levels "Lesión de LCA",..: 7 1 1 1 1 4 8 7 1 7 ...
## $ Miembro afectado : Factor w/ 2 levels "Derecho","Izquierdo": 2 1 1 2 2 2 2 2 2 2 ...
## $ Duracion de dolor (meses) : num [1:124] 84 NA 13 5 NA 1 2 3 1 18 ...
## $ Miembro dominante : Factor w/ 2 levels "Derecho","Izquierdo": 1 1 2 1 1 1 1 1 2 1 ...
## $ T1 IKDC : num [1:124] 54.2 54 77 17.2 31 60 75.8 26.4 51.7 41 ...
## $ Tiempo realizacion paciente : num [1:124] NA NA NA 162 NA NA 210 NA NA NA ...
## $ Tiempo de realización terapeuta: num [1:124] NA NA 2.51 1.23 NA NA NA NA NA NA ...
## $ T1 TEGNER SCALE : num [1:124] 4 NA 9 4 NA 1 5 6 9 4 ...
## $ T1 IPAQ : Factor w/ 3 levels "Baja","Moderado",..: 3 NA 3 NA NA NA 3 NA 3 1 ...
## $ T1 END : num [1:124] 8 3 1 NA 8 1 6 8 1 6 ...
## $ T1 LEFS : num [1:124] 67 58 75 11 32 68 71 45 53 55 ...
## $ T1 EQ-5D movilidad...20 : num [1:124] 1 2 1 2 2 1 1 2 1 1 ...
## $ T1 EQ-5D cuidado personal...21 : num [1:124] 1 1 1 2 2 1 1 1 1 1 ...
## $ T1 EQ-5D avd...22 : num [1:124] 1 2 1 2 2 1 1 1 1 1 ...
## $ T1 EQ-5D dolor...23 : num [1:124] 2 2 1 2 2 2 2 2 1 2 ...
## $ T1 EQ-5D ansiedad...24 : num [1:124] 2 1 2 1 2 3 1 2 2 1 ...
## $ T1 EQ-VAS : num [1:124] NA NA NA 55 NA 80 85 NA 55 NA ...
## $ T1 consumo analgésico : Factor w/ 2 levels "Sí","No": 2 NA 2 2 2 2 2 2 2 2 ...
## $ T1 PCS : num [1:124] 49 NA 0 NA NA 6 19 26 16 13 ...
## $ T1 TAMPA : num [1:124] 23 NA 17 NA NA 24 18 31 21 33 ...
## $ T2 ROM FLEX LESIONADA (activo) : num [1:124] 150 NA 140 59 NA NA 140 128 140 122 ...
## $ T2 STROKE TEST : Factor w/ 5 levels "0","1","2","3",..: 1 NA 1 4 NA 1 1 2 2 1 ...
## $ T2 SIT TO STAND 2 PIE : num [1:124] 9 NA 28 NA NA NA 18 10 NA 10 ...
## $ T3 IKDC : num [1:124] NA NA 69 26.4 70 ...
## $ T3 TEGNER SCALE : num [1:124] NA NA NA 3 NA 1 NA NA NA NA ...
## $ T3 IPAQ : Factor w/ 3 levels "Baja","Moderado",..: NA NA 3 NA NA NA NA NA 3 1 ...
## $ T3 END : num [1:124] NA NA 1 7 3 0 NA 7 1 6 ...
## $ T3 LEFS : num [1:124] NA NA 77 21 63 72 NA 58 63 57 ...
## $ T3 EQ-5D movilidad...50 : num [1:124] NA NA 1 2 1 1 NA 1 1 1 ...
## $ T3 EQ-5D cuidado personal...51 : num [1:124] NA NA 1 2 1 1 NA 1 1 1 ...
## $ T3 EQ-5D avd...52 : num [1:124] NA NA 1 2 1 1 NA 1 1 1 ...
## $ T3 EQ-5D dolor...53 : num [1:124] NA NA 1 2 2 1 NA 2 1 2 ...
## $ T3 EQ-5D ansiedad...54 : num [1:124] NA NA 2 2 1 3 NA 3 2 1 ...
## $ T3 EQ-VAS : num [1:124] NA NA 80 70 NA 85 NA NA 80 60 ...
## $ T3 GROC : Factor w/ 5 levels "Peor","Un poco peor",..: NA NA 5 4 4 4 NA 3 5 4 ...
## $ T3 Consumo analgésico : Factor w/ 2 levels "Sí","No": NA NA 2 1 NA 2 NA 2 2 2 ...
## $ T3 PCS : num [1:124] NA NA NA NA NA 2 NA NA 13 15 ...
## $ TAMPA...60 : num [1:124] NA NA NA NA NA 19 NA NA 19 34 ...
## $ T3 ROM EXT : num [1:124] NA NA NA 17 NA NA NA NA 10 16 ...
## $ T3 ROM FLEX : num [1:124] NA NA NA 117 NA NA NA NA 140 137 ...
## $ T3 STROKE TEST : Factor w/ 5 levels "0","1","2","3",..: NA NA NA 4 NA 1 NA NA 2 1 ...
## $ T3 SIT TO STAND 1 PIE : num [1:124] NA NA NA NA NA 9 NA NA NA NA ...
## $ T3 SIT TO STAND 2 PIE : num [1:124] NA NA NA NA NA NA NA NA NA 12 ...
## $ T3 EQUILIBRIO OC : num [1:124] NA NA NA NA NA NA NA NA 15 4 ...
## $ T3 PASS : Factor w/ 2 levels "Sí","No": NA NA NA 2 NA 1 NA 2 NA 2 ...
## $ Resolución qx : Factor w/ 2 levels "No","Sí": 1 2 2 2 1 1 1 1 1 1 ...
## $ Tratamiento no qx : Factor w/ 2 levels "No","Sí": 2 1 1 1 2 2 2 2 2 2 ...
## $ EQ5D_TTO_T1 : num [1:124] 0.831 0.663 0.931 0.605 0.613 0.444 0.883 0.692 0.931 0.883 ...
## [1] 124 53
## # A tibble: 6 × 53
## `Número de ID` Edad Ocupacion Sexo `Niveles de estudios`
## <dbl> <dbl> <dbl> <fct> <fct>
## 1 1 58 1 Femenino Primario completo
## 2 2 25 NA Masculino <NA>
## 3 3 21 0 Femenino Secundario completo
## 4 4 34 26 Masculino Secundario completo
## 5 5 56 NA Femenino <NA>
## 6 6 59 NA Femenino Secundario completo
## # ℹ 48 more variables: `Diagnóstico médico` <fct>, `Miembro afectado` <fct>,
## # `Duracion de dolor (meses)` <dbl>, `Miembro dominante` <fct>,
## # `T1 IKDC` <dbl>, `Tiempo realizacion paciente` <dbl>,
## # `Tiempo de realización terapeuta` <dbl>, `T1 TEGNER SCALE` <dbl>,
## # `T1 IPAQ` <fct>, `T1 END` <dbl>, `T1 LEFS` <dbl>,
## # `T1 EQ-5D movilidad...20` <dbl>, `T1 EQ-5D cuidado personal...21` <dbl>,
## # `T1 EQ-5D avd...22` <dbl>, `T1 EQ-5D dolor...23` <dbl>, …
## Número de ID Edad Ocupacion Sexo
## Min. : 1.00 Min. :18.00 Min. : 0.00 Masculino:62
## 1st Qu.: 31.75 1st Qu.:27.00 1st Qu.: 7.25 Femenino :62
## Median : 62.50 Median :43.50 Median :17.00
## Mean : 62.50 Mean :43.13 Mean :19.43
## 3rd Qu.: 93.25 3rd Qu.:57.25 3rd Qu.:27.00
## Max. :124.00 Max. :77.00 Max. :43.00
## NA's :14
## Niveles de estudios Diagnóstico médico
## Analfabeto : 0 Lesión de LCA :37
## Primario incompleto : 1 Dolor anterior de rodilla:27
## Primario completo :17 Lesión Meniscal :15
## Secundario completo :57 Artrosis :12
## Terciario/Universitario:44 Esguince : 9
## NA's : 5 (Other) :20
## NA's : 4
## Miembro afectado Duracion de dolor (meses) Miembro dominante T1 IKDC
## Derecho :58 Min. : 0.00 Derecho :108 Min. : 4.60
## Izquierdo:65 1st Qu.: 1.25 Izquierdo: 12 1st Qu.:33.83
## NA's : 1 Median : 3.00 NA's : 4 Median :46.50
## Mean : 10.23 Mean :47.20
## 3rd Qu.: 7.50 3rd Qu.:59.72
## Max. :192.00 Max. :87.36
## NA's :17
## Tiempo realizacion paciente Tiempo de realización terapeuta T1 TEGNER SCALE
## Min. :118.0 Min. :1.030 Min. :1.000
## 1st Qu.:182.5 1st Qu.:1.113 1st Qu.:3.000
## Median :276.0 Median :1.190 Median :4.000
## Mean :271.6 Mean :1.427 Mean :4.407
## 3rd Qu.:347.5 3rd Qu.:1.462 3rd Qu.:7.000
## Max. :502.0 Max. :2.510 Max. :9.000
## NA's :109 NA's :118 NA's :6
## T1 IPAQ T1 END T1 LEFS T1 EQ-5D movilidad...20
## Baja :59 Min. : 0.000 Min. : 3.00 Min. :1.000
## Moderado:22 1st Qu.: 3.000 1st Qu.:37.75 1st Qu.:1.000
## Alto :23 Median : 5.000 Median :50.00 Median :1.500
## NA's :20 Mean : 4.837 Mean :49.81 Mean :1.548
## 3rd Qu.: 7.000 3rd Qu.:64.25 3rd Qu.:2.000
## Max. :10.000 Max. :77.00 Max. :3.000
## NA's :1
## T1 EQ-5D cuidado personal...21 T1 EQ-5D avd...22 T1 EQ-5D dolor...23
## Min. :1.000 Min. :1.000 Min. :1.000
## 1st Qu.:1.000 1st Qu.:1.000 1st Qu.:2.000
## Median :1.000 Median :1.000 Median :2.000
## Mean :1.226 Mean :1.524 Mean :1.911
## 3rd Qu.:1.000 3rd Qu.:2.000 3rd Qu.:2.000
## Max. :3.000 Max. :3.000 Max. :3.000
##
## T1 EQ-5D ansiedad...24 T1 EQ-VAS T1 consumo analgésico T1 PCS
## Min. :1.000 Min. : 0.00 Sí : 19 Min. : 0.00
## 1st Qu.:1.000 1st Qu.: 55.00 No :100 1st Qu.: 9.00
## Median :2.000 Median : 70.00 NA's: 5 Median :17.00
## Mean :1.637 Mean : 68.81 Mean :18.67
## 3rd Qu.:2.000 3rd Qu.: 85.00 3rd Qu.:26.00
## Max. :3.000 Max. :100.00 Max. :49.00
## NA's :12 NA's :11
## T1 TAMPA T2 ROM FLEX LESIONADA (activo) T2 STROKE TEST
## Min. :13.00 Min. : 22.0 0 :52
## 1st Qu.:21.75 1st Qu.:116.0 1 :16
## Median :27.00 Median :131.0 2 : 2
## Mean :27.89 Mean :123.2 3 :25
## 3rd Qu.:33.00 3rd Qu.:140.0 Trace:12
## Max. :53.00 Max. :155.0 NA's :17
## NA's :12 NA's :16
## T2 SIT TO STAND 2 PIE T3 IKDC T3 TEGNER SCALE T3 IPAQ
## Min. : 4.00 Min. :24.10 Min. :1.00 Baja :32
## 1st Qu.:10.00 1st Qu.:55.15 1st Qu.:3.00 Moderado:32
## Median :12.50 Median :64.65 Median :4.00 Alto :25
## Mean :12.67 Mean :64.89 Mean :4.08 NA's :35
## 3rd Qu.:15.00 3rd Qu.:75.80 3rd Qu.:5.00
## Max. :36.00 Max. :98.90 Max. :9.00
## NA's :32 NA's :20 NA's :36
## T3 END T3 LEFS T3 EQ-5D movilidad...50
## Min. :0.000 Min. : 3.00 Min. :1.000
## 1st Qu.:1.000 1st Qu.:58.00 1st Qu.:1.000
## Median :3.000 Median :66.00 Median :1.000
## Mean :2.904 Mean :64.00 Mean :1.214
## 3rd Qu.:5.000 3rd Qu.:73.25 3rd Qu.:1.000
## Max. :8.000 Max. :80.00 Max. :3.000
## NA's :20 NA's :20 NA's :21
## T3 EQ-5D cuidado personal...51 T3 EQ-5D avd...52 T3 EQ-5D dolor...53
## Min. :1.000 Min. :1.000 Min. :1.000
## 1st Qu.:1.000 1st Qu.:1.000 1st Qu.:1.000
## Median :1.000 Median :1.000 Median :2.000
## Mean :1.117 Mean :1.282 Mean :1.563
## 3rd Qu.:1.000 3rd Qu.:1.000 3rd Qu.:2.000
## Max. :3.000 Max. :3.000 Max. :3.000
## NA's :21 NA's :21 NA's :21
## T3 EQ-5D ansiedad...54 T3 EQ-VAS T3 GROC
## Min. :1.000 Min. : 40.00 Peor : 0
## 1st Qu.:1.000 1st Qu.: 70.00 Un poco peor : 1
## Median :1.000 Median : 80.00 Igual : 5
## Mean :1.476 Mean : 78.08 Un poco mejor:34
## 3rd Qu.:2.000 3rd Qu.: 90.00 Mejor :63
## Max. :3.000 Max. :100.00 NA's :21
## NA's :21 NA's :27
## T3 Consumo analgésico T3 PCS TAMPA...60 T3 ROM EXT
## Sí : 9 Min. : 0.00 Min. :11.00 Min. :-15.000
## No :92 1st Qu.: 3.00 1st Qu.:18.00 1st Qu.: 1.000
## NA's:23 Median :11.00 Median :23.00 Median : 5.000
## Mean :12.01 Mean :24.10 Mean : 4.473
## 3rd Qu.:16.50 3rd Qu.:29.75 3rd Qu.: 7.000
## Max. :41.00 Max. :44.00 Max. : 20.000
## NA's :32 NA's :30 NA's :31
## T3 ROM FLEX T3 STROKE TEST T3 SIT TO STAND 1 PIE T3 SIT TO STAND 2 PIE
## Min. : 41.0 0 :53 Min. : 0.00 Min. : 5
## 1st Qu.:127.5 1 :13 1st Qu.: 7.90 1st Qu.:13
## Median :136.0 2 : 3 Median :11.00 Median :16
## Mean :131.4 3 :15 Mean : 9.93 Mean :16
## 3rd Qu.:142.0 Trace: 6 3rd Qu.:13.00 3rd Qu.:18
## Max. :160.0 NA's :34 Max. :26.00 Max. :47
## NA's :32 NA's :76 NA's :37
## T3 EQUILIBRIO OC T3 PASS Resolución qx Tratamiento no qx EQ5D_TTO_T1
## Min. : 0.0 Sí :40 No :95 No :25 Min. :-0.2050
## 1st Qu.: 4.0 No :46 Sí :25 Sí :95 1st Qu.: 0.6130
## Median : 9.0 NA's:38 NA's: 4 NA's: 4 Median : 0.7020
## Mean :11.5 Mean : 0.6957
## 3rd Qu.:15.0 3rd Qu.: 0.8830
## Max. :40.0 Max. : 1.0000
## NA's :42
## # A tibble: 732 × 4
## # Groups: variable [37]
## `Número de ID` variable valor tipo
## <dbl> <chr> <dbl> <chr>
## 1 109 Duracion de dolor (meses) 0 bajo
## 2 115 Duracion de dolor (meses) 0 bajo
## 3 120 Duracion de dolor (meses) 0 bajo
## 4 92 Duracion de dolor (meses) 0.5 bajo
## 5 124 Duracion de dolor (meses) 0.5 bajo
## 6 6 Duracion de dolor (meses) 1 bajo
## 7 9 Duracion de dolor (meses) 1 bajo
## 8 16 Duracion de dolor (meses) 1 bajo
## 9 24 Duracion de dolor (meses) 1 bajo
## 10 25 Duracion de dolor (meses) 1 bajo
## # ℹ 722 more rows
## # A tibble: 53 × 3
## variable n_miss pct_miss
## <chr> <int> <num>
## 1 Tiempo de realización terapeuta 118 95.2
## 2 Tiempo realizacion paciente 109 87.9
## 3 T3 SIT TO STAND 1 PIE 76 61.3
## 4 T3 EQUILIBRIO OC 42 33.9
## 5 T3 PASS 38 30.6
## 6 T3 SIT TO STAND 2 PIE 37 29.8
## 7 T3 TEGNER SCALE 36 29.0
## 8 T3 IPAQ 35 28.2
## 9 T3 STROKE TEST 34 27.4
## 10 T2 SIT TO STAND 2 PIE 32 25.8
## # ℹ 43 more rows
## # A tibble: 124 × 3
## case n_miss pct_miss
## <int> <int> <dbl>
## 1 2 36 67.9
## 2 17 32 60.4
## 3 26 31 58.5
## 4 28 31 58.5
## 5 49 31 58.5
## 6 64 30 56.6
## 7 90 30 56.6
## 8 66 28 52.8
## 9 120 28 52.8
## 10 123 27 50.9
## # ℹ 114 more rows
## [1] 1071
## [1] 5501
## [1] 0.1629641
## # A tibble: 53 × 3
## variable n_miss pct_miss
## <chr> <int> <num>
## 1 Tiempo de realización terapeuta 118 95.2
## 2 Tiempo realizacion paciente 109 87.9
## 3 T3 SIT TO STAND 1 PIE 76 61.3
## 4 T3 EQUILIBRIO OC 42 33.9
## 5 T3 PASS 38 30.6
## 6 T3 SIT TO STAND 2 PIE 37 29.8
## 7 T3 TEGNER SCALE 36 29.0
## 8 T3 IPAQ 35 28.2
## 9 T3 STROKE TEST 34 27.4
## 10 T2 SIT TO STAND 2 PIE 32 25.8
## # ℹ 43 more rows
## # A tibble: 38 × 7
## variable n media sd mediana min max
## <chr> <int> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Número de ID 124 62.5 35.9 62.5 1 124
## 2 Edad 124 43.1 16.2 43.5 18 77
## 3 Ocupacion 110 19.4 14.5 17 0 43
## 4 Duracion de dolor (meses) 107 10.2 24.7 3 0 192
## 5 T1 IKDC 124 47.2 18.1 46.5 4.6 87.4
## 6 Tiempo realizacion paciente 15 272. 115. 276 118 502
## 7 Tiempo de realización terapeuta 6 1.43 0.56 1.19 1.03 2.51
## 8 T1 TEGNER SCALE 118 4.41 2.18 4 1 9
## 9 T1 END 123 4.84 2.7 5 0 10
## 10 T1 LEFS 124 49.8 17.1 50 3 77
## # ℹ 28 more rows
##Resumen categoricas
## # A tibble: 48 × 8
## variable categoria n_na n_total n_obs n porcentaje porcentaje_na
## <chr> <fct> <int> <int> <int> <int> <dbl> <dbl>
## 1 Diagnóstico méd… Lesión d… 4 124 120 37 30.8 3.23
## 2 Diagnóstico méd… Dolor an… 4 124 120 27 22.5 3.23
## 3 Diagnóstico méd… Lesión M… 4 124 120 15 12.5 3.23
## 4 Diagnóstico méd… Artrosis 4 124 120 12 10 3.23
## 5 Diagnóstico méd… Esguince 4 124 120 9 7.5 3.23
## 6 Diagnóstico méd… Otro 4 124 120 8 6.67 3.23
## 7 Diagnóstico méd… Lesión d… 4 124 120 7 5.83 3.23
## 8 Diagnóstico méd… Fractura 4 124 120 5 4.17 3.23
## 9 Miembro afectado Izquierdo 1 124 123 65 52.8 0.81
## 10 Miembro afectado Derecho 1 124 123 58 47.2 0.81
## # ℹ 38 more rows
##Modelo de tabla 1
## Warning: package 'table1' was built under R version 4.4.3
##
## Adjuntando el paquete: 'table1'
## The following objects are masked from 'package:base':
##
## units, units<-
| Overall (N=124) |
|
|---|---|
| Edad | |
| Mean (SD) | 43 (16) |
| Median [Min, Max] | 44 [18, 77] |
| Sexo | |
| Masculino | 62 (50.0%) |
| Femenino | 62 (50.0%) |
| Niveles de estudios | |
| Analfabeto | 0 (0%) |
| Primario incompleto | 1 (0.8%) |
| Primario completo | 17 (13.7%) |
| Secundario completo | 57 (46.0%) |
| Terciario/Universitario | 44 (35.5%) |
| Missing | 5 (4.0%) |
| Diagnóstico médico | |
| Lesión de LCA | 37 (29.8%) |
| Lesión Meniscal | 15 (12.1%) |
| Artrosis | 12 (9.7%) |
| Esguince | 9 (7.3%) |
| Lesión de cartílago | 7 (5.6%) |
| Fractura | 5 (4.0%) |
| Dolor anterior de rodilla | 27 (21.8%) |
| Otro | 8 (6.5%) |
| Missing | 4 (3.2%) |
| Miembro dominante | |
| Derecho | 108 (87.1%) |
| Izquierdo | 12 (9.7%) |
| Missing | 4 (3.2%) |
| Miembro afectado | |
| Derecho | 58 (46.8%) |
| Izquierdo | 65 (52.4%) |
| Missing | 1 (0.8%) |
| Duracion de dolor (meses) | |
| Mean (SD) | 10 (25) |
| Median [Min, Max] | 3.0 [0, 190] |
| Missing | 17 (13.7%) |
| T1 TEGNER SCALE | |
| Mean (SD) | 4.4 (2.2) |
| Median [Min, Max] | 4.0 [1.0, 9.0] |
| Missing | 6 (4.8%) |
| T1 IPAQ | |
| Baja | 59 (47.6%) |
| Moderado | 22 (17.7%) |
| Alto | 23 (18.5%) |
| Missing | 20 (16.1%) |
| T1 IKDC | |
| Mean (SD) | 47 (18) |
| Median [Min, Max] | 47 [4.6, 87] |
| T1 END | |
| Mean (SD) | 4.8 (2.7) |
| Median [Min, Max] | 5.0 [0, 10] |
| Missing | 1 (0.8%) |
| T1 LEFS | |
| Mean (SD) | 50 (17) |
| Median [Min, Max] | 50 [3.0, 77] |
| T1 EQ-VAS | |
| Mean (SD) | 69 (20) |
| Median [Min, Max] | 70 [0, 100] |
| Missing | 12 (9.7%) |
| T1 PCS | |
| Mean (SD) | 19 (12) |
| Median [Min, Max] | 17 [0, 49] |
| Missing | 11 (8.9%) |
| T1 TAMPA | |
| Mean (SD) | 28 (8.0) |
| Median [Min, Max] | 27 [13, 53] |
| Missing | 12 (9.7%) |
| Resolución qx | |
| No | 95 (76.6%) |
| Sí | 25 (20.2%) |
| Missing | 4 (3.2%) |
| EQ5D_TTO_T1 | |
| Mean (SD) | 0.70 (0.25) |
| Median [Min, Max] | 0.70 [-0.21, 1.0] |
##Analisis normalidad variables
vars <- IKDC[sapply(IKDC, is.numeric)]
lapply(names(vars), function(v) {
x <- vars[[v]]
par(mfrow = c(2,2))
hist(x, main = paste("Hist", v))
boxplot(x, main = paste("Boxplot", v))
qqnorm(x, main = paste("QQ", v))
qqline(x)
print(v)
print(shapiro.test(x))
})
## [1] "Número de ID"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.95465, p-value = 0.000377
## [1] "Edad"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.94487, p-value = 0.00007021
## [1] "Ocupacion"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.89352, p-value = 0.0000002514
## [1] "Duracion de dolor (meses)"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.39238, p-value < 0.00000000000000022
## [1] "T1 IKDC"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.98675, p-value = 0.272
## [1] "Tiempo realizacion paciente"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.95002, p-value = 0.5247
## [1] "Tiempo de realización terapeuta"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.74795, p-value = 0.01902
## [1] "T1 TEGNER SCALE"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.92158, p-value = 0.000003528
## [1] "T1 END"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.94591, p-value = 0.00008931
## [1] "T1 LEFS"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.96629, p-value = 0.00343
## [1] "T1 EQ-5D movilidad...20"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.72441, p-value = 0.00000000000005904
## [1] "T1 EQ-5D cuidado personal...21"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.50289, p-value < 0.00000000000000022
## [1] "T1 EQ-5D avd...22"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.71862, p-value = 0.00000000000004146
## [1] "T1 EQ-5D dolor...23"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.70121, p-value = 0.00000000000001477
## [1] "T1 EQ-5D ansiedad...24"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.75821, p-value = 0.0000000000005192
## [1] "T1 EQ-VAS"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.94383, p-value = 0.0001381
## [1] "T1 PCS"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.95577, p-value = 0.0009
## [1] "T1 TAMPA"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.97535, p-value = 0.03606
## [1] "T2 ROM FLEX LESIONADA (activo)"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.82035, p-value = 0.0000000003844
## [1] "T2 SIT TO STAND 2 PIE"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.88712, p-value = 0.0000008948
## [1] "T3 IKDC"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.99036, p-value = 0.6682
## [1] "T3 TEGNER SCALE"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.89425, p-value = 0.000002823
## [1] "T3 END"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.91584, p-value = 0.000005866
## [1] "T3 LEFS"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.85744, p-value = 0.00000001395
## [1] "T3 EQ-5D movilidad...50"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.47603, p-value < 0.00000000000000022
## [1] "T3 EQ-5D cuidado personal...51"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.29274, p-value < 0.00000000000000022
## [1] "T3 EQ-5D avd...52"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.55269, p-value = 0.0000000000000003399
## [1] "T3 EQ-5D dolor...53"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.67054, p-value = 0.0000000000000709
## [1] "T3 EQ-5D ansiedad...54"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.70217, p-value = 0.000000000000374
## [1] "T3 EQ-VAS"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.94659, p-value = 0.0006191
## [1] "T3 PCS"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.9162, p-value = 0.00001912
## [1] "TAMPA...60"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.96317, p-value = 0.009517
## [1] "T3 ROM EXT"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.97488, p-value = 0.06965
## [1] "T3 ROM FLEX"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.82543, p-value = 0.000000004771
## [1] "T3 SIT TO STAND 1 PIE"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.94696, p-value = 0.0303
## [1] "T3 SIT TO STAND 2 PIE"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.84658, p-value = 0.00000004782
## [1] "T3 EQUILIBRIO OC"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.87303, p-value = 0.0000008137
## [1] "EQ5D_TTO_T1"
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.85362, p-value = 0.0000000009932
## [[1]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.95465, p-value = 0.000377
##
##
## [[2]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.94487, p-value = 0.00007021
##
##
## [[3]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.89352, p-value = 0.0000002514
##
##
## [[4]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.39238, p-value < 0.00000000000000022
##
##
## [[5]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.98675, p-value = 0.272
##
##
## [[6]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.95002, p-value = 0.5247
##
##
## [[7]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.74795, p-value = 0.01902
##
##
## [[8]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.92158, p-value = 0.000003528
##
##
## [[9]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.94591, p-value = 0.00008931
##
##
## [[10]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.96629, p-value = 0.00343
##
##
## [[11]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.72441, p-value = 0.00000000000005904
##
##
## [[12]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.50289, p-value < 0.00000000000000022
##
##
## [[13]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.71862, p-value = 0.00000000000004146
##
##
## [[14]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.70121, p-value = 0.00000000000001477
##
##
## [[15]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.75821, p-value = 0.0000000000005192
##
##
## [[16]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.94383, p-value = 0.0001381
##
##
## [[17]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.95577, p-value = 0.0009
##
##
## [[18]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.97535, p-value = 0.03606
##
##
## [[19]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.82035, p-value = 0.0000000003844
##
##
## [[20]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.88712, p-value = 0.0000008948
##
##
## [[21]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.99036, p-value = 0.6682
##
##
## [[22]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.89425, p-value = 0.000002823
##
##
## [[23]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.91584, p-value = 0.000005866
##
##
## [[24]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.85744, p-value = 0.00000001395
##
##
## [[25]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.47603, p-value < 0.00000000000000022
##
##
## [[26]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.29274, p-value < 0.00000000000000022
##
##
## [[27]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.55269, p-value = 0.0000000000000003399
##
##
## [[28]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.67054, p-value = 0.0000000000000709
##
##
## [[29]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.70217, p-value = 0.000000000000374
##
##
## [[30]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.94659, p-value = 0.0006191
##
##
## [[31]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.9162, p-value = 0.00001912
##
##
## [[32]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.96317, p-value = 0.009517
##
##
## [[33]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.97488, p-value = 0.06965
##
##
## [[34]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.82543, p-value = 0.000000004771
##
##
## [[35]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.94696, p-value = 0.0303
##
##
## [[36]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.84658, p-value = 0.00000004782
##
##
## [[37]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.87303, p-value = 0.0000008137
##
##
## [[38]]
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.85362, p-value = 0.0000000009932
IKDC T1, T2 IKDC, T3 IKDC, ROM Ext T3 con distribución aproximadamente normal
El cambio en ROM en flexion entre T2 y T3 se asocia con IKDC T3, moderado por resolución quirúrgica. Solo ajustado por EDAD y IKDC en T1
## Warning: package 'emmeans' was built under R version 4.4.3
## Welcome to emmeans.
## Caution: You lose important information if you filter this package's results.
## See '? untidy'
## Warning: package 'lmtest' was built under R version 4.4.3
## Cargando paquete requerido: zoo
## Warning: package 'zoo' was built under R version 4.4.3
##
## Adjuntando el paquete: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
## Warning: package 'sandwich' was built under R version 4.4.3
##
## Call:
## lm(formula = IKDC_T3 ~ delta_ROM * `Resolución qx` + Edad +
## `T1 IKDC`, data = IKDC_mod)
##
## Residuals:
## Min 1Q Median 3Q Max
## -31.403 -9.439 1.844 7.716 40.602
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 45.86852 7.52845 6.093 0.0000000304 ***
## delta_ROM -0.12098 0.15555 -0.778 0.439
## `Resolución qx`Sí -6.46172 4.79449 -1.348 0.181
## Edad -0.07121 0.09492 -0.750 0.455
## `T1 IKDC` 0.49909 0.08903 5.606 0.0000002462 ***
## delta_ROM:`Resolución qx`Sí 0.06626 0.21173 0.313 0.755
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 12.85 on 86 degrees of freedom
## (32 observations deleted due to missingness)
## Multiple R-squared: 0.4115, Adjusted R-squared: 0.3773
## F-statistic: 12.03 on 5 and 86 DF, p-value: 0.000000007722
## [1] 92
##
## No Sí
## 72 20
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 45.868522 9.606009 4.7750 0.000007313 ***
## delta_ROM -0.120977 0.161233 -0.7503 0.4551
## `Resolución qx`Sí -6.461716 5.180590 -1.2473 0.2157
## Edad -0.071208 0.129356 -0.5505 0.5834
## `T1 IKDC` 0.499089 0.101295 4.9271 0.000004007 ***
## delta_ROM:`Resolución qx`Sí 0.066259 0.281575 0.2353 0.8145
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## there are higher-order terms (interactions) in this model
## consider setting type = 'predictor'; see ?vif
## delta_ROM `Resolución qx` Edad
## 2.707392 2.178055 1.202803
## `T1 IKDC` delta_ROM:`Resolución qx`
## 1.337337 4.074689
## Analysis of Variance Table
##
## Model 1: IKDC_T3 ~ delta_ROM + `Resolución qx` + Edad + `T1 IKDC`
## Model 2: IKDC_T3 ~ delta_ROM * `Resolución qx` + Edad + `T1 IKDC`
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 87 14223
## 2 86 14207 1 16.177 0.0979 0.7551
## [1] 0.0006701627
## [1] 0.001138707
## Resolución qx delta_ROM.trend SE df lower.CL upper.CL
## No -0.1210 0.156 86 -0.430 0.188
## Sí -0.0547 0.152 86 -0.356 0.246
##
## Confidence level used: 0.95
## Resolución qx delta_ROM.trend SE df lower.CL upper.CL
## No -0.1210 0.156 86 -0.430 0.188
## Sí -0.0547 0.152 86 -0.356 0.246
##
## Confidence level used: 0.95
## Warning: Looks like you are using syntactically invalid variable names, quoted in
## backticks: `T1 IKDC`. This may result in unexpected behaviour. Please
## rename your variables (e.g., `T1.IKDC` instead of `T1 IKDC`) and fit the
## model again.
## `geom_smooth()` using formula = 'y ~ x'
## [1] 0.04347826
## 4 30 63 67 69 88
## 1 16 41 42 44 63
##
## Call:
## lm(formula = IKDC_T3 ~ delta_ROM * `Resolución qx` + Edad +
## `T1 IKDC`, data = datos_sens)
##
## Residuals:
## Min 1Q Median 3Q Max
## -19.8440 -7.9217 0.8853 7.6101 30.9964
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 42.03981 7.33166 5.734 0.00000016746 ***
## delta_ROM 0.03153 0.15188 0.208 0.836
## `Resolución qx`Sí -4.17836 4.74616 -0.880 0.381
## Edad -0.06187 0.09122 -0.678 0.500
## `T1 IKDC` 0.56334 0.08706 6.471 0.00000000723 ***
## delta_ROM:`Resolución qx`Sí -0.16311 0.23946 -0.681 0.498
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 11.38 on 80 degrees of freedom
## Multiple R-squared: 0.4739, Adjusted R-squared: 0.441
## F-statistic: 14.41 on 5 and 80 DF, p-value: 0.0000000004723
##
## Call:
## lm(formula = IKDC_T3 ~ `T1 IKDC`, data = IKDC_mod)
##
## Residuals:
## Min 1Q Median 3Q Max
## -33.339 -10.256 1.269 8.029 32.224
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 39.55169 3.64939 10.838 < 0.0000000000000002 ***
## `T1 IKDC` 0.53256 0.07199 7.397 0.0000000000403 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 12.85 on 102 degrees of freedom
## (20 observations deleted due to missingness)
## Multiple R-squared: 0.3492, Adjusted R-squared: 0.3428
## F-statistic: 54.72 on 1 and 102 DF, p-value: 0.00000000004027
IPAQ T3 se asocia con IKDC T3, moderado por valor de tampa por mediana
Solo 8 sedentarios tampa alto y 10 con tampa bajo. Eliminaria esta hipotesis
##
## Call:
## lm(formula = IKDC_T3 ~ sedentario * tampa_alto_mediana + Edad +
## `T1 IKDC`, data = IKDC_mod)
##
## Residuals:
## Min 1Q Median 3Q Max
## -30.843 -10.643 1.766 8.340 33.270
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 37.833064 7.444247 5.082 0.0000024936
## sedentarioSí 0.520057 4.847732 0.107 0.915
## tampa_alto_medianaAlto 2.481213 3.695661 0.671 0.504
## Edad -0.002749 0.101791 -0.027 0.979
## `T1 IKDC` 0.549115 0.088050 6.236 0.0000000214
## sedentarioSí:tampa_alto_medianaAlto -4.858516 6.267994 -0.775 0.441
##
## (Intercept) ***
## sedentarioSí
## tampa_alto_medianaAlto
## Edad
## `T1 IKDC` ***
## sedentarioSí:tampa_alto_medianaAlto
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 13.22 on 78 degrees of freedom
## (40 observations deleted due to missingness)
## Multiple R-squared: 0.3788, Adjusted R-squared: 0.339
## F-statistic: 9.513 on 5 and 78 DF, p-value: 0.0000004104
## [1] 84
##
## Bajo Alto
## 39 45
El cambio en PCS se asocia con IKDC T3, moderado por condición quirúrgica.
##
## Call:
## lm(formula = IKDC_T3 ~ delta_PCS * `Resolución qx` + Edad +
## `T1 IKDC`, data = IKDC_mod)
##
## Residuals:
## Min 1Q Median 3Q Max
## -29.681 -8.345 -0.497 6.823 37.443
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 41.83844 6.74423 6.204 0.00000001868 ***
## delta_PCS -0.39489 0.14239 -2.773 0.0068 **
## `Resolución qx`Sí -10.22852 4.14564 -2.467 0.0156 *
## Edad -0.08225 0.08623 -0.954 0.3428
## `T1 IKDC` 0.52631 0.07911 6.653 0.00000000254 ***
## delta_PCS:`Resolución qx`Sí -1.31769 0.55442 -2.377 0.0197 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 11.69 on 86 degrees of freedom
## (32 observations deleted due to missingness)
## Multiple R-squared: 0.4834, Adjusted R-squared: 0.4534
## F-statistic: 16.1 on 5 and 86 DF, p-value: 0.00000000003563
## [1] 92
##
## No Sí
## 73 19
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 41.838445 7.593868 5.5095 0.00000036891 ***
## delta_PCS -0.394889 0.156462 -2.5239 0.01344 *
## `Resolución qx`Sí -10.228521 4.203516 -2.4333 0.01703 *
## Edad -0.082250 0.094397 -0.8713 0.38601
## `T1 IKDC` 0.526315 0.088712 5.9328 0.00000006076 ***
## delta_PCS:`Resolución qx`Sí -1.317694 0.582631 -2.2616 0.02624 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## there are higher-order terms (interactions) in this model
## consider setting type = 'predictor'; see ?vif
## delta_PCS `Resolución qx` Edad
## 1.140219 1.894499 1.197140
## `T1 IKDC` delta_PCS:`Resolución qx`
## 1.265514 1.625408
## Analysis of Variance Table
##
## Model 1: IKDC_T3 ~ delta_PCS + `Resolución qx` + Edad + `T1 IKDC`
## Model 2: IKDC_T3 ~ delta_PCS * `Resolución qx` + Edad + `T1 IKDC`
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 87 12534
## 2 86 11762 1 772.57 5.6488 0.01969 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] 0.03392991
## [1] 0.06568388
## Resolución qx delta_PCS.trend SE df lower.CL upper.CL
## No -0.395 0.142 86 -0.678 -0.112
## Sí -1.713 0.535 86 -2.776 -0.649
##
## Confidence level used: 0.95
## Resolución qx delta_PCS.trend SE df lower.CL upper.CL
## No -0.395 0.142 86 -0.678 -0.112
## Sí -1.713 0.535 86 -2.776 -0.649
##
## Confidence level used: 0.95
## Warning: Looks like you are using syntactically invalid variable names, quoted in
## backticks: `T1 IKDC`. This may result in unexpected behaviour. Please
## rename your variables (e.g., `T1.IKDC` instead of `T1 IKDC`) and fit the
## model again.
## `geom_smooth()` using formula = 'y ~ x'
## [1] 0.04347826
## 15 69 88 105
## 6 45 64 76
##
## Call:
## lm(formula = IKDC_T3 ~ delta_PCS * `Resolución qx` + Edad +
## `T1 IKDC`, data = datos_sens)
##
## Residuals:
## Min 1Q Median 3Q Max
## -19.7433 -6.9593 -0.3916 7.8323 18.6076
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 36.56206 5.94254 6.153 0.000000026603756 ***
## delta_PCS -0.49010 0.12526 -3.913 0.000188 ***
## `Resolución qx`Sí -9.09422 3.60288 -2.524 0.013527 *
## Edad -0.08432 0.07606 -1.109 0.270837
## `T1 IKDC` 0.61661 0.06988 8.823 0.000000000000162 ***
## delta_PCS:`Resolución qx`Sí -1.00477 0.55697 -1.804 0.074905 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 9.984 on 82 degrees of freedom
## Multiple R-squared: 0.619, Adjusted R-squared: 0.5957
## F-statistic: 26.64 on 5 and 82 DF, p-value: 0.000000000000000679
##
## No Sí
## (-37.1,-18.3] 9 0
## (-18.3,0.333] 48 15
## (0.333,19.1] 16 4
## modelo n_total n_no_qx n_si_qx beta_interaccion se_interaccion p_interaccion
## 1 m3 92 73 19 -1.317694 0.5544163 0.01968639
## r2_base r2_interaccion delta_r2 f2 cook_cutoff n_influyentes
## 1 0.4495063 0.4834363 0.03392991 0.06568388 0.04347826 4
## 1
## 51.55672
## (Intercept) delta_PCS
## 41.83844479 -0.39488857
## `Resolución qx`Sí Edad
## -10.22852056 -0.08224952
## `T1 IKDC` delta_PCS:`Resolución qx`Sí
## 0.52631476 -1.31769407
## # A tibble: 1 × 67
## `Número de ID` Edad Ocupacion Sexo `Niveles de estudios`
## <dbl> <dbl> <dbl> <fct> <fct>
## 1 15 45 0 Femenino Terciario/Universitario
## # ℹ 62 more variables: `Diagnóstico médico` <fct>, `Miembro afectado` <fct>,
## # `Duracion de dolor (meses)` <dbl>, `Miembro dominante` <fct>,
## # `T1 IKDC` <dbl>, `Tiempo realizacion paciente` <dbl>,
## # `Tiempo de realización terapeuta` <dbl>, `T1 TEGNER SCALE` <dbl>,
## # `T1 IPAQ` <fct>, `T1 END` <dbl>, `T1 LEFS` <dbl>,
## # `T1 EQ-5D movilidad...20` <dbl>, `T1 EQ-5D cuidado personal...21` <dbl>,
## # `T1 EQ-5D avd...22` <dbl>, `T1 EQ-5D dolor...23` <dbl>, …
Hipotesis 3 con pcs en t3
# =========================================================
# HIPÓTESIS 3
# `T3 PCS` se asocia con IKDC_T3, moderado por Resolución qx
# Ajustado por Edad y T1 IKDC
# =========================================================
# Paquetes
library(ggplot2)
library(emmeans)
library(ggeffects)
library(car)
library(lmtest)
library(sandwich)
# ---------------------------------------------------------
# 0) Preparación
# ---------------------------------------------------------
IKDC_mod$`Resolución qx` <- factor(IKDC_mod$`Resolución qx`)
# ---------------------------------------------------------
# 1) Modelo con interacción
# ---------------------------------------------------------
m3bis <- lm(
IKDC_T3 ~ `T3 PCS` * `Resolución qx` + Edad + `T1 IKDC`,
data = IKDC_mod
)
summary(m3bis)
##
## Call:
## lm(formula = IKDC_T3 ~ `T3 PCS` * `Resolución qx` + Edad + `T1 IKDC`,
## data = IKDC_mod)
##
## Residuals:
## Min 1Q Median 3Q Max
## -29.5852 -6.8101 0.7106 7.4617 29.7311
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 59.18057 7.52739 7.862 0.00000000001 ***
## `T3 PCS` -0.36694 0.14000 -2.621 0.0104 *
## `Resolución qx`Sí -5.09147 4.50416 -1.130 0.2615
## Edad -0.12562 0.08796 -1.428 0.1569
## `T1 IKDC` 0.36945 0.08306 4.448 0.00002577528 ***
## `T3 PCS`:`Resolución qx`Sí -0.70557 0.35526 -1.986 0.0502 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 11.8 on 86 degrees of freedom
## (32 observations deleted due to missingness)
## Multiple R-squared: 0.4737, Adjusted R-squared: 0.4431
## F-statistic: 15.48 on 5 and 86 DF, p-value: 0.00000000007708
datos_m3bis <- model.frame(m3bis)
# n total y por grupo
n_total_m3bis <- nrow(datos_m3bis)
n_total_m3bis
## [1] 92
table(datos_m3bis$`Resolución qx`)
##
## No Sí
## 73 19
# ---------------------------------------------------------
# 2) Diagnóstico del modelo
# ---------------------------------------------------------
par(mfrow = c(2, 2))
plot(m3bis)
par(mfrow = c(1, 1))
# errores robustos HC3
coeftest(m3bis, vcov = vcovHC(m3bis, type = "HC3"))
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 59.18057 7.87327 7.5166 0.00000000004972 ***
## `T3 PCS` -0.36694 0.10770 -3.4071 0.001001 **
## `Resolución qx`Sí -5.09147 5.38717 -0.9451 0.347250
## Edad -0.12562 0.10316 -1.2177 0.226658
## `T1 IKDC` 0.36945 0.09010 4.1004 0.00009322439697 ***
## `T3 PCS`:`Resolución qx`Sí -0.70557 0.36894 -1.9124 0.059149 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# colinealidad
vif(m3bis)
## there are higher-order terms (interactions) in this model
## consider setting type = 'predictor'; see ?vif
## `T3 PCS` `Resolución qx` Edad
## 1.352443 2.195081 1.222628
## `T1 IKDC` `T3 PCS`:`Resolución qx`
## 1.369354 1.915737
# ---------------------------------------------------------
# 3) Comparación con modelo sin interacción
# ---------------------------------------------------------
m3bis_base <- lm(
IKDC_T3 ~ `T3 PCS` + `Resolución qx` + Edad + `T1 IKDC`,
data = datos_m3bis
)
anova(m3bis_base, m3bis)
## Analysis of Variance Table
##
## Model 1: IKDC_T3 ~ `T3 PCS` + `Resolución qx` + Edad + `T1 IKDC`
## Model 2: IKDC_T3 ~ `T3 PCS` * `Resolución qx` + Edad + `T1 IKDC`
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 87 12533
## 2 86 11983 1 549.6 3.9444 0.05021 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
r2_base <- summary(m3bis_base)$r.squared
r2_int <- summary(m3bis)$r.squared
delta_r2 <- r2_int - r2_base
delta_r2
## [1] 0.02413777
f2 <- delta_r2 / (1 - r2_int)
f2
## [1] 0.04586548
# ---------------------------------------------------------
# 4) Pendientes simples (moderación)
# ---------------------------------------------------------
slopes_m3bis <- emtrends(m3bis, ~ `Resolución qx`, var = "`T3 PCS`")
slopes_m3bis
## Resolución qx `T3 PCS`.trend SE df lower.CL upper.CL
## No -0.367 0.140 86 -0.645 -0.0886
## Sí -1.073 0.335 86 -1.739 -0.4060
##
## Confidence level used: 0.95
confint(slopes_m3bis)
## Resolución qx `T3 PCS`.trend SE df lower.CL upper.CL
## No -0.367 0.140 86 -0.645 -0.0886
## Sí -1.073 0.335 86 -1.739 -0.4060
##
## Confidence level used: 0.95
# ---------------------------------------------------------
# 5) PREDICCIONES AJUSTADAS (GRÁFICO PRINCIPAL)
# ---------------------------------------------------------
pred_m3bis <- ggpredict(
m3bis,
terms = c("T3 PCS [all]", "Resolución qx")
)
## Warning: Looks like you are using syntactically invalid variable names, quoted in
## backticks: `T1 IKDC`. This may result in unexpected behaviour. Please
## rename your variables (e.g., `T1.IKDC` instead of `T1 IKDC`) and fit the
## model again.
g1 <- ggplot(pred_m3bis, aes(x = x, y = predicted, color = group, fill = group)) +
geom_line(linewidth = 1.2) +
geom_ribbon(aes(ymin = conf.low, ymax = conf.high), alpha = 0.2, color = NA) +
labs(
title = "Figura 1. Predicción ajustada de IKDC T3 según cambio en PCS",
subtitle = "Modelo con interacción ajustado por Edad e IKDC basal",
x = "Cambio en PCS",
y = "IKDC T3 predicho",
color = "Resolución qx",
fill = "Resolución qx",
caption = "Las líneas representan valores predichos del modelo lineal; las bandas indican IC95%."
) + coord_cartesian(ylim = c(0, 100))+
theme_minimal()
g1
# ---------------------------------------------------------
# 6) DATOS OBSERVADOS + MODELO
# ---------------------------------------------------------
g2 <- ggplot() +
geom_point(
data = datos_m3bis,
aes(x = `T3 PCS`, y = IKDC_T3, color = `Resolución qx`),
alpha = 0.5,
size = 2
) +
geom_line(
data = pred_m3bis,
aes(x = x, y = predicted, color = group),
linewidth = 1.2
) +
geom_ribbon(
data = pred_m3bis,
aes(x = x, ymin = conf.low, ymax = conf.high, fill = group),
alpha = 0.15,
color = NA
) +
labs(
title = "Figura 2. Datos observados y predicción del modelo",
subtitle = "Dispersión real y ajuste del modelo",
x = "PCS en T3",
y = "IKDC T3",
color = "Resolución qx",
fill = "Resolución qx",
caption = "Los puntos representan observaciones individuales; las líneas corresponden al modelo ajustado."
) + coord_cartesian(ylim = c(0, 100)) +
theme_minimal()
g2
# ---------------------------------------------------------
# 7) EFECTO DEL BASELINE (MUY IMPORTANTE)
# ---------------------------------------------------------
g3 <- ggplot(datos_m3bis, aes(x = `T1 IKDC`, y = IKDC_T3)) +
geom_point(alpha = 0.5, size = 2) +
geom_smooth(method = "lm", se = TRUE, linewidth = 1) +
labs(
title = "Figura 3. Asociación entre IKDC basal e IKDC T3",
x = "IKDC basal (T1)",
y = "IKDC T3",
caption = "Relación lineal entre estado basal y resultado."
) + coord_cartesian(ylim = c(0, 100)) +
theme_minimal()
g3
## `geom_smooth()` using formula = 'y ~ x'
# ---------------------------------------------------------
# 8) INFLUENCIA DE OBSERVACIONES
# ---------------------------------------------------------
cooksd <- cooks.distance(m3bis)
corte <- 4 / nrow(datos_m3bis)
corte
## [1] 0.04347826
influyentes <- which(cooksd > corte)
influyentes
## 63 67 69 88 106
## 42 43 45 64 77
plot(m3bis, which = 4)
# ---------------------------------------------------------
# 9) SENSIBILIDAD (SIN INFLUYENTES)
# ---------------------------------------------------------
if (length(influyentes) > 0) {
datos_sens <- datos_m3bis[-influyentes, ]
m3bis_sens <- lm(
IKDC_T3 ~ `T3 PCS` * `Resolución qx` + Edad + `T1 IKDC`,
data = datos_sens
)
summary(m3bis_sens)
} else {
cat("No hay observaciones influyentes\n")
}
##
## Call:
## lm(formula = IKDC_T3 ~ `T3 PCS` * `Resolución qx` + Edad + `T1 IKDC`,
## data = datos_sens)
##
## Residuals:
## Min 1Q Median 3Q Max
## -21.4069 -6.5037 -0.0447 8.1894 29.5102
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 59.57643 6.97106 8.546 0.000000000000627 ***
## `T3 PCS` -0.36531 0.12549 -2.911 0.00465 **
## `Resolución qx`Sí -4.29317 4.47543 -0.959 0.34027
## Edad -0.17205 0.08415 -2.045 0.04414 *
## `T1 IKDC` 0.40911 0.07673 5.332 0.000000860113774 ***
## `T3 PCS`:`Resolución qx`Sí -0.82833 0.41140 -2.013 0.04739 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 10.56 on 81 degrees of freedom
## Multiple R-squared: 0.518, Adjusted R-squared: 0.4883
## F-statistic: 17.41 on 5 and 81 DF, p-value: 0.00000000001136
# ---------------------------------------------------------
# 10) TABLA EXPLORATORIA DE DISTRIBUCIÓN DEL PREDICTOR
# ---------------------------------------------------------
datos_m3bis$PCS_cat <- cut(datos_m3bis$`T3 PCS`, breaks = 3)
tabla_celdas_m3bis <- table(datos_m3bis$PCS_cat, datos_m3bis$`Resolución qx`)
tabla_celdas_m3bis
##
## No Sí
## (-0.041,13.7] 44 15
## (13.7,27.3] 19 3
## (27.3,41] 10 1
# ---------------------------------------------------------
# 11) RESUMEN DE PARÁMETROS DEL MODELO
# ---------------------------------------------------------
coef_m3bis <- coef(summary(m3bis))
resumen_m3bis <- data.frame(
modelo = "m3bis",
n_total = n_total_m3bis,
n_no_qx = as.numeric(table(datos_m3bis$`Resolución qx`)["No"]),
n_si_qx = as.numeric(table(datos_m3bis$`Resolución qx`)["Sí"]),
beta_interaccion = coef_m3bis["`T3 PCS`:`Resolución qx`Sí", "Estimate"],
se_interaccion = coef_m3bis["`T3 PCS`:`Resolución qx`Sí", "Std. Error"],
p_interaccion = coef_m3bis["`T3 PCS`:`Resolución qx`Sí", "Pr(>|t|)"],
r2_base = r2_base,
r2_interaccion = r2_int,
delta_r2 = delta_r2,
f2 = f2,
cook_cutoff = corte,
n_influyentes = length(influyentes)
)
resumen_m3bis
## modelo n_total n_no_qx n_si_qx beta_interaccion se_interaccion p_interaccion
## 1 m3bis 92 73 19 -0.705568 0.3552603 0.05021168
## r2_base r2_interaccion delta_r2 f2 cook_cutoff n_influyentes
## 1 0.4495891 0.4737269 0.02413777 0.04586548 0.04347826 5
IPAQ T3 se asocia con IKDC T3, moderado por condición crónica.
La sacaria
##
## Call:
## lm(formula = IKDC_T3 ~ sedentario * cronico + Edad + `T1 IKDC`,
## data = IKDC_mod)
##
## Residuals:
## Min 1Q Median 3Q Max
## -31.508 -10.488 1.682 8.741 33.442
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 42.78813 7.49636 5.708 0.000000246 ***
## sedentarioSí -3.26909 4.86676 -0.672 0.504
## cronicoSí -2.67163 3.87096 -0.690 0.492
## Edad -0.03735 0.11287 -0.331 0.742
## `T1 IKDC` 0.53698 0.09192 5.842 0.000000143 ***
## sedentarioSí:cronicoSí 4.01666 6.61622 0.607 0.546
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 13.53 on 71 degrees of freedom
## (47 observations deleted due to missingness)
## Multiple R-squared: 0.3695, Adjusted R-squared: 0.3251
## F-statistic: 8.323 on 5 and 71 DF, p-value: 0.000003116
## [1] 77
##
## No Sí
## 36 41
El cambio en PCS se asocia con IKDC T3, moderado por condición crónica.
##
## Call:
## lm(formula = IKDC_T3 ~ delta_PCS * cronico + Edad + `T1 IKDC`,
## data = IKDC_mod)
##
## Residuals:
## Min 1Q Median 3Q Max
## -31.844 -8.728 0.730 7.763 36.355
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 37.62255 7.29807 5.155 0.00000213808 ***
## delta_PCS -0.25143 0.26752 -0.940 0.350
## cronicoSí -2.45525 3.66424 -0.670 0.505
## Edad -0.02276 0.10191 -0.223 0.824
## `T1 IKDC` 0.56246 0.08612 6.531 0.00000000801 ***
## delta_PCS:cronicoSí -0.32600 0.32852 -0.992 0.324
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 12.63 on 72 degrees of freedom
## (46 observations deleted due to missingness)
## Multiple R-squared: 0.4261, Adjusted R-squared: 0.3863
## F-statistic: 10.69 on 5 and 72 DF, p-value: 0.0000001044
## [1] 78
##
## No Sí
## 33 45
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 37.622545 8.835096 4.2583 0.000061270 ***
## delta_PCS -0.251429 0.381060 -0.6598 0.5115
## cronicoSí -2.455250 5.104823 -0.4810 0.6320
## Edad -0.022755 0.115787 -0.1965 0.8448
## `T1 IKDC` 0.562459 0.107183 5.2477 0.000001489 ***
## delta_PCS:cronicoSí -0.326001 0.404612 -0.8057 0.4231
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## there are higher-order terms (interactions) in this model
## consider setting type = 'predictor'; see ?vif
## delta_PCS cronico Edad `T1 IKDC`
## 2.981524 1.601627 1.205529 1.137264
## delta_PCS:cronico
## 3.648309
## Analysis of Variance Table
##
## Model 1: IKDC_T3 ~ delta_PCS + cronico + Edad + `T1 IKDC`
## Model 2: IKDC_T3 ~ delta_PCS * cronico + Edad + `T1 IKDC`
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 73 11648
## 2 72 11491 1 157.17 0.9847 0.3244
## [1] 0.007849162
## [1] 0.01367699
## cronico delta_PCS.trend SE df lower.CL upper.CL
## No -0.251 0.268 72 -0.785 0.282
## Sí -0.577 0.196 72 -0.968 -0.187
##
## Confidence level used: 0.95
## cronico delta_PCS.trend SE df lower.CL upper.CL
## No -0.251 0.268 72 -0.785 0.282
## Sí -0.577 0.196 72 -0.968 -0.187
##
## Confidence level used: 0.95
## Warning: Looks like you are using syntactically invalid variable names, quoted in
## backticks: `T1 IKDC`. This may result in unexpected behaviour. Please
## rename your variables (e.g., `T1.IKDC` instead of `T1 IKDC`) and fit the
## model again.
## `geom_smooth()` using formula = 'y ~ x'
## [1] 0.05128205
## 15 63 69 88
## 6 35 37 51
##
## Call:
## lm(formula = IKDC_T3 ~ delta_PCS * cronico + Edad + `T1 IKDC`,
## data = datos_sens)
##
## Residuals:
## Min 1Q Median 3Q Max
## -22.2302 -7.5914 0.3245 8.2953 19.5206
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 30.58141 6.39133 4.785 0.00000958674005 ***
## delta_PCS -0.44140 0.24348 -1.813 0.0743 .
## cronicoSí -2.88002 3.30488 -0.871 0.3866
## Edad 0.01390 0.08840 0.157 0.8755
## `T1 IKDC` 0.66105 0.07735 8.546 0.00000000000224 ***
## delta_PCS:cronicoSí -0.14909 0.29013 -0.514 0.6090
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 10.55 on 68 degrees of freedom
## Multiple R-squared: 0.5563, Adjusted R-squared: 0.5237
## F-statistic: 17.05 on 5 and 68 DF, p-value: 0.00000000006773
##
## No Sí
## (-37,-20.7] 2 4
## (-20.7,-4.33] 12 22
## (-4.33,12] 19 19
## modelo n_total n_no_cronico n_si_cronico beta_interaccion se_interaccion
## 1 m5 78 33 45 -0.3260005 0.3285162
## p_interaccion r2_base r2_interaccion delta_r2 f2 cook_cutoff
## 1 0.3243539 0.4182553 0.4261045 0.007849162 0.01367699 0.05128205
## n_influyentes
## 1 4
El cambio en Sit to Stand 2 pies se asocia con IKDC T3, moderado por condición aguda.
##
## Call:
## lm(formula = IKDC_T3 ~ delta_STS * agudo + Edad + `T1 IKDC`,
## data = IKDC_mod)
##
## Residuals:
## Min 1Q Median 3Q Max
## -35.749 -6.005 0.710 7.327 24.071
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 36.42386 8.59690 4.237 0.00008065 ***
## delta_STS 1.89994 0.61329 3.098 0.00298 **
## agudoSí 14.26977 5.55787 2.567 0.01280 *
## Edad 0.04241 0.10956 0.387 0.70004
## `T1 IKDC` 0.45742 0.09236 4.953 0.00000647 ***
## delta_STS:agudoSí -3.28393 1.36814 -2.400 0.01956 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 11.83 on 59 degrees of freedom
## (59 observations deleted due to missingness)
## Multiple R-squared: 0.4085, Adjusted R-squared: 0.3584
## F-statistic: 8.149 on 5 and 59 DF, p-value: 0.000006736
## [1] 65
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 36.423865 13.277003 2.7434 0.0080415 **
## delta_STS 1.899939 0.767587 2.4752 0.0162075 *
## agudoSí 14.269767 5.429911 2.6280 0.0109308 *
## Edad 0.042414 0.158653 0.2673 0.7901399
## `T1 IKDC` 0.457421 0.121186 3.7745 0.0003743 ***
## delta_STS:agudoSí -3.283929 1.114804 -2.9457 0.0046055 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## there are higher-order terms (interactions) in this model
## consider setting type = 'predictor'; see ?vif
## delta_STS agudo Edad `T1 IKDC` delta_STS:agudo
## 1.288803 3.339894 1.387635 1.129234 3.556949
## [1] "(Intercept)" "delta_STS" "agudoSí"
## [4] "Edad" "`T1 IKDC`" "delta_STS:agudoSí"
## Analysis of Variance Table
##
## Model 1: IKDC_T3 ~ delta_STS + agudo + Edad + `T1 IKDC`
## Model 2: IKDC_T3 ~ delta_STS * agudo + Edad + `T1 IKDC`
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 60 9067.4
## 2 59 8260.7 1 806.66 5.7614 0.01956 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] 0.05776161
## [1] 0.09765034
## agudo delta_STS.trend SE df lower.CL upper.CL
## No 1.90 0.613 59 0.673 3.13
## Sí -1.38 1.240 59 -3.868 1.10
##
## Confidence level used: 0.95
## agudo delta_STS.trend SE df lower.CL upper.CL
## No 1.90 0.613 59 0.673 3.13
## Sí -1.38 1.240 59 -3.868 1.10
##
## Confidence level used: 0.95
## Warning: Looks like you are using syntactically invalid variable names, quoted in
## backticks: `T1 IKDC`. This may result in unexpected behaviour. Please
## rename your variables (e.g., `T1.IKDC` instead of `T1 IKDC`) and fit the
## model again.
## `geom_smooth()` using formula = 'y ~ x'
## [1] 0.06153846
## 15 69 74 88 98
## 4 29 32 43 49
##
## Call:
## lm(formula = IKDC_T3 ~ delta_STS * agudo + Edad + `T1 IKDC`,
## data = datos_sens)
##
## Residuals:
## Min 1Q Median 3Q Max
## -21.2761 -5.4584 0.4508 6.6032 19.9356
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 28.51802 8.53386 3.342 0.00152 **
## delta_STS 1.97695 0.69200 2.857 0.00606 **
## agudoSí 13.17891 4.98830 2.642 0.01076 *
## Edad 0.08231 0.10537 0.781 0.43811
## `T1 IKDC` 0.58098 0.08604 6.752 0.0000000104 ***
## delta_STS:agudoSí -2.82675 1.22997 -2.298 0.02545 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 9.946 on 54 degrees of freedom
## Multiple R-squared: 0.5443, Adjusted R-squared: 0.5021
## F-statistic: 12.9 on 5 and 54 DF, p-value: 0.00000002893
##
## No Sí
## (-3.02,2] 24 6
## (2,7] 14 18
## (7,12] 3 0
## modelo n_total n_no_agudo n_si_agudo beta_interaccion se_interaccion
## 1 m6_2 65 41 24 -3.283929 1.368141
## p_interaccion r2_base r2_interaccion delta_r2 f2 cook_cutoff
## 1 0.01955586 0.3507237 0.4084853 0.05776161 0.09765034 0.06153846
## n_influyentes
## 1 5
## [1] 2 -1 1 2 4 1 1 0 6 6 0 4 2 6 5 11 5 1 5 2 4 3 0 6 0
## [26] 4 1 5 11 -2 3 12 3 1 5 4 2 2 4 1 3 2 4 3 2 3 4 2 2 1
## [51] 2 3 5 4 1 4 2 2 1 3 5 3 7 7 -3
Hipotesis 6 agudos
#`T3 SIT TO STAND 2 PIE` se asocia con IKDC_T3, moderado por agudo
# Ajustado por Edad y T1 IKDC
# =========================================================
# Paquetes
library(ggplot2)
library(emmeans)
library(ggeffects)
library(car)
library(lmtest)
library(sandwich)
# ---------------------------------------------------------
# 0) Preparación
# ---------------------------------------------------------
IKDC_mod$agudo <- factor(IKDC_mod$agudo)
# ---------------------------------------------------------
# 1) Modelo con interacción
# ---------------------------------------------------------
m6 <- lm(
IKDC_T3 ~ `T3 SIT TO STAND 2 PIE` * agudo + Edad + `T1 IKDC`,
data = IKDC_mod
)
summary(m6)
##
## Call:
## lm(formula = IKDC_T3 ~ `T3 SIT TO STAND 2 PIE` * agudo + Edad +
## `T1 IKDC`, data = IKDC_mod)
##
## Residuals:
## Min 1Q Median 3Q Max
## -32.910 -6.183 1.196 8.099 27.021
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 29.1601919 10.6549218 2.737 0.00794 **
## `T3 SIT TO STAND 2 PIE` 1.1511832 0.4797582 2.400 0.01920 *
## agudoSí 20.8906783 11.2946019 1.850 0.06878 .
## Edad -0.0002723 0.1044884 -0.003 0.99793
## `T1 IKDC` 0.4059811 0.0929213 4.369 0.0000444 ***
## `T3 SIT TO STAND 2 PIE`:agudoSí -1.2482907 0.6747071 -1.850 0.06871 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 12.3 on 67 degrees of freedom
## (51 observations deleted due to missingness)
## Multiple R-squared: 0.3434, Adjusted R-squared: 0.2944
## F-statistic: 7.007 on 5 and 67 DF, p-value: 0.00002555
datos_m6 <- model.frame(m6)
# n total y por grupo
n_total_m6 <- nrow(datos_m6)
n_total_m6
## [1] 73
# ---------------------------------------------------------
# 2) Diagnóstico del modelo
# ---------------------------------------------------------
par(mfrow = c(2, 2))
plot(m6)
par(mfrow = c(1, 1))
# errores robustos HC3
coeftest(m6, vcov = vcovHC(m6, type = "HC3"))
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 29.16019193 13.43308280 2.1708 0.0334956 *
## `T3 SIT TO STAND 2 PIE` 1.15118325 0.62149045 1.8523 0.0683893 .
## agudoSí 20.89067828 15.43147918 1.3538 0.1803589
## Edad -0.00027228 0.13695291 -0.0020 0.9984196
## `T1 IKDC` 0.40598114 0.11581657 3.5054 0.0008182 ***
## `T3 SIT TO STAND 2 PIE`:agudoSí -1.24829065 0.89740740 -1.3910 0.1688288
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# colinealidad
vif(m6)
## there are higher-order terms (interactions) in this model
## consider setting type = 'predictor'; see ?vif
## `T3 SIT TO STAND 2 PIE` agudo
## 2.132472 14.903708
## Edad `T1 IKDC`
## 1.263002 1.165894
## `T3 SIT TO STAND 2 PIE`:agudo
## 16.426429
# ---------------------------------------------------------
# 3) Comparación con modelo sin interacción
# ---------------------------------------------------------
m6_base <- lm(
IKDC_T3 ~ `T3 SIT TO STAND 2 PIE` + agudo + Edad + `T1 IKDC`,
data = datos_m6
)
anova(m6_base, m6)
## Analysis of Variance Table
##
## Model 1: IKDC_T3 ~ `T3 SIT TO STAND 2 PIE` + agudo + Edad + `T1 IKDC`
## Model 2: IKDC_T3 ~ `T3 SIT TO STAND 2 PIE` * agudo + Edad + `T1 IKDC`
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 68 10652
## 2 67 10134 1 517.74 3.423 0.06871 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
r2_base <- summary(m6_base)$r.squared
r2_int <- summary(m6)$r.squared
delta_r2 <- r2_int - r2_base
delta_r2
## [1] 0.0335468
f2 <- delta_r2 / (1 - r2_int)
f2
## [1] 0.05108885
# ---------------------------------------------------------
# 4) Pendientes simples (moderación)
# ---------------------------------------------------------
slopes_m6 <- emtrends(m6, ~ agudo, var = "`T3 SIT TO STAND 2 PIE`")
slopes_m6
## agudo `T3 SIT TO STAND 2 PIE`.trend SE df lower.CL upper.CL
## No 1.1512 0.480 67 0.194 2.109
## Sí -0.0971 0.503 67 -1.101 0.906
##
## Confidence level used: 0.95
confint(slopes_m6)
## agudo `T3 SIT TO STAND 2 PIE`.trend SE df lower.CL upper.CL
## No 1.1512 0.480 67 0.194 2.109
## Sí -0.0971 0.503 67 -1.101 0.906
##
## Confidence level used: 0.95
# ---------------------------------------------------------
# 5) PREDICCIONES AJUSTADAS (GRÁFICO PRINCIPAL)
# ---------------------------------------------------------
pred_m6 <- ggpredict(
m6,
terms = c("T3 SIT TO STAND 2 PIE [all]", "agudo")
)
## Warning: Looks like you are using syntactically invalid variable names, quoted in
## backticks: `T1 IKDC`. This may result in unexpected behaviour. Please
## rename your variables (e.g., `T1.IKDC` instead of `T1 IKDC`) and fit the
## model again.
g1 <- ggplot(pred_m6, aes(x = x, y = predicted, color = group, fill = group)) +
geom_line(linewidth = 1.2) +
geom_ribbon(aes(ymin = conf.low, ymax = conf.high), alpha = 0.2, color = NA) +
coord_cartesian(ylim = c(0, 100)) +
labs(
title = "Figura 1. Predicción ajustada de IKDC T3 según cambio en Sit to Stand",
subtitle = "Modelo con interacción ajustado por Edad e IKDC basal",
x = "STS T3",
y = "IKDC T3 predicho (0–100)",
color = "Agudo",
fill = "Agudo",
caption = "Las líneas representan valores predichos del modelo lineal; las bandas indican IC95%."
) +
theme_minimal()
g1
# ---------------------------------------------------------
# 6) DATOS OBSERVADOS + MODELO
# ---------------------------------------------------------
g2 <- ggplot() +
geom_point(
data = datos_m6,
aes(x = `T3 SIT TO STAND 2 PIE`, y = IKDC_T3, color = agudo),
alpha = 0.5,
size = 2
) +
geom_line(
data = pred_m6,
aes(x = x, y = predicted, color = group),
linewidth = 1.2
) +
geom_ribbon(
data = pred_m6,
aes(x = x, ymin = conf.low, ymax = conf.high, fill = group),
alpha = 0.15,
color = NA
) +
coord_cartesian(ylim = c(0, 100)) +
labs(
title = "Figura 2. Datos observados y predicción del modelo",
subtitle = "Dispersión real y ajuste del modelo",
x = "STS T3",
y = "IKDC T3 (0–100)",
color = "Agudo",
fill = "Agudo",
caption = "Los puntos representan observaciones individuales; las líneas corresponden al modelo ajustado."
) +
theme_minimal()
g2
# ---------------------------------------------------------
# 7) EFECTO DEL BASELINE (MUY IMPORTANTE)
# ---------------------------------------------------------
g3 <- ggplot(datos_m6, aes(x = `T1 IKDC`, y = IKDC_T3)) +
geom_point(alpha = 0.5, size = 2) +
geom_smooth(method = "lm", se = TRUE, linewidth = 1) +
coord_cartesian(ylim = c(0, 100)) +
labs(
title = "Figura 3. Asociación entre IKDC basal e IKDC T3",
x = "IKDC basal (T1)",
y = "IKDC T3 (0–100)",
caption = "Relación lineal entre estado basal y resultado."
) +
theme_minimal()
g3
## `geom_smooth()` using formula = 'y ~ x'
# ---------------------------------------------------------
# 8) INFLUENCIA DE OBSERVACIONES
# ---------------------------------------------------------
cooksd <- cooks.distance(m6)
corte <- 4 / nrow(datos_m6)
corte
## [1] 0.05479452
influyentes <- which(cooksd > corte)
influyentes
## 30 62 69 88 89 98
## 11 30 32 46 47 53
plot(m6, which = 4)
# ---------------------------------------------------------
# 9) SENSIBILIDAD (SIN INFLUYENTES)
# ---------------------------------------------------------
if (length(influyentes) > 0) {
datos_sens <- datos_m6[-influyentes, ]
m6_sens <- lm(
IKDC_T3 ~ `T3 SIT TO STAND 2 PIE` * agudo + Edad + `T1 IKDC`,
data = datos_sens
)
summary(m6_sens)
} else {
cat("No hay observaciones influyentes\n")
}
##
## Call:
## lm(formula = IKDC_T3 ~ `T3 SIT TO STAND 2 PIE` * agudo + Edad +
## `T1 IKDC`, data = datos_sens)
##
## Residuals:
## Min 1Q Median 3Q Max
## -21.373 -7.223 2.169 6.816 24.859
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 28.02764 10.72981 2.612 0.0113 *
## `T3 SIT TO STAND 2 PIE` 0.84353 0.49102 1.718 0.0909 .
## agudoSí 23.54423 11.74394 2.005 0.0494 *
## Edad 0.04457 0.10251 0.435 0.6653
## `T1 IKDC` 0.48929 0.08639 5.664 0.000000426 ***
## `T3 SIT TO STAND 2 PIE`:agudoSí -1.21571 0.69704 -1.744 0.0862 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 10.33 on 61 degrees of freedom
## Multiple R-squared: 0.4611, Adjusted R-squared: 0.4169
## F-statistic: 10.44 on 5 and 61 DF, p-value: 0.0000002888
# ---------------------------------------------------------
# 10) TABLA EXPLORATORIA DE DISTRIBUCIÓN DEL PREDICTOR
# ---------------------------------------------------------
datos_m6$STS_cat <- cut(datos_m6$`T3 SIT TO STAND 2 PIE`, breaks = 3)
tabla_celdas_m6 <- table(datos_m6$STS_cat, datos_m6$agudo)
tabla_celdas_m6
##
## No Sí
## (4.98,12] 14 3
## (12,19] 23 19
## (19,26] 6 8
# ---------------------------------------------------------
# 11) RESUMEN DE PARÁMETROS DEL MODELO
# ---------------------------------------------------------
coef_m6 <- coef(summary(m6))
n_agudo <- table(datos_m6$agudo)
resumen_m6 <- data.frame(
modelo = "m6",
n_total = n_total_m6,
n_no_agudo = as.numeric(n_agudo["No"]),
n_si_agudo = as.numeric(n_agudo["Sí"]),
beta_interaccion = coef_m6["`T3 SIT TO STAND 2 PIE`:agudoSí", "Estimate"],
se_interaccion = coef_m6["`T3 SIT TO STAND 2 PIE`:agudoSí", "Std. Error"],
p_interaccion = coef_m6["`T3 SIT TO STAND 2 PIE`:agudoSí", "Pr(>|t|)"],
r2_base = r2_base,
r2_interaccion = r2_int,
delta_r2 = delta_r2,
f2 = f2,
cook_cutoff = corte,
n_influyentes = length(influyentes)
)
resumen_m6
## modelo n_total n_no_agudo n_si_agudo beta_interaccion se_interaccion
## 1 m6 73 43 30 -1.248291 0.6747071
## p_interaccion r2_base r2_interaccion delta_r2 f2 cook_cutoff
## 1 0.068706 0.3098167 0.3433635 0.0335468 0.05108885 0.05479452
## n_influyentes
## 1 6
El cambio en Sit to Stand 2 pies se asocia con IKDC T3, moderado por condición qx
##
## Call:
## lm(formula = IKDC_T3 ~ delta_STS * `Resolución qx` + Edad +
## `T1 IKDC`, data = IKDC_mod)
##
## Residuals:
## Min 1Q Median 3Q Max
## -33.074 -6.863 1.138 8.362 29.066
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 46.22155 7.72045 5.987 0.0000000794 ***
## delta_STS 0.81197 0.52122 1.558 0.124
## `Resolución qx`Sí -5.79575 5.60179 -1.035 0.304
## Edad -0.04988 0.09984 -0.500 0.619
## `T1 IKDC` 0.43432 0.08898 4.881 0.0000062684 ***
## delta_STS:`Resolución qx`Sí 0.60044 1.08564 0.553 0.582
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 12.09 on 71 degrees of freedom
## (47 observations deleted due to missingness)
## Multiple R-squared: 0.3396, Adjusted R-squared: 0.2931
## F-statistic: 7.301 on 5 and 71 DF, p-value: 0.00001441
## [1] 77
##
## No Sí
## 66 11
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 46.221551 8.719386 5.3010 0.00000124 ***
## delta_STS 0.811966 0.429528 1.8904 0.06279 .
## `Resolución qx`Sí -5.795749 7.813325 -0.7418 0.46067
## Edad -0.049877 0.117079 -0.4260 0.67139
## `T1 IKDC` 0.434320 0.101394 4.2835 0.00005676 ***
## delta_STS:`Resolución qx`Sí 0.600444 2.165845 0.2772 0.78241
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## there are higher-order terms (interactions) in this model
## consider setting type = 'predictor'; see ?vif
## delta_STS `Resolución qx` Edad
## 1.399829 2.025127 1.288158
## `T1 IKDC` delta_STS:`Resolución qx`
## 1.133400 2.236411
## Analysis of Variance Table
##
## Model 1: IKDC_T3 ~ delta_STS + `Resolución qx` + Edad + `T1 IKDC`
## Model 2: IKDC_T3 ~ delta_STS * `Resolución qx` + Edad + `T1 IKDC`
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 72 10418
## 2 71 10373 1 44.691 0.3059 0.5819
## [1] 0.002845374
## [1] 0.004308376
## Resolución qx delta_STS.trend SE df lower.CL upper.CL
## No 0.812 0.521 71 -0.227 1.85
## Sí 1.412 0.934 71 -0.449 3.27
##
## Confidence level used: 0.95
## Resolución qx delta_STS.trend SE df lower.CL upper.CL
## No 0.812 0.521 71 -0.227 1.85
## Sí 1.412 0.934 71 -0.449 3.27
##
## Confidence level used: 0.95
## Warning: Looks like you are using syntactically invalid variable names, quoted in
## backticks: `T1 IKDC`. This may result in unexpected behaviour. Please
## rename your variables (e.g., `T1.IKDC` instead of `T1 IKDC`) and fit the
## model again.
## `geom_smooth()` using formula = 'y ~ x'
## [1] 0.05194805
## 27 43 62 69 88 93 98
## 11 18 33 35 54 56 61
##
## Call:
## lm(formula = IKDC_T3 ~ delta_STS * `Resolución qx` + Edad +
## `T1 IKDC`, data = datos_sens)
##
## Residuals:
## Min 1Q Median 3Q Max
## -20.323 -5.890 1.123 6.023 29.620
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 43.62660 7.15285 6.099 0.0000000685 ***
## delta_STS 0.82545 0.46086 1.791 0.078 .
## `Resolución qx`Sí -2.27343 10.55996 -0.215 0.830
## Edad -0.04801 0.09331 -0.515 0.609
## `T1 IKDC` 0.49280 0.08268 5.960 0.0000001185 ***
## delta_STS:`Resolución qx`Sí -1.59939 3.55281 -0.450 0.654
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 10.62 on 64 degrees of freedom
## Multiple R-squared: 0.4437, Adjusted R-squared: 0.4002
## F-statistic: 10.21 on 5 and 64 DF, p-value: 0.0000003195
##
## No Sí
## (-3.02,3] 38 8
## (3,9] 25 1
## (9,15] 3 2
## modelo n_total n_no_qx n_si_qx beta_interaccion se_interaccion p_interaccion
## 1 m6bis 77 66 11 0.6004445 1.085643 0.5819477
## r2_base r2_interaccion delta_r2 f2 cook_cutoff n_influyentes
## 1 0.3367262 0.3395716 0.002845374 0.004308376 0.05194805 7
El cambio en TAMPA se asocia con IKDC T3, moderado por condición crónica.
##
## Call:
## lm(formula = IKDC_T3 ~ delta_TAMPA * cronico + Edad + `T1 IKDC`,
## data = IKDC_mod)
##
## Residuals:
## Min 1Q Median 3Q Max
## -29.023 -10.048 1.900 7.397 36.298
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 36.38949 7.44273 4.889 0.0000058368 ***
## delta_TAMPA -0.73353 0.33959 -2.160 0.0341 *
## cronicoSí 2.53256 3.45467 0.733 0.4659
## Edad -0.01296 0.10399 -0.125 0.9011
## `T1 IKDC` 0.55646 0.08901 6.252 0.0000000246 ***
## delta_TAMPA:cronicoSí 0.57013 0.39013 1.461 0.1482
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 12.99 on 73 degrees of freedom
## (45 observations deleted due to missingness)
## Multiple R-squared: 0.3831, Adjusted R-squared: 0.3408
## F-statistic: 9.066 on 5 and 73 DF, p-value: 0.0000009714
## [1] 79
##
## No Sí
## 35 44
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 36.389486 8.061920 4.5137 0.000023914 ***
## delta_TAMPA -0.733528 0.343472 -2.1356 0.03606 *
## cronicoSí 2.532556 4.380909 0.5781 0.56498
## Edad -0.012963 0.115781 -0.1120 0.91116
## `T1 IKDC` 0.556457 0.107408 5.1808 0.000001888 ***
## delta_TAMPA:cronicoSí 0.570128 0.418581 1.3620 0.17737
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## there are higher-order terms (interactions) in this model
## consider setting type = 'predictor'; see ?vif
## delta_TAMPA cronico Edad `T1 IKDC`
## 4.042620 1.379489 1.218926 1.149741
## delta_TAMPA:cronico
## 4.347367
## Analysis of Variance Table
##
## Model 1: IKDC_T3 ~ delta_TAMPA + cronico + Edad + `T1 IKDC`
## Model 2: IKDC_T3 ~ delta_TAMPA * cronico + Edad + `T1 IKDC`
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 74 12672
## 2 73 12312 1 360.18 2.1356 0.1482
## [1] 0.01804781
## [1] 0.02925517
## cronico delta_TAMPA.trend SE df lower.CL upper.CL
## No -0.734 0.340 73 -1.410 -0.0567
## Sí -0.163 0.198 73 -0.558 0.2311
##
## Confidence level used: 0.95
## cronico delta_TAMPA.trend SE df lower.CL upper.CL
## No -0.734 0.340 73 -1.410 -0.0567
## Sí -0.163 0.198 73 -0.558 0.2311
##
## Confidence level used: 0.95
## Warning: Looks like you are using syntactically invalid variable names, quoted in
## backticks: `T1 IKDC`. This may result in unexpected behaviour. Please
## rename your variables (e.g., `T1.IKDC` instead of `T1 IKDC`) and fit the
## model again.
## `geom_smooth()` using formula = 'y ~ x'
## [1] 0.05063291
## 15 48 63 69 88 107 117
## 6 26 34 36 50 64 74
##
## Call:
## lm(formula = IKDC_T3 ~ delta_TAMPA * cronico + Edad + `T1 IKDC`,
## data = datos_sens)
##
## Residuals:
## Min 1Q Median 3Q Max
## -20.312 -9.910 0.408 7.462 23.192
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 29.321465 6.191556 4.736 0.00001199311393 ***
## delta_TAMPA -0.978954 0.312462 -3.133 0.00258 **
## cronicoSí -0.969222 3.048728 -0.318 0.75156
## Edad 0.001461 0.087363 0.017 0.98670
## `T1 IKDC` 0.682874 0.078264 8.725 0.00000000000134 ***
## delta_TAMPA:cronicoSí 0.501501 0.365998 1.370 0.17526
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 10.44 on 66 degrees of freedom
## Multiple R-squared: 0.5684, Adjusted R-squared: 0.5358
## F-statistic: 17.39 on 5 and 66 DF, p-value: 0.00000000006038
##
## No Sí
## (-27.1,-8] 7 15
## (-8,11] 28 28
## (11,30.1] 0 1
## modelo n_total n_no_cronico n_si_cronico beta_interaccion se_interaccion
## 1 m7 79 35 44 0.570128 0.3901302
## p_interaccion r2_base r2_interaccion delta_r2 f2 cook_cutoff
## 1 0.1482029 0.3650421 0.3830899 0.01804781 0.02925517 0.05063291
## n_influyentes
## 1 7
Stroke test en T3 se asocia con IKDC T3, moderado por resolución quirúrgica.
Lo sacaria
##
## Call:
## lm(formula = IKDC_T3 ~ edema * `Resolución qx` + Edad + `T1 IKDC`,
## data = IKDC_mod)
##
## Residuals:
## Min 1Q Median 3Q Max
## -33.235 -10.960 2.120 8.173 39.055
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 45.28215 7.64406 5.924 0.0000000669 ***
## edemaSí -2.62217 3.54544 -0.740 0.462
## `Resolución qx`Sí -9.42243 6.88626 -1.368 0.175
## Edad -0.07568 0.09523 -0.795 0.429
## `T1 IKDC` 0.51220 0.09081 5.640 0.0000002232 ***
## edemaSí:`Resolución qx`Sí 5.12687 7.99807 0.641 0.523
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 12.95 on 84 degrees of freedom
## (34 observations deleted due to missingness)
## Multiple R-squared: 0.4155, Adjusted R-squared: 0.3807
## F-statistic: 11.94 on 5 and 84 DF, p-value: 0.000000009633
## [1] 90
##
## No Sí
## 70 20
##
## No Sí
## 53 37
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 45.282152 8.254973 5.4854 0.0000004267 ***
## edemaSí -2.622173 3.283131 -0.7987 0.4267
## `Resolución qx`Sí -9.422428 7.320192 -1.2872 0.2016
## Edad -0.075683 0.112086 -0.6752 0.5014
## `T1 IKDC` 0.512204 0.098394 5.2056 0.0000013503 ***
## edemaSí:`Resolución qx`Sí 5.126868 8.645122 0.5930 0.5548
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## there are higher-order terms (interactions) in this model
## consider setting type = 'predictor'; see ?vif
## edema `Resolución qx` Edad
## 1.634099 4.401034 1.164909
## `T1 IKDC` edema:`Resolución qx`
## 1.336602 5.020906
## Analysis of Variance Table
##
## Model 1: IKDC_T3 ~ edema + `Resolución qx` + Edad + `T1 IKDC`
## Model 2: IKDC_T3 ~ edema * `Resolución qx` + Edad + `T1 IKDC`
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 85 14148
## 2 84 14079 1 68.87 0.4109 0.5233
## [1] 0.002859084
## [1] 0.004891645
## edema Resolución qx emmean SE df lower.CL upper.CL
## No No 67.2 1.97 84 63.3 71.1
## Sí No 64.5 2.86 84 58.9 70.2
## No Sí 57.7 6.53 84 44.8 70.7
## Sí Sí 60.2 3.51 84 53.3 67.2
##
## Confidence level used: 0.95
## edema_pairwise Resolución qx_pairwise estimate SE df t.ratio p.value
## No - Sí No - Sí 5.13 8 84 0.641 0.5233
## Warning: Looks like you are using syntactically invalid variable names, quoted in
## backticks: `T1 IKDC`. This may result in unexpected behaviour. Please
## rename your variables (e.g., `T1.IKDC` instead of `T1 IKDC`) and fit the
## model again.
## `geom_smooth()` using formula = 'y ~ x'
## [1] 0.04444444
## 27 69 81 88
## 15 44 55 62
##
## Call:
## lm(formula = IKDC_T3 ~ edema * `Resolución qx` + Edad + `T1 IKDC`,
## data = datos_sens)
##
## Residuals:
## Min 1Q Median 3Q Max
## -23.382 -9.534 1.398 8.463 30.888
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 44.07040 7.04737 6.253 0.00000001849 ***
## edemaSí -2.70130 3.19290 -0.846 0.400
## `Resolución qx`Sí -11.26165 8.65048 -1.302 0.197
## Edad -0.10778 0.08872 -1.215 0.228
## `T1 IKDC` 0.57249 0.08441 6.782 0.00000000185 ***
## edemaSí:`Resolución qx`Sí 4.41819 9.36285 0.472 0.638
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 11.64 on 80 degrees of freedom
## Multiple R-squared: 0.534, Adjusted R-squared: 0.5049
## F-statistic: 18.34 on 5 and 80 DF, p-value: 0.000000000004353
##
## No Sí
## No 49 4
## Sí 21 16
##
## No Sí
## No 0.7 0.2
## Sí 0.3 0.8
## termino modelo n_total n_no_qx n_si_qx beta_interaccion
## 1 edemaSí:`Resolución qx`Sí m8 90 70 20 5.126868
## se_interaccion p_interaccion r2_base r2_interaccion delta_r2 f2
## 1 7.998066 0.523259 0.4126577 0.4155168 0.002859084 0.004891645
## cook_cutoff n_influyentes
## 1 0.04444444 4
Stroke test en T3 se asocia con IKDC T3, moderado por condicion aguda
##
## Call:
## lm(formula = IKDC_T3 ~ edema * agudo + Edad + `T1 IKDC`, data = IKDC_mod)
##
## Residuals:
## Min 1Q Median 3Q Max
## -33.431 -8.458 0.849 7.790 40.286
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 42.59441 8.48730 5.019 0.000003797 ***
## edemaSí -9.62697 4.66812 -2.062 0.0429 *
## agudoSí -1.78854 3.94154 -0.454 0.6514
## Edad -0.02171 0.10537 -0.206 0.8374
## `T1 IKDC` 0.53356 0.09709 5.496 0.000000593 ***
## edemaSí:agudoSí 9.56408 6.34024 1.508 0.1359
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 13.23 on 70 degrees of freedom
## (48 observations deleted due to missingness)
## Multiple R-squared: 0.4276, Adjusted R-squared: 0.3867
## F-statistic: 10.46 on 5 and 70 DF, p-value: 0.0000001607
## [1] 76
##
## No Sí
## 41 35
##
## No Sí
## 48 28
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 42.594406 9.495324 4.4858 0.000027778 ***
## edemaSí -9.626975 5.173067 -1.8610 0.06695 .
## agudoSí -1.788537 4.527685 -0.3950 0.69403
## Edad -0.021708 0.123365 -0.1760 0.86083
## `T1 IKDC` 0.533561 0.109922 4.8540 0.000007095 ***
## edemaSí:agudoSí 9.564082 6.990320 1.3682 0.17563
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## there are higher-order terms (interactions) in this model
## consider setting type = 'predictor'; see ?vif
## edema agudo Edad `T1 IKDC` edema:agudo
## 2.202369 1.676450 1.155133 1.291091 2.765913
## Analysis of Variance Table
##
## Model 1: IKDC_T3 ~ edema + agudo + Edad + `T1 IKDC`
## Model 2: IKDC_T3 ~ edema * agudo + Edad + `T1 IKDC`
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 71 12646
## 2 70 12248 1 398.16 2.2755 0.1359
## [1] 0.01860787
## [1] 0.03250705
## edema agudo emmean SE df lower.CL upper.CL
## No No 68.0 2.60 70 62.8 73.1
## Sí No 58.3 3.79 70 50.8 65.9
## No Sí 66.2 3.02 70 60.2 72.2
## Sí Sí 66.1 3.62 70 58.9 73.3
##
## Confidence level used: 0.95
## edema_pairwise agudo_pairwise estimate SE df t.ratio p.value
## No - Sí No - Sí 9.56 6.34 70 1.508 0.1359
## Warning: Looks like you are using syntactically invalid variable names, quoted in
## backticks: `T1 IKDC`. This may result in unexpected behaviour. Please
## rename your variables (e.g., `T1.IKDC` instead of `T1 IKDC`) and fit the
## model again.
## `geom_smooth()` using formula = 'y ~ x'
## [1] 0.05263158
## 15 63 69 88
## 6 34 36 49
##
## Call:
## lm(formula = IKDC_T3 ~ edema * agudo + Edad + `T1 IKDC`, data = datos_sens)
##
## Residuals:
## Min 1Q Median 3Q Max
## -23.8820 -7.2671 0.0898 7.1559 19.3284
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 36.394444 7.181202 5.068 0.000003474145 ***
## edemaSí -11.727197 3.926817 -2.986 0.00396 **
## agudoSí -1.557326 3.368574 -0.462 0.64538
## Edad 0.004915 0.090539 0.054 0.95687
## `T1 IKDC` 0.624529 0.083929 7.441 0.000000000265 ***
## edemaSí:agudoSí 14.286888 5.394890 2.648 0.01011 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 10.87 on 66 degrees of freedom
## Multiple R-squared: 0.577, Adjusted R-squared: 0.5449
## F-statistic: 18 on 5 and 66 DF, p-value: 0.00000000003189
##
## No Sí
## No 28 20
## Sí 13 15
##
## No Sí
## No 0.6829268 0.5714286
## Sí 0.3170732 0.4285714
## termino modelo n_total n_no_agudo n_si_agudo beta_interaccion
## 1 edemaSí:agudoSí m8bis 76 41 35 9.564082
## se_interaccion p_interaccion r2_base r2_interaccion delta_r2 f2
## 1 6.340237 0.1359337 0.4089666 0.4275745 0.01860787 0.03250705
## cook_cutoff n_influyentes
## 1 0.05263158 4
library(dplyr)
# =========================================================
# FUNCIÓN PARA EXTRAER RESULTADOS DE CADA MODELO
# =========================================================
extraer_resultados <- function(modelo, modelo_base, nombre_hipotesis, nombre_modelo,
formula_texto, patron_interaccion) {
coef_tab <- coef(summary(modelo))
# buscar fila del término de interacción
fila_int <- grep(patron_interaccion, rownames(coef_tab))
if (length(fila_int) != 1) {
stop(
paste0(
"El patrón '", patron_interaccion,
"' encontró ", length(fila_int),
" filas en el modelo ", nombre_modelo,
". Revisá rownames(coef(summary(modelo)))."
)
)
}
beta <- coef_tab[fila_int, "Estimate"]
pval <- coef_tab[fila_int, "Pr(>|t|)"]
# IC95%
ic <- confint(modelo)
ic_int <- ic[fila_int, ]
# R2
r2 <- summary(modelo)$r.squared
r2_base <- summary(modelo_base)$r.squared
delta_r2 <- r2 - r2_base
# f2
f2 <- delta_r2 / (1 - r2)
# n
n <- nrow(model.frame(modelo))
data.frame(
Hipotesis = nombre_hipotesis,
Modelo = nombre_modelo,
Formula = formula_texto,
Beta_interaccion = round(beta, 2),
IC95 = paste0("(", round(ic_int[1], 2), "; ", round(ic_int[2], 2), ")"),
p_interaccion = round(pval, 3),
R2 = round(r2, 2),
Delta_R2 = round(delta_r2, 2),
f2 = round(f2, 2),
n = n
)
}
# =========================================================
# TABLA FINAL PUBLICABLE
# SOLO MODELOS PRINCIPALES AJUSTADOS POR EDAD + T1 IKDC
# SIN ANÁLISIS DE SENSIBILIDAD
# =========================================================
tabla_final_publicable <- bind_rows(
extraer_resultados(
modelo = m1,
modelo_base = m1_base,
nombre_hipotesis = "H1",
nombre_modelo = "m1",
formula_texto = "IKDC_T3 ~ delta_ROM * Resolución qx + Edad + T1 IKDC",
patron_interaccion = "^delta_ROM:`Resolución qx`"
),
extraer_resultados(
modelo = m3,
modelo_base = m3_base,
nombre_hipotesis = "H3",
nombre_modelo = "m3",
formula_texto = "IKDC_T3 ~ delta_PCS * Resolución qx + Edad + T1 IKDC",
patron_interaccion = "^delta_PCS:`Resolución qx`"
),
extraer_resultados(
modelo = m5,
modelo_base = m5_base,
nombre_hipotesis = "H5",
nombre_modelo = "m5",
formula_texto = "IKDC_T3 ~ delta_PCS * cronico + Edad + T1 IKDC",
patron_interaccion = "^delta_PCS:cronico"
),
extraer_resultados(
modelo = m6_2,
modelo_base = m6_2_base,
nombre_hipotesis = "H6",
nombre_modelo = "m6_2",
formula_texto = "IKDC_T3 ~ T3 SIT TO STAND 2 PIE * agudo + Edad + T1 IKDC",
patron_interaccion = "^delta_STS:agudoSí"
),
extraer_resultados(
modelo = m6bis,
modelo_base = m6bis_base,
nombre_hipotesis = "H6bis",
nombre_modelo = "m6bis",
formula_texto = "IKDC_T3 ~ delta_STS * Resolución qx + Edad + T1 IKDC",
patron_interaccion = "^delta_STS:`Resolución qx`"
),
extraer_resultados(
modelo = m6,
modelo_base = m6_base,
nombre_hipotesis = "H6_alt",
nombre_modelo = "m6",
formula_texto = "IKDC_T3 ~ T3 SIT TO STAND 2 PIE * agudo + Edad + T1 IKDC",
patron_interaccion = "^`T3 SIT TO STAND 2 PIE`:agudoSí"
),
extraer_resultados(
modelo = m7,
modelo_base = m7_base,
nombre_hipotesis = "H7",
nombre_modelo = "m7",
formula_texto = "IKDC_T3 ~ delta_TAMPA * cronico + Edad + T1 IKDC",
patron_interaccion = "^delta_TAMPA:cronico"
)
)
tabla_final_publicable
## Hipotesis Modelo Formula
## 1 H1 m1 IKDC_T3 ~ delta_ROM * Resolución qx + Edad + T1 IKDC
## 2 H3 m3 IKDC_T3 ~ delta_PCS * Resolución qx + Edad + T1 IKDC
## 3 H5 m5 IKDC_T3 ~ delta_PCS * cronico + Edad + T1 IKDC
## 4 H6 m6_2 IKDC_T3 ~ T3 SIT TO STAND 2 PIE * agudo + Edad + T1 IKDC
## 5 H6bis m6bis IKDC_T3 ~ delta_STS * Resolución qx + Edad + T1 IKDC
## 6 H6_alt m6 IKDC_T3 ~ T3 SIT TO STAND 2 PIE * agudo + Edad + T1 IKDC
## 7 H7 m7 IKDC_T3 ~ delta_TAMPA * cronico + Edad + T1 IKDC
## Beta_interaccion IC95 p_interaccion R2 Delta_R2 f2 n
## 1 0.07 (-0.35; 0.49) 0.755 0.41 0.00 0.00 92
## 2 -1.32 (-2.42; -0.22) 0.020 0.48 0.03 0.07 92
## 3 -0.33 (-0.98; 0.33) 0.324 0.43 0.01 0.01 78
## 4 -3.28 (-6.02; -0.55) 0.020 0.41 0.06 0.10 65
## 5 0.60 (-1.56; 2.77) 0.582 0.34 0.00 0.00 77
## 6 -1.25 (-2.6; 0.1) 0.069 0.34 0.03 0.05 73
## 7 0.57 (-0.21; 1.35) 0.148 0.38 0.02 0.03 79
rownames(coef(summary(m6_2)))
## [1] "(Intercept)" "delta_STS" "agudoSí"
## [4] "Edad" "`T1 IKDC`" "delta_STS:agudoSí"
Como interpretarlo?
Elegimos al paciente del ID 15
## # A tibble: 1 × 6
## `Número de ID` IKDC_T3 delta_PCS `Resolución qx` Edad `T1 IKDC`
## <dbl> <dbl> <dbl> <fct> <dbl> <dbl>
## 1 15 89 10 No 45 33
Tomamos como ejemplo a la hipotesis 3 para intentar predecir el valor de IKDC en T3 a partir de sus valores
## IKDC_T3 = 41.84 - 0.39·delta_PCS - 10.23·qx_Sí - 0.08·Edad + 0.53·IKDC_T1 - 1.32·(delta_PCS × qx_Sí)
pendiente_no_qx <- b1
pendiente_si_qx <- b1 + b5
data.frame(
grupo = c("No qx", "Sí qx"),
pendiente_delta_PCS = round(c(pendiente_no_qx, pendiente_si_qx), 2)
)
## grupo pendiente_delta_PCS
## 1 No qx -0.39
## 2 Sí qx -1.71
Por cada punto que disminuye la PCS en T3 comparado a T1, a igual edad y IKDC en T1, el IKDC en T3 aumenta 1.71 puntos en qx y 0.39 en no qx. (interaccion a favor de los qx)
Se realizaron análisis de moderación mediante modelos de regresión lineal múltiple para evaluar la asociación entre diferentes variables predictoras (cambios longitudinales y variables categóricas) y el resultado funcional medido mediante el IKDC al mes o alta de tratamiento (IKDC_T3), explorando el rol moderador de variables clínicas relevantes (resolución quirúrgica, estado crónico y estado agudo).
Para cada hipótesis, se ajustó un modelo con término de interacción entre la variable predictora y el moderador, ajustando por edad e IKDC basal (T1 IKDC). Las variables continuas fueron incorporadas en su escala original (cambios T3–T1), mientras que las variables categóricas se modelaron como factores.
El análisis de moderación se basó en la estimación del término de interacción (predictor × moderador). (Cita: Hayes AF. Introduction to Mediation, Moderation, and Conditional Process Analysis: A Regression-Based Approach. 2nd ed. New York: Guilford Press; 2018.) Para evaluar su contribución, se comparó cada modelo completo con un modelo reducido sin interacción mediante análisis de varianza (ANOVA), estimándose el cambio en la varianza explicada (ΔR²) y el tamaño de efecto f², calculado como:
f² = ΔR² / (1 − R² del modelo completo)
Los valores de f² se interpretaron de acuerdo con los criterios propuestos por Cohen: valores ≥ 0,02 se consideraron efectos pequeños, ≥ 0,15 efectos moderados y ≥ 0,35 efectos grandes. (Cita: Cohen J. Statistical Power Analysis for the Behavioral Sciences. 2nd ed. Lawrence Erlbaum Associates; 1988.)
Los efectos de las pendientes condicionadas se estimaron mediante el paquete emmeans, permitiendo interpretar la asociación entre la variable predictora y el IKDC en cada nivel del moderador.
La evaluación de supuestos incluyó:
Normalidad de residuos, mediante inspección visual de Q-Q plots.
Homoscedasticidad, mediante inspección gráfica de residuos estandarizados versus valores ajustados.
Colinealidad, mediante el factor de inflación de la varianza (VIF), considerándose valores < 5 como aceptables.
Observaciones influyentes, indentificadas mediante la distancia de Cook, considerando como umbral valores superiores a 4/n, donde n corresponde al número de observaciones incluidas en el modelo.
Las variables numéricas continuas que asumieron una distribución normal se reportan como media y desvío estándar (DE). En caso contrario se reportan como mediana y rango intercuartílico (RIQ). Las variables categóricas se reportan como número de presentación y porcentaje (%). Para valorar la normalidad de la muestra se utilizó el test estadístico de Shapiro-Wilk y la evaluación gráfica mediante histogramas, boxplots y Q-Q plots. Se consideró como estadísticamente significativo un p ≤ 0,05. Para todos los análisis se utilizó el programa R versión 4.2.2.(Cita: R Core Team (2022). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. URL: https://www.R-project.org/)
Se ajustaron ocho modelos de moderación evaluando distintas combinaciones de predictores y moderadores sobre el IKDC en T3. La evaluación de supuestos mostró un comportamiento globalmente adecuado. La inspección visual de los residuos no evidenció desviaciones relevantes de la normalidad ni patrones claros de heterocedasticidad. No se observaron problemas relevantes de colinealidad (VIF < 5 en todos los casos).
Se observó una interacción significativa entre el cambio en PCS y la resolución quirúrgica (β ≈ −1,32; p ≈ 0,02), con un incremento en la varianza explicada (ΔR² ≈ 0,03; f² ≈ 0,07), lo que indica un efecto de moderación de magnitud pequeña a moderada.
Las pendientes condicionales mostraron que el aumento en la PCS (empeoramiento del catastrofismo) se asoció con una disminución del IKDC tanto en pacientes no quirúrgicos (β ≈ −0,39) como quirúrgicos (β ≈ −1,71), siendo esta asociación más pronunciada en el grupo quirúrgico.
En contraste, no se observaron efectos de moderación significativos para el cambio en ROM (p ≈ 0,83; ΔR² ≈ 0,00; f² trivial), el cambio en STS (p ≈ 0,34; ΔR² ≈ 0,01; f² ≈ 0,01) ni la presencia de edema (p ≈ 0,52; ΔR² ≈ 0,00; f² ≈ 0,01).
Moderación por estado crónico
No se observó interacción significativa entre el cambio en STS y el estado agudo (β ≈ −0,60; p ≈ 0,44; f² ≈ 0,01). El cambio en STS se asoció positivamente con el IKDC (β ≈ 1,34; p < 0,01), y este efecto fue consistente entre pacientes agudos y no agudos.
En el modelo con edema como predictor, no se evidenció interacción significativa (β ≈ 9,56; p ≈ 0,14; f² ≈ 0,03), aunque los análisis descriptivos sugirieron que el edema se asoció con menor IKDC en pacientes no agudos, pero no en agudos. Sin embargo, en el análisis de sensibilidad, la exclusión de observaciones influyentes se asoció con un aumento en la magnitud del coeficiente de interacción y una disminución de su valor p, lo que sugiere que este resultado podría ser sensible a casos individuales y debe interpretarse con cautela.
Se identificaron observaciones influyentes mediante la distancia de Cook (umbral 4/n). En la mayoría de los modelos, la exclusión de estas observaciones no modificó sustancialmente los resultados, manteniéndose la magnitud y significación de los coeficientes.
No obstante, en algunos modelos, particularmente aquellos que incluyeron edema como predictor, los resultados mostraron cierta sensibilidad a la exclusión de observaciones influyentes, lo que indica una posible dependencia de casos individuales en dichas estimaciones.