title: “martin_delgado.ANALISIS”
output:
pdf_document: default
html_document:
df_print: paged
word_document: default

María Isabel Martín Delgado Master Salud Digital Analisis de datos. Práctica final

PREGUNTA 1

EXPLICA QUE SON LAS REGLAS DE ASOCIACION.

El aprendizaje de reglas de asociación es una de las técnicas más comunes en la minería de datos, así como en el aprendizaje automático. Las reglas de asociación se definen como un conjunto de técnicas que permiten establecer relaciones de interés con la finalidad de descubrir hechos que aporten valor dentro de las variables que facilitan los datos(1). La minería de reglas de asociación se emplea para descubrir patrones de objetos o atributos que suelen ocurrir juntos, a partir del estudio de bases de datos transaccionales, relacionales u otros conjuntos de datos. Esto nos permite establecer relaciones entre variables cualitativas , destacando que esta relación implica asociación en el tiempo, coocurrencia pero no causalidad(2).

AMAZONE (1). El aprendizaje de reglas de asociación es empleado en Amazone o Netflix, buscando asociaciones entre tus búsquedas o las de otros usuarios, de esta forma saben que si un usuario compra, por ejemplo, un libro, qué tan probable es que compre otro libro, donde estos dos libros están relacionados porque otros usuarios los compraron a ambos, la sección “Comprados juntos con frecuencia” consta del paquete, o conjunto de elementos, que muchos usuarios compraron, y la sección “Clientes que compraron este artículo también compraron” consiste en artículos que los usuarios compraron individualmente después o antes de comprar el libro, utilizando reglas de asociación.

REGLAS DE ASOCIACIÓN PARA DETERMINAR FACTORES DE RIESGO EPIDEMIOLÓGICO DE TRANSMISIÓN DE LA ENFERMEDAD DE CHAGAS(3). El objetivo principal consiste en determinar los posibles factores de riesgo epidemiológico de transmisión de la enfermedad de Chagas causada por Trypanosoma Cruzi en poblaciones que reúnan las condiciones biogeográficas apropiadas. Mediante la aplicación de aRules se logra predecir y asociar en un 93% y 100% múltiples factores de riesgo para una serología positiva y negativa, respectivamente, mientras que por el método convencional de Chi-cuadrado se determinan sólo dos factores de riesgo asociados con la seropositividad.

ASSOCIATION RULE LEARNING IN NEUROPSYCHOLOGICAL DATA ANALYSIS FOR ALZHEIMER’S DISEASE (4) En este artículo, destacan las limitaciones de los métodos de análisis tradicionales para la evaluación de aspectos neuropsicológicos en pacientes con enfermedad de Alzheimer. El objetivo era encontrar la utilidad clínica de un método de análisis de los datos brutos y su viabilidad para predecir patrones de respuesta y ayuda en la toma de decisiones clínicas. Para ello evaluaron la utilidad del aprendizaje de reglas de asociación como herramienta de análisis para datos neuropsicológicos brutos, utilizando (FP-Growth), demostrando que es aplicable como herramienta de análisis complementario.

PREGUNTA 2.

CARACTERIZACION DEL DATASET.

sarcopenia_data <- read.csv("C:/Users/Sotto Family.DESKTOP-P9Q8G8G/Desktop/sarcopenia_data.txt", na.strings="", stringsAsFactors=TRUE)
datos<-sarcopenia_data

#Analizamos las caracteristicas del dataset llamado datos.

#Descargamos los paquetes

library(arules)
## Loading required package: Matrix
## 
## Attaching package: 'arules'
## The following objects are masked from 'package:base':
## 
##     abbreviate, write
library (arulesViz)
library (tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5     v purrr   0.3.4
## v tibble  3.1.2     v dplyr   1.0.7
## v tidyr   1.1.3     v stringr 1.4.0
## v readr   1.4.0     v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x tidyr::expand() masks Matrix::expand()
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
## x tidyr::pack()   masks Matrix::pack()
## x dplyr::recode() masks arules::recode()
## x tidyr::unpack() masks Matrix::unpack()
library(dplyr)

Analisis y limpieza del dataset,eliminando duplicados y espacios en blanco.

#A la hora de registrar los datos, debido a que se trata de un proceso manual, pueden producirse errores humanos. Por ejemplo, la persona que codifica puede haber introducido un espacio en blanco o se pueden haber producido duplicaciones en los registros, por eso es importante identificar si existen datos duplicados o registos vacíos, ya que no creo que aporten nada a las reglas.

str(datos)
## 'data.frame':    20796 obs. of  2 variables:
##  $ PatientID: int  1 2 2 3 3 3 4 5 5 5 ...
##  $ Symptom  : Factor w/ 36 levels "Abdominal_Obesity",..: 21 25 25 1 24 4 7 32 12 21 ...
datosSD <-datos[!duplicated (datos), ]
view(datosSD)
# Datos libres de duplicados ..... 19.146
datosSDN <- na.omit(datosSD)
view(datosSDN)
# Datos libres duplicados y blancos ..... 18.960
summary(datosSDN)
##    PatientID                Symptom    
##  Min.   :   1   Sarcopenia      :4528  
##  1st Qu.:2523   Obesity         :3097  
##  Median :5035   Muscle_Weakness :1350  
##  Mean   :4944   Muscular_Atrophy: 983  
##  3rd Qu.:7358   Inflammation    : 815  
##  Max.   :9684   Malnutrition    : 753  
##                 (Other)         :7434
#analizamos los 5 síntomas mas frecuentes antes de trabajar con transacciones.El síntoma más frecuente es sarcopenia, seguido de obesidad, debilidad muscular, atrofia muscular, inflamación y malnutrición y realizamos una gráfica, donde se aprecia la distribución de los síntomas#

qplot(PatientID, Symptom, data = datosSDN, colour ="red")

Empezamos con arules. Importacion de datos a un objeto tipo transaction para trabajar en arules.

 datos_split <- split(x = datosSDN$Symptom, f = datosSDN$PatientID)
transacciones <- as(datos_split, Class = "transactions")
transacciones
## transactions in sparse format with
##  9409 transactions (rows) and
##  36 items (columns)
#Analizamos los síntomas más frecuentes en nuestras transacciones
summary(transacciones)
## transactions as itemMatrix in sparse format with
##  9409 rows (elements/itemsets/transactions) and
##  36 columns (items) and a density of 0.05597478 
## 
## most frequent items:
##       Sarcopenia          Obesity  Muscle_Weakness Muscular_Atrophy 
##             4528             3097             1350              983 
##     Inflammation          (Other) 
##              815             8187 
## 
## element (itemset/transaction) length distribution:
## sizes
##    1    2    3    4    5    6    7    8    9 
## 3814 3092 1511  676  209   82   16    5    4 
## 
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   1.000   2.000   2.015   3.000   9.000 
## 
## includes extended item information - examples:
##                        labels
## 1           Abdominal_Obesity
## 2            Arteriosclerosis
## 3 Atrophic_Muscular_Disorders
## 
## includes extended transaction information - examples:
##   transactionID
## 1             1
## 2             2
## 3             3

Podemos ver los sintomas más frecuentes y los síntomas presentes mas de una vez.

3.814 transacciones tienen solo un item, el resto tienen dos o mas items y el máximo de items es 9 en 4 transacciones.Explorarmos los datos como transacciones en arules, podemos analizarlos en formato tabla

inspect (transacciones[1:6])
##     items                                   transactionID
## [1] {Obesity}                                           1
## [2] {Pancreatic_Neoplasms}                              2
## [3] {Abdominal_Obesity,                                  
##      Chronic_Kidney_Failure,                             
##      Pain}                                              3
## [4] {Ecoli_Infections}                                  4
## [5] {Inflammation,                                       
##      Obesity,                                            
##      Sarcopenia}                                        5
## [6] {Chronic_Obstructive_Pulmonary_Disease,              
##      Ecoli_Infections,                                   
##      Inflammation}                                      6
# podemos ver los resultados en formato dataframe#
df_transacciones <- as(transacciones, Class = "data.frame")
# Para que el tamaño de la tabla se ajuste mejor, se a tibble
as_tibble(df_transacciones) %>% head()
## # A tibble: 6 x 2
##   items                                                            transactionID
##   <chr>                                                            <chr>        
## 1 {Obesity}                                                        1            
## 2 {Pancreatic_Neoplasms}                                           2            
## 3 {Abdominal_Obesity,Chronic_Kidney_Failure,Pain}                  3            
## 4 {Ecoli_Infections}                                               4            
## 5 {Inflammation,Obesity,Sarcopenia}                                5            
## 6 {Chronic_Obstructive_Pulmonary_Disease,Ecoli_Infections,Inflamm~ 6

A continuación, el siguiente análisis básico consiste en identificar cuáles son los items más frecuentes. Con la función itemFrequency() se puede extraer esta información de un objeto tipo transactions. Por “frecuencia” se hace referencia al soporte de cada síntoma, que es la fracción de pacientes que contienen dicho síntoma respecto al total de todos los pacientes, así tendremos una idea a la hora de buscar el soporte.Miraremos los 10 mas frecuentes y los 10 menos frecuentes.

frecuencia_items <- itemFrequency(x = transacciones, type = "relative")
frecuencia_items %>%  sort(decreasing = TRUE) %>% head (10)
##                            Sarcopenia                               Obesity 
##                            0.48124136                            0.32915294 
##                       Muscle_Weakness                      Muscular_Atrophy 
##                            0.14347965                            0.10447444 
##                          Inflammation                          Malnutrition 
##                            0.08661919                            0.08002976 
##                  Metabolic_Syndrome_X Chronic_Obstructive_Pulmonary_Disease 
##                            0.07227123                            0.06217451 
##                     Abdominal_Obesity                Chronic_Kidney_Failure 
##                            0.05866723                            0.05473483
summary(frecuencia_items)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## 0.00457 0.01400 0.03151 0.05597 0.05572 0.48124
frecuencia_items %>% sort(decreasing = TRUE) %>% tail(10)
##               Hypokinesia          Arteriosclerosis Neurologic_Gait_Disorders 
##               0.014241683               0.013285153               0.013072590 
##   Type2_Diabetes_Mellitus        Reperfusion_Injury             Overnutrition 
##               0.010628122               0.010521841               0.008608779 
##                Starvation             Hip_Fractures            Hypothyroidism 
##               0.008183654               0.006695717               0.006164311 
##       Cognition_Disorders 
##               0.004570092

Finalmente, es preciso explicar qué conclusiones preliminares se pueden obtener de este análisis descriptivo y explicar cómo se podría intentar validar estas conclusiones. Se trata de una base de datos en formato texto, con 20.796 datos repartidos en dos columnas, los ID de los pacientes( 9.684)que son valores numéricos, y los síntomas (36) que son valores cualitativos. Explorando la base de datos y al ser un registro de datos realizados por personas, asumimos que puede haber errores de registro, desde datos duplicados a datos nulos o ausentes u otro tipo de error como errores tipográficos etc.. Buscamos sobre todo síntomas asociados a Sarcopenia, así que nos interesa buscar reglas de asociación que tengan como consecuente Sarcopenia y no creo que nos perjudique en el análisis que algunos pacientes no tengan el diagnóstico de sarcopenia. Si ha sido necesario realizar labores de limpieza, eliminando registros duplicados y NA( pacientes sin registro de síntoma), la mayoría de los pacientes tienen más de un síntoma, siendo el síntoma más frecuente Sarcopenia que es algo esperable, aunque no la toalidad de los pacientes tengan el diagnóstico, posiblemente por errores de rebgistro,tipográficos etc.El segundo mas frecuente es obesidad, su presencia puede ser porque la población de Atlantis sea en general muy obesa o bien por una asociación con sarcopenia. La debilidad muscular, inflamación y malnutrición, son síntomas conocidos que se asociación a sarcopenia (5). Al aplicar el modelo de transacciones de arules, pasamos a 9.409 filas, manteniéndose los síntomas más frecuentes con los mismos valores y podemos ver que la mayoria de las transacciones tienen 1 o 2 síntomas(3.814 y 3.092)respectivamente.. Por frecuencias relativas, la máxima frecuencia es 0.48 para sarcopenia y 0.392 para obesidad, siendo la mínima frecuencia relativa 0.0045 para desordenes cognitivos.

PREGUNTA 3.

Diseña una estrategia optimizada para obtener reglas de asociación a partir de este dataset. Es preciso describir el razonamiento detalladamente. (5)(6) bibliografia

El objetivo es dado un conjunto de registros, encontrar todas las reglas de asociación, con un soporte mayor o igual al umbral mínimo y una confianza mayor o igual al umbral mínimo. Procederemos en dos etapas.

Aplicamos el algoritmo a priori que utiliza técnicas de poda que nos permite reducir el número de operaciones que de otra forma sería enorme, este algoritmo se basa en que si un itemset es frecuente, también lo son todos sus subconjuntos, porque el soporte de un itemset nunca puede ser mayor que el de cualquiera de sus subconjuntos. Estamos buscando reglas de asociación, lo que nos interesa no es conseguir muchas reglas sino que las que obtengamos sean útiles, esto es combinaciones de objetos que tal y como se presentan en el mismo paciente, como se puede asociar a la coexistencia de otros síntomas o enfermedades. A diferencia de los métodos tradicionales de investigación, no se trata de comprobar una Ho, se trata de descubrir. Una vez hemos limpiado la base de datos de duplicados y registros en blanco, procedemos a su análisis, descargando los paquetes arules, arulesViz, tydiverse y dplyr, necesarios para aplicar el algoritmo a priori, obtener gráficos y leer algunos comandos. Necesitamos importar los datos en un objeto tipo transactions, que es el formato para trabajar en R con arules, obteniendo 9409 transactions (rows) and 36 items (columns). De esta forma empezamos a estudiar los datos, buscando los síntomas y conjuntos de síntomas más frecuentes.

#1.BUSCANDO ITEMSETS FRECUENTES.

#2.Buscaremos REGLAS DE ASOCIACION CON EL ALGORITMO A PRIORI y los siguientes indicadores de rendimiento.

FRECUENCIA DE LOS ITEMS INDIVIDUALES.

El análisis básico consiste en identificar los ítems(síntomas) más frecuentes. Aplicamos la función itemFrecueny() a nuestra BD transformada en transacciones. Frecuencia hace referencia al soporte de cada síntoma, que es la fracción de pacientes que contienen dicho síntoma respecto al total de todos los pacientes. Para establecer el soporte mínimo vemos que nuestro item más frecuente es 48% y y el menos frecuente es 0.4%. Es muy importante estudiar cómo se distribuye el soporte de los síntomas individuales en un conjunto de pacientes para identificar itemsets frecuentes o crear reglas de asociación, ya que, dependiendo del caso, tendrá sentido un límite de soporte u otro. Por lo general, cuando el número de posibles items es muy grande (varios miles) prácticamente todos los artículos son raros, por lo que los soportes son muy bajos. El soporte máximo es es 48.5%, el soporte elegido debe ser menor de 48% y mayor o igual de 0.4% que es el min soporte encontrado. Observamos la distribución de los items por frecuencia y ordenados de mas a menos.

itemFrequencyPlot(transacciones, support = 0.005, cex.names = 0.8)

options(repr.plot.width = 3, repr.plot.height = 2)
##ordenados de mas a menor frecuencia
itemFrequencyPlot(transacciones , topN = 36)

#ITEMSETS FRECUENTES

Se procede a extraer aquellos itemsets frecuentes mediante la función arules, incluidos los formados por un único item , para posteriormente buscar las reglas de asociación El soporte se usa primero para encontrar conjuntos de elementos frecuentes (significativos) que explotan su propiedad de cierre descendente para podar el espacio de búsqueda. Luego, la confianza se usa en un segundo paso para producir reglas a partir de los conjuntos de elementos frecuentes que exceden un mínimo umbral de confianza. Un problema con la confianza es que es sensible a la frecuencia de la consecuente. Debido a la forma en que se calcula la confianza, los consecuentes con mayor apoyo producirán automáticamente valores de confianza más altos incluso si no existe asociación entre los elementos.(6) Probamos con diferentes soportes, desde 0.1 hasta 0.00O1, con soportes altos obtenemos pocas reglas y con soportes muy bajos ( o.ooo5, 0.0008) obtenemos mayor número de reglas( 26 y 9 reglas respesctivamente)optamos por ir bajando el soporte hasta encontrar un valor min support con el que obtenemos un número razonable de reglas con unas métricas aceptables.Pensamos que hay muchos síntomas poco frecuentes en los registros y que queremos encontrar síntomas poco frecuentes no asociados hasta ahora con sarcopenia y que pueden no haberse tenido en cuenta por su escasa frecuencia, sacrificamos un poco el soporte a cambio de una confianza y un lift aceptables. Creamos itemsets que son las asociaciones que aparecen con un support minimo de 0.001.

soporte <- 10/dim(transacciones)[1]
itemsets <- apriori (data = transacciones, parameter = list(support = soporte, minlen = 1, maxlen = 20, target = "frequent itemset"))
## Apriori
## 
## Parameter specification:
##  confidence minval smax arem  aval originalSupport maxtime     support minlen
##          NA    0.1    1 none FALSE            TRUE       5 0.001062812      1
##  maxlen            target  ext
##      20 frequent itemsets TRUE
## 
## Algorithmic control:
##  filter tree heap memopt load sort verbose
##     0.1 TRUE TRUE  FALSE TRUE    2    TRUE
## 
## Absolute minimum support count: 10 
## 
## set item appearances ...[0 item(s)] done [0.00s].
## set transactions ...[36 item(s), 9409 transaction(s)] done [0.00s].
## sorting and recoding items ... [36 item(s)] done [0.00s].
## creating transaction tree ... done [0.00s].
## checking subsets of size 1 2 3 4 done [0.00s].
## sorting transactions ... done [0.00s].
## writing ... [493 set(s)] done [0.00s].
## creating S4 object  ... done [0.00s].
summary(itemsets)
## set of 493 itemsets
## 
## most frequent items:
##       Sarcopenia          Obesity  Muscle_Weakness Muscular_Atrophy 
##              176              107               83               73 
##     Malnutrition          (Other) 
##               61              661 
## 
## element (itemset/transaction) length distribution:sizes
##   1   2   3   4 
##  36 253 197   7 
## 
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   2.000   2.000   2.355   3.000   4.000 
## 
## summary of quality measures:
##     support         transIdenticalToItemsets     count        
##  Min.   :0.001063   Min.   :0.0000000        Min.   :  10.00  
##  1st Qu.:0.001488   1st Qu.:0.0001063        1st Qu.:  14.00  
##  Median :0.002232   Median :0.0003188        Median :  21.00  
##  Mean   :0.008125   Mean   :0.0016830        Mean   :  76.45  
##  3rd Qu.:0.004995   3rd Qu.:0.0008502        3rd Qu.:  47.00  
##  Max.   :0.481241   Max.   :0.1259433        Max.   :4528.00  
## 
## includes transaction ID lists: FALSE 
## 
## mining info:
##           data ntransactions     support confidence
##  transacciones          9409 0.001062812          1

Encontramos 493 itemsets frecuentes, la mayoría con dos y 3 ítems, y el máximo son 4 items.

top_20_itemsets <- sort(itemsets, by = "support", decreasing = FALSE)[1:20]
inspect(top_20_itemsets)
##      items                               support transIdenticalToItemsets count
## [1]  {Reperfusion_Injury,                                                      
##       Sensation_Disorders}           0.001062812             0.0000000000    10
## [2]  {Kidney_Neoplasms,                                                        
##       Neurologic_Gait_Disorders}     0.001062812             0.0002125624    10
## [3]  {Neurologic_Gait_Disorders,                                               
##       Non-Small-Cell_Lung_Carcinoma} 0.001062812             0.0002125624    10
## [4]  {Arteriosclerosis,                                                        
##       Chronic_Kidney_Failure}        0.001062812             0.0000000000    10
## [5]  {Prostatic_Neoplasms,                                                     
##       Pseudomonas_Infections}        0.001062812             0.0000000000    10
## [6]  {Prostatic_Neoplasms,                                                     
##       Renal_Cell_Carcinoma}          0.001062812             0.0000000000    10
## [7]  {Prostatic_Neoplasms,                                                     
##       Rheumatoid_Arthritis}          0.001062812             0.0000000000    10
## [8]  {Muscular_Atrophy,                                                        
##       Sarcopenia,                                                              
##       Starvation}                    0.001062812             0.0001062812    10
## [9]  {Muscular_Atrophy,                                                        
##       Reperfusion_Injury,                                                      
##       Sarcopenia}                    0.001062812             0.0001062812    10
## [10] {Obesity,                                                                 
##       Reperfusion_Injury,                                                      
##       Sarcopenia}                    0.001062812             0.0001062812    10
## [11] {Metabolic_Syndrome_X,                                                    
##       Neurologic_Gait_Disorders,                                               
##       Sarcopenia}                    0.001062812             0.0001062812    10
## [12] {Arteriosclerosis,                                                        
##       Muscular_Atrophy,                                                        
##       Sarcopenia}                    0.001062812             0.0001062812    10
## [13] {Arteriosclerosis,                                                        
##       Muscle_Weakness,                                                         
##       Obesity}                       0.001062812             0.0000000000    10
## [14] {Hypokinesia,                                                             
##       Malnutrition,                                                            
##       Metabolic_Syndrome_X}          0.001062812             0.0000000000    10
## [15] {Hypokinesia,                                                             
##       Malnutrition,                                                            
##       Sarcopenia}                    0.001062812             0.0003188437    10
## [16] {Kidney_Neoplasms,                                                        
##       Metabolic_Syndrome_X,                                                    
##       Sensation_Disorders}           0.001062812             0.0001062812    10
## [17] {Malnutrition,                                                            
##       Non-Small-Cell_Lung_Carcinoma,                                           
##       Sarcopenia}                    0.001062812             0.0003188437    10
## [18] {Muscular_Atrophy,                                                        
##       Non-Small-Cell_Lung_Carcinoma,                                           
##       Sarcopenia}                    0.001062812             0.0001062812    10
## [19] {Inflammation,                                                            
##       Protein-Energy_Malnutrition,                                             
##       Sarcopenia}                    0.001062812             0.0002125624    10
## [20] {Muscle_Weakness,                                                         
##       Obesity,                                                                 
##       Pseudomonas_Infections}        0.001062812             0.0001062812    10

Los fitramos para ver donde aparece sarcopenia

itemsets_filtrado <-arules::subset(itemsets, subset = items %in% "Sarcopenia")
itemsets_filtrado
## set of 176 itemsets
inspect (itemsets_filtrado [1:10])
##      items                                     support    
## [1]  {Sarcopenia}                              0.481241365
## [2]  {Hip_Fractures,Sarcopenia}                0.005420342
## [3]  {Hypothyroidism,Sarcopenia}               0.003294718
## [4]  {Overnutrition,Sarcopenia}                0.004570092
## [5]  {Sarcopenia,Starvation}                   0.004038686
## [6]  {Atrophic_Muscular_Disorders,Sarcopenia}  0.002975874
## [7]  {Sarcopenia,Type2_Diabetes_Mellitus}      0.005739186
## [8]  {Sarcopenia,Systemic_Lupus_Erythematosus} 0.003294718
## [9]  {Reperfusion_Injury,Sarcopenia}           0.006589436
## [10] {Pain,Sarcopenia}                         0.004144968
##      transIdenticalToItemsets count
## [1]  0.1212668721             4528 
## [2]  0.0021256244               51 
## [3]  0.0008502498               31 
## [4]  0.0010628122               43 
## [5]  0.0000000000               38 
## [6]  0.0011690934               28 
## [7]  0.0009565310               54 
## [8]  0.0005314061               31 
## [9]  0.0015942183               62 
## [10] 0.0009565310               39

#2BUSCAREMOS LAS REGLAS DE ASOCIACION APLICANDO EL ALGORITMO A PRIORI

Establecemos los indicadores de rendimiento.

• SOPORTE MINIMO encontrado al establecer los itemsets frecuentes, por encima de 0.001 esto es que no me interesaran aquellas reglas en las que menos del 0.1% de los síntomas no aparecen juntos. Elegimos el mínimo support de los datos.En cierto modo, el coste depende del soporte, a mayor soporte, mayor coste porque hay que hacer mas pasadas para obtener reglas. Con soportes muy bajos ( 0.0005) y confianzas de 0.8-0,9 podemos obtener hasta 26 reglas, pero con un soporte tan bajo, decido ir subiendo hasta encontrar un número razonable de reglas con la confianza y el lift que me interesa.

• CONFIANZA wa un métrica de efectividad, mide como de fiable es la suposición de la regla, la probabilidad de que si se generaliza se cumple, indica la efectividad es la fortaleza de la regla. Es un indicador de rendimiento muy importante y nos interesa que sea lo más próximo a 1 posible. Nos interesa al tratarse de cuestiones de salud, una confianza alta de la regla. Tanto el soporte como la confianza tienen que ver en parte con la capacidad de predicción, pero no son determinantes. Aunque el hecho de tener reglas de asociación con una confianza alta no quiere decir que se puedn generalizar con facilidad.

• LIFT, un lift mayor de 1, que nos ayuda a detectar si la probabilidad de producto consecuente de la regla aumenta por la presencia del antecededente , si el lift es <1 no podremos encontrar asociación y puede obeceder al azar, por eso también nos interesan lift cuánto más altos mejor. Para mejorar ellift necesitaremos aumentar el número de registros.

soporte <- 10/ dim(transacciones)[1]
reglas1<- apriori(data = transacciones,
 parameter = list(support = soporte,
 confidence = 0,
 # Se especifica que se creen reglas1
target = "rules"))
## Apriori
## 
## Parameter specification:
##  confidence minval smax arem  aval originalSupport maxtime     support minlen
##           0    0.1    1 none FALSE            TRUE       5 0.001062812      1
##  maxlen target  ext
##      10  rules TRUE
## 
## Algorithmic control:
##  filter tree heap memopt load sort verbose
##     0.1 TRUE TRUE  FALSE TRUE    2    TRUE
## 
## Absolute minimum support count: 10 
## 
## set item appearances ...[0 item(s)] done [0.00s].
## set transactions ...[36 item(s), 9409 transaction(s)] done [0.00s].
## sorting and recoding items ... [36 item(s)] done [0.00s].
## creating transaction tree ... done [0.00s].
## checking subsets of size 1 2 3 4 done [0.00s].
## writing ... [1161 rule(s)] done [0.00s].
## creating S4 object  ... done [0.00s].

Tras aplicar el min support y confidence 0 , obtenemos 1161 reglas de asociación. Ahora podemos ver la máxima confianza que se puede alcanzar con este soporte, es 0.9 . Pero si aplicamos una confianza de 0.9 solo obtenemos 1 regla, bajamos la confianza a 0.8 y obtenemos 6 reglas. Con confianza de 0.7 tenemos 15 reglas, pero las 6 primeras son las mismas que obtenemos con confianza de 0.8 y el resto tienen menor confianza y no mejora el lift, así que elijo min soporte 0.001 y min confianza 80% para buscar reglas.

soporte <- 10/ dim(transacciones)[1]
reglas <- apriori(data = transacciones,
 parameter = list(support = soporte,
 confidence = 0.8,
 # Se especifica que se creen reglas
target = "rules"))
## Apriori
## 
## Parameter specification:
##  confidence minval smax arem  aval originalSupport maxtime     support minlen
##         0.8    0.1    1 none FALSE            TRUE       5 0.001062812      1
##  maxlen target  ext
##      10  rules TRUE
## 
## Algorithmic control:
##  filter tree heap memopt load sort verbose
##     0.1 TRUE TRUE  FALSE TRUE    2    TRUE
## 
## Absolute minimum support count: 10 
## 
## set item appearances ...[0 item(s)] done [0.00s].
## set transactions ...[36 item(s), 9409 transaction(s)] done [0.00s].
## sorting and recoding items ... [36 item(s)] done [0.00s].
## creating transaction tree ... done [0.00s].
## checking subsets of size 1 2 3 4 done [0.00s].
## writing ... [6 rule(s)] done [0.00s].
## creating S4 object  ... done [0.00s].
summary ( reglas)
## set of 6 rules
## 
## rule length distribution (lhs + rhs):sizes
## 2 3 4 
## 1 4 1 
## 
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##       2       3       3       3       3       4 
## 
## summary of quality measures:
##     support           confidence        coverage             lift      
##  Min.   :0.001063   Min.   :0.8095   Min.   :0.001169   Min.   :1.682  
##  1st Qu.:0.001302   1st Qu.:0.8333   1st Qu.:0.001515   1st Qu.:1.732  
##  Median :0.001488   Median :0.8452   Median :0.001754   Median :1.756  
##  Mean   :0.002055   Mean   :0.8515   Mean   :0.002462   Mean   :1.769  
##  3rd Qu.:0.001594   3rd Qu.:0.8643   3rd Qu.:0.001913   3rd Qu.:1.796  
##  Max.   :0.005420   Max.   :0.9091   Max.   :0.006696   Max.   :1.889  
##      count      
##  Min.   :10.00  
##  1st Qu.:12.25  
##  Median :14.00  
##  Mean   :19.33  
##  3rd Qu.:15.00  
##  Max.   :51.00  
## 
## mining info:
##           data ntransactions     support confidence
##  transacciones          9409 0.001062812        0.8

PREGUNTA 4.

#Conjunto final de reglas: ¿Cuántas reglas obtuviste, qué te indican, y cómo las representarías visualmente?

Obtenemos 6 reglas con un min soporte de 0.001 y una min confianza de 0.8. La mayoría formadas por dos items en el antecedente. Inspeccionamos las reglas obtenidas.

(5)(6)(7)Bibliografia

Una vez identificadas,aunque son pocas, revisaremos cuales con las maximales y si hay reglas redundantes.

inspect(sort(x = reglas, decreasing = TRUE, by = "confidence"))
##     lhs                                        rhs              support confidence    coverage     lift count
## [1] {Abdominal_Obesity,                                                                                      
##      Chronic_Obstructive_Pulmonary_Disease,                                                                  
##      Malnutrition}                          => {Sarcopenia} 0.001062812  0.9090909 0.001169093 1.889054    10
## [2] {Inflammation,                                                                                           
##      Pseudomonas_Infections}                => {Sarcopenia} 0.001381656  0.8666667 0.001594218 1.800898    13
## [3] {Metabolic_Syndrome_X,                                                                                   
##      Type2_Diabetes_Mellitus}               => {Sarcopenia} 0.001275375  0.8571429 0.001487937 1.781108    12
## [4] {Metabolic_Syndrome_X,                                                                                   
##      Reperfusion_Injury}                    => {Sarcopenia} 0.001594218  0.8333333 0.001913062 1.731633    15
## [5] {Gastrointestinal_Neoplasms,                                                                             
##      Malnutrition}                          => {Sarcopenia} 0.001594218  0.8333333 0.001913062 1.731633    15
## [6] {Hip_Fractures}                         => {Sarcopenia} 0.005420342  0.8095238 0.006695717 1.682158    51
reglas_maximales <- reglas [is.maximal(reglas)]
reglas_maximales
## set of 6 rules
reglas_redundantes <- reglas[is.redundant(x = reglas, measure = "confidence")]
reglas_redundantes
## set of 0 rules

las 6 reglas son maximales y ninguna regla redundante. Todas las reglas tienen como consecuente sarcopenia, esto tiene una explicación, Un item muy frecuente aparecerá a menudo en el consecuente de muchas reglas, independientemente de su relación con el antecedente de la regla. Como sarcopenia es un item muy frecunte, aparececera como consecuente muchas veces, por eso no utilizaré confidence para elegir las reglas sino el lift. #Visualizamos las reglas

plot (reglas)
## To reduce overplotting, jitter is added! Use jitter = 0 to prevent jitter.

## Solo una regla tiene un lift muy alto y la máxima confianza (punto rojo arriba a la izda), el soporte de todas ellas es bajo y la confianza tal y como la hemos establecido, por encima de 80%.

#Inspeccionamos las reglas.Vemos las relaciones, soportes

plot (reglas,method="graph", "interactive "=TRUE, shading=NA)
## Warning: Unknown control parameters: interactive
## Available control parameters (with default values):
## layout    =  list(fun = function (graph, dim = 2, ...)  {     if ("layout" %in% graph_attr_names(graph)) {         lay <- graph_attr(graph, "layout")         if (is.function(lay)) {             lay(graph, ...)         }         else {             lay         }     }     else if (all(c("x", "y") %in% vertex_attr_names(graph))) {         if ("z" %in% vertex_attr_names(graph)) {             cbind(V(graph)$x, V(graph)$y, V(graph)$z)         }         else {             cbind(V(graph)$x, V(graph)$y)         }     }     else if (vcount(graph) < 1000) {         layout_with_fr(graph, dim = dim, ...)     }     else {         layout_with_drl(graph, dim = dim, ...)     } }, call_str = c("layout_nicely(<graph>, input = \"C:/Users/Sotto Family.DESKTOP-P9Q8G8G/Desktop/martin_delgado_pregunta1y2.Rmd\", ", "    encoding = \"UTF-8\")"), args = list())
## edges     =  <environment>
## nodes     =  <environment>
## nodetext  =  <environment>
## colors    =  c("#EE0000FF", "#EEEEEEFF")
## engine    =  ggplot2
## max   =  100
## verbose   =  FALSE

Obtenemos un plot en el que podemos estudiar cada regla de forma independiente. de las 6 reglas, parece que todas ellas tienen como lhf sarcopenia, las reglas con el punto mas grande tienen mayor soporte (fractura de cadera-sarcopenia), y dos síntomas aparecen en dos reglas, malnutrición y sindrome X. Esto es importante tenerlo en cuenta a la hora de tomar decisiones.La confidence máxima es 0.9 y el lift mas alto para la regla para la regla 1(EPOc, obesidad abdominal, malnutrición)

subrules <- head(sort(reglas, by="confidence"), 20)


plot(subrules, method="graph", engine = "htmlwidget")

http://rpubs.com/mimd/785776

Podemos analizar cada regla de forma independiente con sus caracteristicas Las reglas con color rojo mas oscuro, son las de mayor lift(1),El tamaño de los circulos se corresponde con el suppport los mas pequeños tienen el menor support y la confidence máxima es 0.9 para la regla 1.Nos decantaremos por revisar las reglas con mayor confianza y mayor lift.

#Aunque tenemos pocas reglas, podemos seleccionarlas en función de la confianza, lift, soporte

reglas_seleccionadas2 <- subset(reglas, subset = confidence > 0.9)
 reglas_seleccionadas2
## set of 1 rules
 inspect(reglas_seleccionadas2)
##     lhs                                        rhs              support confidence    coverage     lift count
## [1] {Abdominal_Obesity,                                                                                      
##      Chronic_Obstructive_Pulmonary_Disease,                                                                  
##      Malnutrition}                          => {Sarcopenia} 0.001062812  0.9090909 0.001169093 1.889054    10
#solo 1 regla tiene confianza mayor de 0.9
reglas_seleccionadas3 <- subset(reglas, subset = lift >1.8)
 reglas_seleccionadas3
## set of 2 rules

Tenemos 2 reglas seleccionadas con un lift mayor de 1.8, una de ellas, la regla 2, con la conficence mas alta y el lift más alto.

inspect(reglas_seleccionadas3)
##     lhs                                        rhs              support confidence    coverage     lift count
## [1] {Inflammation,                                                                                           
##      Pseudomonas_Infections}                => {Sarcopenia} 0.001381656  0.8666667 0.001594218 1.800898    13
## [2] {Abdominal_Obesity,                                                                                      
##      Chronic_Obstructive_Pulmonary_Disease,                                                                  
##      Malnutrition}                          => {Sarcopenia} 0.001062812  0.9090909 0.001169093 1.889054    10
###podemos analizar las reglas por otros criterios de calidad ##

mInteres <- interestMeasure(reglas_seleccionadas3,
                            measure = c("gini", "chiSquared"),
     
   
                  transactions=transacciones)
quality(reglas_seleccionadas3) <- cbind(quality(reglas_seleccionadas3), mInteres)

podemos ver un gráfico las características de las dos reglas seleccionadas por el lift , en función de gini. Un Gini igual a cero indica una igualdad perfecta y cuánto más cerca de cero mayor es la igualdad. De las reglas con mayor lift las revisamos en función del gini y todas tienen un gini cerc de cero

reglas_seleccionadas3 %>%
  head(by = "gini", n = 10) %>%
 plot(method = "graph")

setwd("~/")

Con esta información debemos seleccionar aquellas reglas que puedan ser relevantes, en el sentido de que aporten información que no es obvia al no tener un support alto, organizadas en función de Gini, que indica si la regla proporciona o no información para el conjunto de datos, cuanto más próximo a cero este el índice Gini, más perfecta será la igualdad, y cuánto más cerca de 1, la desigualdad será máxima. Todos los valores de gini son muy bajos, cerca de cero.

De estas 6 reglas obtenidas, con support > 0.001, confidence >0.8 y lift mayor de 1, podemos sacar la conclusión de que tenemos una confianza mayor del 80% para la suposición de asociacion con sarcopenia de las 6 reglas.

La regla 6 ( obesidad abdominal, EPOC y malnutrición–sarcopenia )tiene la confianza mas alta y el lift mas alto y un gini bajo,lo que nos indica que la probabilidad del consecuente (Sarcopenia) aumenta por la presencia antecedentes obesidad abdominal, EPOC y malnutrición. La regla con mayor soporte es la fractura de cadera—sarcopenia, es dificil establecer su papel mas allá de su asociación con la enfermedad ya que de por si es frecuente que los pacientes con sarcopenia tengan fractura de cadera por su sarcopenia, sin poder asegurar que la fractura de cadera sea anterior a la sarcopenia o la sarcopenia anterior a la fractura de cadera.

Dos síntomas participan en dos reglas, malnutrición y sindrome x. Esto es importante a la hora de plantearse medidas preventivas con escasos recursos pues incidir en estos dos aspectos podría tener mayor efecto ante cualquier plan de actuación de salud pública frente a la sarcopenia.

La segunda regla, inflamación, infeccion pseudomona—sarcopenia, tiene un lift alto también (1.8) con una confianza del 80%. Lo que nos indica que a pesar del bajo soporte, debemos vigilar a los pacientes con infección con pseudomona e inflamación y procurar la rápida recuperación dada su asociación con sarcopenia.

PREGUNTA 5

#Diseña una estrategia basada en el dato para la gestión de la sarcopenia en Atlantis. Debes explicar asimismo cómo se integraría esta estrategia en un sistema sanitario de información.

Con el objetivo de elaborar un concepto de consenso se constituyó en 2010 el Grupo de Trabajo sobre Sarcopenia en Personas de Edad Avanzada (EWGSOP) consiguiendo construir una definición clínica práctica y unos criterios diagnósticos de consenso de la sarcopenia relacionada con la edad: la sarcopenia es un síndrome que se caracteriza por una pérdida gradual y generalizada de la masa muscular esquelética y la fuerza con riesgo de presentar resultados adversos como discapacidad física, calidad de vida deficiente y mortalidad. (8)

A pesar de que la etiología de la sarcopenia no está del todo clara, cada día son más las hipótesis que apuntan hacia un origen multifactorial(envejecimiento, genética, dieta inadecuada, enfermedades crónicas, aterosclerosis y disminución de densidad ósea entre otras.(8)

El análisis por minería de datos de los registros realizados en Atlantis por la Dra Rippley, nos han permitido encontrar 6 reglas de asociación que no nos indican causalidad, pero nos permite establecer relaciones entre variables cualitativas , destacando que esta relación implica asociación en el tiempo, coocurrencia con lo que se pueden realizar recomendaciones. Uno de los objetivos del análisis es intentar encontrar si existen una serie de síntomas más allá de los ya conocidos y que puedan ayudar a predecir la enfermedad antes de que se diagnostique. Obtenemos 6 reglas , con un soporte bajo ,y confianzas por encima del 80%, lift por encima de 1, algunos cerca de 2 que nos indica en todas ellas la probabilidad de sarcopenia aumenta por la presencia de los antecedentes.

#[1] {Hip_Fractures} => {Sarcopenia
#[2] {Metabolic_Syndrome_X,Type2_Diabetes_Mellitus} => {Sarcopenia}
#[3] {Metabolic_Syndrome_X, Reperfusion_Injury} > {Sarcopenia}
#[4] {Inflammation, Pseudomonas_Infections} => {Sarcopenia}
#[5] {Gastrointestinal_Neoplasms,Malnutrition} => {Sarcopenia}
#[6] {Abdominal_Obesity, Chronic_Obstructive_Pulmonary Disease,Malnutrition} => {Sarcopenia}

La asociación mas frecuente, mayor soporte es la fractura de cadera, patología de por si muy frecuente a determinadas edades y entiendo por tanto frecuente en pacientes con sarcopenia, tiene una confianza maryor de 80% y un lift de 1.65, lo que nos permite hacer una recomendación sobre la importancia de tomar medidas preventivas habituales en edades avanzadas para evitar la fractura de cadera en personas mayores que incluye ejercicio moderado para aumentar fuerza y masa muscular y medidas de prevención de la osteoporosis.

Destacaría la presencia de dos síntomas muy dispares ( malnutrición y metabolic X síndrome) en dos reglas maximales con niveles de confianza y lift altos en los que creo merece la pena dedicar parte del esfuerzo en prevención. Sería aconsejable con estos resultados detectar la existencia de malnutrición realizando un diagnóstico correcto que incluya una búsqueda activa, solicitando los estudios pertinentes que permitan detectar malnutrición en las revisiones de rutina que se realicen a partir de cierta edad. Es conocido que con la edad, disminuye el apetito y suelen tener mas dificultades para comer determinados alimentos, por eso se deben iniciar las intervenciones oportunas como equipos de ayuda social que suministren comida preparada y saludable a las personas más mayores con dificultados para comprar, cocinar o masticar, sobre todo en pacientes que asocian malnutricion y neoplasias digestivas gastrointestinales y en pacientes con EPOC y obesidad abdominal en los que la presencia de malnutrición no sería de extrañar debido a los problemas de movilidad, dificultades para adquirir fruta, verdura y proteina de calidad. La confianza del 90% de esta última asociación con sarcopenia, ( EPOC, obesidad abdominal y malnutrición), nos indica que puede haber ventajas en hacer recomendaciones para invertir en términos de salud pública para evitar el desarrollo de estas enfermedades (8)(9)

Por eso, sabiendo que la sarcopenia tiene sus orígenes en el estilo de vida y el proceso de envejecimiento natural, se podría hacer la recomendación de centrar los esfuerzos en adoptar y mantener estilos de vida saludable desde el inicio de la edad escolar con campañas escolares y para la población general que incidan en la importancia de una alimentación balanceada y una adecuada ingesta de proteínas animales y vegetales de alta calidad (9). De esta forma mejoraríamos el peso de la población, reduciríamos los diagnósticos de síndrome metabólico X (que incluye un conjunto de síntomas como obesdiad, HTA e intolerancia a la glucosa), reduciendo así el desarrollo de Diabetes mellitus y los problemas secundarios de de perfusión periférica.(10)

Podemos también hacer recomendaciones para el diagnóstico precoz de EPOC en pacientes con obesidad abdominal y malnutrición dada la asociación encontrada con sarcopenia.(11)

Otra asociación encontrada es entre inflamación e infección por pseudomona, confianza 80% en la suposición de la regla,quizás a tener en cuenta cuando se realice el diagnóstico de infección por pseudomona, la necesidad de priorizar una adecuada alimentación y nutrición para mejorar la fuerza y masa muscular de estos pacientes ante la asociación existente con sarcopenia, incorporándose como prioridad a los protocolos de manejo hospitalarios.

Sería preciso contar con sistemas de registro específicos en las historias electrónicas de las personas para detectar precozmente Síndrome metabólico ( que asocia obesidad, intolerancia a la glucosas con o sin diabetes tipo2, HTA ), que incluya un registro adecuado de Indice de Masa Corporal, para detectar la presencia de obesidad ( IMC>p25), y medidas de diámetro abdominal para la obesidad abdominal, registros de hbA1C, registro de la presencia de úlceras por problemas de perfusión, escalas de valoración de malnutrición y de hábitos de vida saludables que permitan detectar las asociaciones mencionadas y poder actuar sobre las mismas tanto desde el punto de vista de la prevención como por su asociación con el desarrollo de sarcopenia.

PREGUNTA 6.

##Escribe un pequeño ensayo sobre las limitaciones que tienen las reglas de asociación como herramienta de data mining. ¿Las reglas de asociación tienen carácter predictivo##

La asociación es una clase de problema de minería de datos en la cual se busca encontrar ítems que aparezcan juntos en transacciones de un determinado conjunto de datos. De esta manera, se establecen reglas que indican dependencias entre los ítems de dicho conjunto de datos, siendo las Reglas de Asociación la forma más natural de representar dichas asociaciones.(12)

Las reglas de asociación estudian las ocurrencias de un evento dentro de un conjunto de datos, dadas las diferentes medidas de interés, no tratan de comprobar sino de descubrir, a diferencia de por ejemplo las pruebas de hipótesis en estadística(13).

Este tipo de algoritmos que muestran asociación, nos crean un conocimiento muy relacionado con el momento en el que se produce y por lo general, muy poco flexible a generalizaciones ya que, como creador de conocimiento científico, la asociación es un método muy débil(14). Son conocidas las ventajas de las reglas de asociación suma.

• Las asociaciones pueden darse entre cualquiera de los atributos.

• Al tener muchas reglas se pueden obtener muchas conclusiones.

• Al estar sujetas a un número de restricciones (aquí radica la importancia en la estructura de la base de datos ), la comprobación y fiabilidad es alta.

Pero debemos tener también en cuenta respecto a las reglas de asociación que, al tratarse de sistemas de recomendaciones, podemos caer en falsos negativos (ítems que no fueron recomendados pero sí podrían estar asociados) y los falsos positivos (que serían las asociaciones equivocadas)(12).

Comparando las reglas de asociación con los algoritmos de decisión, la ventaja de las reglas de asociación sobre los algoritmos más estándar de árboles de decisión, es que las asociaciones pueden existir entre cualquiera de los atributos. Un algoritmo de árbol de decisión generará reglas con una única conclusión, mientras que los algoritmos de asociación tratan de buscar muchas reglas, cada una de las cuales puede tener una conclusión diferente.

A diferencia de un árbol de decisión, este conjunto de reglas de asociación no se puede usar directamente para realizar predicciones de mismo modo que puede hacerlo un modelo estándar (como un árbol de decisión o una red neuronal).(15)

Por tanto, las reglas de asociación producidas por algoritmos de asociación se conocen como modelos sin refinar. Aunque el usuario puede examinar estos modelos sin definir, éstos no se pueden usar explícitamente como modelos de clasificación (15).

La capacidad predictiva de las reglas es otro aspecto que no podemos dejar de considerar. El soporte y la confianza tienen evidentemente, relación con la capacidad de predicción, pero no son determinantes. El hecho de encontrar una determinada asociación con una confianza alta, no significa que se pueda generalizar con facilidad .

Como conclusión, se pueden obtener reglas de clasificación con poder predictivo a partir de grandes conjuntos de reglas de asociacion (16), los clasificadores que utilizan reglas de asociación pueden ser aplicadas de manera eficaz en sistemas de recomendación y además, tienden a aportar más consistencia en las recomendaciones, pero directamente y de forma aislada, las reglas de asociación no pueden utilizarse como modelo predictivo.

BIBLIOGRAFIA

(1)https://www.tecnologias-informacion.com/reglasasociacion.html. CONSULTADO 5/6/2021

(2)https://rpubs.com/Cristina_Gil/Reglas_Asociacion. Reglas de asociación . Cristina Gil Martinez . Consultado 17/05/2021

(3)Marchan, Edgar & Salcedo, J. & Aza, T. & Figuera, Lourdes & Ascacibar, Francisco Javier & Guillen, Pablo. (2011). Reglas de asociación para determinar factores de riesgo epidemiológico de transmisión de la enfermedad de Chagas. Revista Ciencia e Ingeniería, Modelado y Simulación, CMS-021, Venezuela.

  1. Happawana KA, Diamond BJ. Association rule learning in neuropsychological data analysis for Alzheimer’s disease. J Neuropsychol. 2021 May 16. doi: 10.1111/jnp.12252. Epub ahead of print. PMID: 33993623.

(5)Reglas de asociación y algoritmo Apriori con R by Joaquín Amat Rodrigo, available under a Attribution 4.0 International (CC BY 4.0) at https://www.cienciadedatos.net/documentos/43_reglas_de_asociacion

(6)Tutorial y Laboratorio 4 - Reglas de Asociación y Frequent Itemset Mining. Mauricio Quezada, Bárbara Poblete. 2018. https://www.ucursos.cl/ingenieria/2018/2/CC66E/1/material_docente/bajar?id_material=2332515. [consultado30/05/2021]

(7).Michael Hahsler, A Probabilistic Comparison of Commonly Used Interest Measures for Association Rules, 2015, URL: https://mhahsler.github.io/arules/docs/measures. Consultado 6/6/2021

(8)Beaudart C, Zaaria M, Pasleau F, Reginster J-Y, Bruyère O (2017) Health Outcomes of Sarcopenia: A Systematic Review and Meta-Analysis. PLoS ONE 12(1): e0169548. https://doi.org/10.1371/journal.pone.0169548

(9). Lengelé L, Bruyère O, Beaudart C, Reginster JY, Locquet M. Malnutrition, assessed by the Global Leadership Initiative on Malnutrition (GLIM) criteria but not by the mini nutritional assessment (MNA), predicts the incidence of sarcopenia over a 5-year in the SarcoPhAge cohort. Aging Clin Exp Res. 2021 May 15. doi: 10.1007/s40520-021-01880-5. Epub ahead of print. PMID: 33991331.

(10). Shafiee G, Keshtkar A, Soltani A et al (2017) Prevalencia de la sarcopenia en el mundo: una revisión sistemática y un metanálisis de estudios de población general. J Diabetes Metab Disord. https://doi.org/10.1186/s40200-017-0302-x - DOI - PubMed - PMC

(11). Benz E, Trajanoska K, Schoufour JD, Lahousse L, de Roos EW, Terzikhan N, Medina-Gomez C, Verhamme K, Williams R, Stricker BH, Franco OH, Ikram MA, Rivadeneira F, Brusselle G. Sarcopenia in older people with chronic airway diseases: the Rotterdam study. ERJ Open Res. 2021 Mar 8;7(1):00522-2020. doi: 10.1183/23120541.00522-2020. PMID: 33718493; PMCID: PMC7938051.

  1. MÉTODOS DE CLASIFICACIÓN BASADOS EN ASOCIACIÓN APLICADOS A SISTEMAS DE RECOMENDACIÓN Tesis doctoral presentada por: D. Joel Pinho Lucas. Universidad de Salamanca. Octubre 2010.

(13). Minería de datos aplicada al análisis bibliométrico. Capitulo 7. Descripción y usos de reglas de asociación y modelos de regresión basados en árboles José Hernando Ávila-Toscano. Consultado 3/6/2021

(14). MÉTODOS DE CLASIFICACIÓN BASADOS EN ASOCIACIÓN APLICADOS A SISTEMAS DE RECOMENDACIÓN Tesis Doctoral Joel Pinho Lucas. Universidad de Salamanca. Departamento de Informática y Automática. Octubre 2010. Consultada 31/05/2021 https://core.ac.uk/download/pdf/9507328.pdf

(15). Reglas de asociación.https://www.ibm.com/docs/es/spss-modeler/SaaS?topic=nodes-association-rules. Consultado 16/6/2021

(16). Reglas de asociación. Luis carlos Molina. Ramón Sangüesa i Solé. UOC.PID_00165732.