
---
title: "Missing data analysis in longitudinal data. How to analyze it?"
author: "Jorge Curto Garc�a     DNI: 08107073X"
date: "10 de enero de 2018"
output:
  word_document: 
    fig_height: 6
    fig_width: 9
  pdf_document:
    fig_height: 12
    toc: yes
  html_document:
    fig_height: 12
    fig_width: 6
    toc: yes
---
#         #  
#         #
#         #


# Jorge J. Curto Garc�a
# M0.185 - TFM-Estad�stica y Bioinform�tica
# M�ster Universitario en Bioinform�tica y Bioestad�stica UOC-UB


# Nombre Consultor/a: N�ria P�rez

# Barcelona, 10 de enero 2018. Fase 3.  


#         #  
#         #
#         #
#         #




****

�ndice:

1.	DATOS UTILIZADOS PARA EL AN�LISIS.
2.	OBJETIVO PRINCIPAL
3.	M�TODOS
4.	AN�LISIS DE RESULTADOS
    + 4.1	 Caracter�sticas basales
5.	 GENERACI�N DE DATOS FALTANTES
    + 5.1	 Generaci�n de datos fatantes: 10%
    + 5.2	 Generaci�n de datos fatantes: 20%
    + 5.3	 Generaci�n de datos fatantes: 30%
    + 5.4	 An�lisis de los patrones de los datos faltantes (10%)
        +   5.4.1 Caracter�sticas basales Vs datos faltantes todas las variables (10%)
        +   5.4.2 Caracter�sticas basales Vs datos faltantes en _dise�os �nicos_ (10%)
        +   5.4.3 Caracter�sticas basales Vs datos faltantes en _errores perseverantes_ (10%)
    + 5.5	 An�lisis de los patrones de los datos faltantes (20%)
        +   5.5.1 Caracter�sticas basales Vs datos faltantes todas las variables (20%)
        +   5.5.2 Caracter�sticas basales Vs datos faltantes en _dise�os �nicos_ (20%)
        +   5.5.3 Caracter�sticas basales Vs datos faltantes en _errores perseverantes_ (20%)
    + 5.6	 An�lisis de los patrones de los datos faltantes (30%)
        +   5.6.1 Caracter�sticas basales Vs datos faltantes todas las variables (30%)
        +   5.6.2 Caracter�sticas basales Vs datos faltantes en _dise�os �nicos_ (30%)
    +   5.6.3 Caracter�sticas basales Vs datos faltantes en _errores perseverantes_ (30%)
6.	TRATAMIENTO DE DATOS FALTANTES   
    + 6.1	 Eliminaci�n de los casos (listwise) (10%)
    + 6.2	 Eliminaci�n de los casos (listwise) (20%)
    + 6.3	 Eliminaci�n de los casos (listwise) (30%)
    + 6.4	 Imputaci�n por media (10%)
    + 6.5	 Imputaci�n por media (20%)
    + 6.6	 Imputaci�n por media (30%)
    + 6.7	 Imputaci�n por regresi�n simple (10%)
    + 6.8	 Imputaci�n por regresi�n simple (20%)
    + 6.9	 Imputaci�n por regresi�n simple (30%)
    + 6.10	 Imputaci�n m�ltiple PMM (10%)
    + 6.11	 Imputaci�n m�ltiple PMM (20%)
    + 6.12	 Imputaci�n m�ltiple PMM (30%)
7.	 REPRODUCCI�N DE LOS AN�LISIS ORIGINALES
    + 7.1	 Reproducci�n de los an�lisis con datos originales 
        +   7.1.1	Reproducci�n de los an�lisis: Dise�os �nicos  
        +   7.1.2	Reproducci�n de los an�lisis: Errores perseverantes
8.   REPRODUCCI�N DE LOS AN�LISIS CON 10% DE DATOS FALTANTES      
    + 8.2	 Reproducci�n de los an�lisis: Eliminaci�n de los casos (listwise) (10%)   
        +   8.2.1	 Reproducci�n de los an�lisis. Modelos n� dise�os �nicos: Eliminaci�n de los casos (listwise) (10%)
        +   8.2.2	 Reproducci�n de los an�lisis. Modelos n� de errores perseverantes: Eliminaci�n de los casos (listwise) (10%) 
    + 8.3	 Reproducci�n de los an�lisis: Media (10%) 
        +   8.3.1	 Reproducci�n de los an�lisis. Modelos n� dise�os �nicos: Media (10%)  
        +   8.3.2	 Reproducci�n de los an�lisis. Modelos n� de errores perseverantes: Media (10%)
    + 8.4	 Reproducci�n de los an�lisis: Regresi�n (10%) 
        +   8.4.1	 Reproducci�n de los an�lisis. Modelos n� dise�os �nicos: Regresi�n (10%)
        +   8.4.2	 Reproducci�n de los an�lisis. Modelos n� de errores perseverantes: Regresi�n (10%)
    + 8.5	 Reproducci�n de los an�lisis: MI (PMM) (10%) 
        +   8.5.1	 Reproducci�n de los an�lisis. Modelos n� dise�os �nicos: MI (PMM) (10%)
        +   8.5.2	 Reproducci�n de los an�lisis. Modelos n� de errores perseverantes: MI (PMM) (10%) 
9.   REPRODUCCI�N DE LOS AN�LISIS CON 20% DE DATOS FALTANTES
    + 9.1	 Reproducci�n de los an�lisis: Eliminaci�n de los casos (listwise) (20%)  
        +   9.1.1	 Reproducci�n de los an�lisis. Modelo n� dise�os �nicos: Eliminaci�n de los casos (listwise) (20%)
        +   9.1.2	 Reproducci�n de los an�lisis. Modelos n� de errores perseverantes: Eliminaci�n de los casos (listwise) (20%)
    + 9.2 Reproducci�n de los an�lisis: Media (20%) 
        +   9.2.1	 Reproducci�n de los an�lisis. Modelo n� dise�os �nicos: Media (20%)
        +   9.2.2	 Reproducci�n de los an�lisis. Modelos n� de errores perseverantes: Media (20%) 
    + 9.3	 Reproducci�n de los an�lisis: Regresi�n (20%)
        +   9.3.1	 Reproducci�n de los an�lisis. Modelo n� dise�os �nicos: Regresi�n (20%)
        +   9.3.2	 Reproducci�n de los an�lisis. Modelos n� de errores perseverantes: Regresi�n (20%)
    + 9.4	 Reproducci�n de los an�lisis: MI (PMM) (20%)
        +   9.4.1	 Reproducci�n de los an�lisis. Modelo n� dise�os �nicos: MI (PMM) (20%)
        +   9.4.2	 Reproducci�n de los an�lisis. Modelos n� de errores perseverantes: MI (PMM) (20%)  
10.   REPRODUCCI�N DE LOS AN�LISIS CON 30% DE DATOS FALTANTES
    + 10.1	 Reproducci�n de los an�lisis: Eliminaci�n de los casos (listwise) (30%)  
        +   10.1.1	 Reproducci�n de los an�lisis. Modelo n� dise�os �nicos: Eliminaci�n de los casos (listwise) (30%)
        +   10.1.2	 Reproducci�n de los an�lisis. Modelos n� de errores perseverantes: Eliminaci�n de los casos (listwise) (30%)
    + 10.2 Reproducci�n de los an�lisis: Media (30%) 
        +   10.2.1	 Reproducci�n de los an�lisis. Modelo n� dise�os �nicos: Media (30%)
        +   10.2.2	 Reproducci�n de los an�lisis. Modelos n� de errores perseverantes: Media (30%) 
    + 10.3	 Reproducci�n de los an�lisis: Regresi�n (30%)
        +   10.3.1	 Reproducci�n de los an�lisis. Modelo n� dise�os �nicos: Regresi�n (30%)
        +   10.3.2	 Reproducci�n de los an�lisis. Modelos n� de errores perseverantes: Regresi�n (30%)
    + 10.4	 Reproducci�n de los an�lisis: MI (PMM) (30%)
        +   10.4.1	 Reproducci�n de los an�lisis. Modelo n� dise�os �nicos: MI (PMM) (30%)
        +   10.4.2	 Reproducci�n de los an�lisis. Modelos n� de errores perseverantes: MI (PMM) (30%)  
11.  RESUMEN DE RESULTADOS 
    + 11.1 Comparaci�n de los modelos: Original vs 10%
    + 11.2 Comparaci�n de los modelos: Original vs 20%
    + 11.3 Comparaci�n de los modelos: Original vs 30%
    
****

#         #

#         #



## 1.	DATOS UTILIZADOS PARA EL AN�LISIS

El objetivo del presente TFM, es la aplicaci�n de diferentes t�cnicas de imputaci�n de datos faltantes en un conjunto de datos longitudinales reales.  
Una limitaci�n que surgi� a la hora de decidir qu� base de datos escoger para la realizaci�n del presente TFM es que en la mayor�a de los casos los investigadores publican bases de datos completas. Finalmente se ha optado por seleccionar una base de datos con un n�mero significativo de registros y en caso de que no contuviese datos faltantes, generarlos de manera aleatoria.

Existen diversos repositorios online que recopilan bases de datos, uno de ellos es "The Dryad Digital Repository" ["http://datadryad.org/"](http://datadryad.org/) (�ltimo acceso 17-11-2017), que es un recurso comisariado que permite acceder libremente a los datos utilizados en diversas publicaciones cient�ficas. A trav�s de Dryad, se obtuvo acceso a una base de datos correspondiente a un estudio longitudinal que incluye resultados del test de Ruff Figural Fluency/ Test de Fluidez de dise�os de Ruff (RFFT) en 2515 participantes del estudio Prevention of Renal and Vascular ENd-stage Disease (PREVEND), de la ciudad de Groningen, en los Pa�ses Bajos. 

La cumplimentaci�n del RFFT se recogi� en tres ocasiones durante un periodo de seguimiento de 6 a�os. El RFFT es un prueba cognitiva que eval�a la funci�n ejecutiva (FE) midiendo la programaci�n visomotora y asoci�ndose con la actividad frontal derecha. La FE engloba habilidades cognitivas propias de la corteza prefrontal, entre los cuales se incluyen la anticipaci�n, la elecci�n de objetivos, la planeaci�n, la selecci�n de la conducta, la autorregulaci�n, el  autocontrol y el uso de la retroalimentaci�n. Adem�s de los resultados del RFTT, la base de datos contiene la edad de los participantes en la primera cumplimentaci�n del test, el g�nero, el nivel de educaci�n y el tiempo transcurrido entre cada cumplimentaci�n del test. 

Estudios longitudinales han demostrado que las pruebas repetidas mejoran el rendimiento en RFFT dificultando la interpretaci�n de los resultados de la prueba en el entorno cl�nico. Por este motivo los autores investigaron el efecto de las mediciones consecutivas sobre el rendimiento en el RFFT mediante la utilizaci�n de un modelo de regresi�n lineal multivariado en el que incluyeron la edad, g�nero, nivel de educaci�n y el t�rmino de interacci�n entre el n�mero de medici�n consecutivo y la edad como variables independientes.  

El test RFFT consiste de cinco partes que a su vez contienen 35 patrones de cinco puntos y,  de forma resumida, la tarea de los participantes es dibujar tantos dise�os �nicos en cada parte como les sea posible durante un minuto, conectando los puntos evitando repetir dise�os. El rendimiento en el RFFT se expresa como el n�mero total de dise�os �nicos en las cinco partes y el n�mero total de repeticiones de los dise�os o errores perseverantes. En el estudio PREVEND los resultados (n�mero de dise�os �nicos y errores perseverantes) fueron analizados por dos examinadores independientes y en caso de no coincidir, se introdujo a un tercer examinador y se promediaron los resultados de los dos examinadores con resultados m�s concordantes.   

Los datos se recogen en una base de datos con formato .sav (SPSS) disponible en:
["http://datadryad.org/bitstream/handle/10255/dryad.77302/RFFT%20longitudinal%20data%20Groningen%20the%20Netherlands.sav?sequence=1"](http://datadryad.org/bitstream/handle/10255/dryad.77302/RFFT%20longitudinal%20data%20Groningen%20the%20Netherlands.sav?sequence=1)  

## An�lisis descriptivo de los datos mediante R.  

Inicialmente se hab�an reclutado a 4158 participantes, pero solo un total de 2515 (61%) completaron las tres medidas del test RFFT y son los casos incluidos en la base de datos disponible a trav�s de Dryad.  

**VARIABLE** | **Descripci�n** | **Tipo**
---------|-------------|------
Casenr| N� de individuo | entero
Age | Edad en la 1� medida (a�os) | continua
Gender | G�nero | categ�rica
Education | Nivel de educaci�n | categ�rica
Measurement | N� de medida consecutiva | ordinal
Unique | N� de dise�os �nicos  | entero
Perseverative | N� de errores perseverantes | entero
Interval | Tiempo desde la medida previa (a�os) | continua

****

#         #


## 2.	OBJETIVO PRINCIPAL

Ejemplificaci�n de la aplicaci�n de los m�todos estudiados mediante el an�lisis de una base de datos longitudinales en el �mbito de la biomedicina, generando un informe estad�stico din�mico (utilizando software de licencia libre: R y Markdown). Se generar� un informe estad�stico din�mico (utilizando R y Markdown) que contendr� aquellos m�todos de tratamiento de datos faltantes identificados previamente y que sean aplicables a los datos contenidos en la base de datos disponible. El informe estad�stico se incluir� como anexo de la memoria final.  

****

## 3.	M�TODOS
Para realizar el an�lisis que permita responder a los objetivos planteados se van a seguir una serie de pasos que se describen a continuaci�n:  

* En primer lugar se importar� la base de datos desde su ubicaci�n en la web datadryad.org.

__An�lisis de los datos__

  * An�lisis descriptivo de las variables incluidas en la muestra mediante t�cnicas descriptivas: medidas de tendencia central y dispersi�n para las variables cuantitativas y frecuencias absolutas y relativas para las variables cualitativas. Tambi�n se utilizar�n representaciones gr�ficas como son los histogramas para variables cuantitativas y gr�ficos de barras para las variables cualitativas.  
  
  * Generaci�n de los datos perdidos: 
  
La base de datos est� compuesta por todos los registros de los resultados del test RFFT para 2515 participantes, por lo que no hay datos perdidos. Se generaran nuevas bases de datos que contendr�n  un 10%, 20% y 30% de datos faltantes respectivamente, en las variables que contienen los resultados del test RFFT (n�mero de dise�os �nicos y n�mero de errores perseverantes).   

  * An�lisis de los patrones de los datos faltantes: An�lisis comparativo de las variables basales que contienen datos faltantes frente a los que no.
  
  * Tratamiento de los datos faltantes: Se aplicar�n 4 m�todos distintos para el tratamiento de datos faltantes.
  
  * Reproducci�n de los an�lisis originales:
    + Se reproducir�n los an�lisis llevados a cabo por los autores publicados en el art�culo original en la base de datos original y en las bases de datos resultantes del tratamiento de datos faltnates.
    
  * Comparaci�n de los resultados originales con los de las bases de datos generadas con 10%, 20% y 30% de datos perdidos.
    
  __Nota aclaratoria__
Se adjuntar� un archivo con todo el c�digo en R, que permite rehacer el an�lisis que se presenta en este informe.  


****

#         #


## 4.	AN�LISIS DE RESULTADOS


```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

Se cargan los paquetes que se utilizar�n para el an�lisis estad�stico: tratamiento y depuraci�n de datos, descriptivo, inferencia y datos perdidos.  

- Paquetes para an�lisis descriptivo e inferencial (modelos multivariados): knitr', 'ROCR', 'ggplot2', 'aod', 'Rcpp', 'dplyr', 'plyr', 'lattice', 'car', 'foreign', 'samplingbook', 'pps', 'pwr', 'Rcmdr', 'nlme', 'nlmeU', 'plyr', 'reshape', 'RLRsim', 'WWGbook', 'graphics', 'stats', 'lme4'.  

- Paquetes para an�lisis de valores faltantes: 'MissingDataGUI', 'VIM', 'VIMGUI', 'MICE', 'Amelia', 'Hmisc', 'mi', 'BaylorEdPsych'.  
  

```{r echo=FALSE, warning=FALSE, message=FALSE}
my_packages <- c('knitr','ROCR','ggplot2','aod','Rcpp','dplyr' ,'plyr','lattice','car','foreign','samplingbook' ,'pps' ,'pwr','stats' ,'MissingDataGUI','VIM','VIMGUI','mice','Amelia','Hmisc','mi','nlme','nlmeU' ,'lme4','graphics','reshape','RLRsim','WWGbook','ellipse','ez','multilevel','BaylorEdPsych')
## install.packages("Rcmdr")
## install.packages("knitr")
## install.packages("ROCR")
## install.packages("ggplot2")
## install.packages("aod")
## install.packages("Rcpp")
## install.packages("dplyr")
## install.packages("plyr")
## install.packages("lattice")
## install.packages("car")
## install.packages("foreign")
## install.packages("samplingbook")
## install.packages("pps")
## install.packages("pwr")
## install.packages("stats")
## install.packages("MissingDataGUI")
## install.packages("VIM")
## install.packages("VIMGUI")
## install.packages("mice")
## install.packages("Amelia")
## install.packages("Hmisc")
## install.packages("mi")
## install.packages("nlme")
## install.packages("nlmeU")
## install.packages("lme4")
## install.packages("graphics")
## install.packages("reshape")
## install.packages("RLRsim")
## install.packages("WWGbook")
## install.packages("ellipse")
## install.packages("ez")
## install.packages("multilevel")
## install.packages("BaylorEdPsych", dependencies=TRUE)
## install.packages("SparseM", dependencies=TRUE)
library(Rcmdr)
invisible(lapply(my_packages, library, character.only = TRUE))

setwd("I:/UOC/TFM/PEC3/SINTAXIS")

link<- "http://datadryad.org/bitstream/handle/10255/dryad.77302/RFFT%20longitudinal%20data%20Groningen%20the%20Netherlands.sav?sequence=1"
#link<-"I:/UOC/TFM/DOCUMENTACION/BIBLIOGRAF�A/ARTICULOS y BBDDs/RFTT y funci�n ejecutiva FE/RFFT longitudinal data Groningen the Netherlands.sav"
RFFT <- read.spss(link,use.value.labels=FALSE,to.data.frame=TRUE,max.value.labels = Inf, trim.factor.names = FALSE,trim_values = TRUE, reencode = NA)

RFFT[1:10,1:5]
## Se etiquetan las variables
label(RFFT$Casenr)=c("N� de individuo")
label(RFFT$Age)=c("Edad en la 1� medida (a�os)")
label(RFFT$Gender)=c("G�nero")
label(RFFT$Education)=c("Nivel de educaci�n")
label(RFFT$Measurement)=c("N� de m�dida consecutiva")
label(RFFT$Unique)=c("N� de dise�os �nicos")
label(RFFT$Perseverative)=c("N� de errores perseverantes")
label(RFFT$Interval)=c("Tiempo desde la medida previa (a�os)")

# Se a�aden valores a las variables Gender, Education level y Measurement.
RFFT$Gender <- factor(RFFT$Gender,
levels = c(0,1),
labels = c("Hombre", "Mujer")) 

RFFT$Education <- factor(RFFT$Education,
levels = c(1,2,3,4),
labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria")) 

RFFT$Measurement <- factor(RFFT$Measurement,
levels = c(1,2,3),
labels = c("1� medida (2003-06)", "2� medida (2006-08)", "3� medida (2008-12)")) 


# Se ordena por sujeto (casenr) y medida (measurement)
RFFT<-RFFT[order(RFFT$Measurement),]
RFFT<-RFFT[order(RFFT$Casenr),]


## Se genera una nueva variable con los datos de los medidas pero como factor
RFFT$Measurement_r<-as.character(RFFT$Measurement)
RFFT$Measurement_r[RFFT$Measurement_r=="1"] <- "01"
RFFT$Measurement_r[RFFT$Measurement_r=="2"] <- "02"
RFFT$Measurement_r[RFFT$Measurement_r=="3"] <- "03"
RFFT$Measurement_r<-as.factor(RFFT$Measurement_r)

# Transponemos la BBDD para tener la misma informaci�n en formato "wide", es decir una fila por individuo. Para cada variable de RFFT (Unique y Perseverative), se generar�n 3 variable distintas (una por medida).
## Se transpone el data frame: de long a wide.
## Se elimina Measurement que no se necesita en el data.frame con formato wide.
RFFT_2<-RFFT
RFFT_2$Measurement<-NULL

RFFT_wide <- reshape(RFFT_2, idvar = c("Casenr","Age","Gender","Education"),timevar="Measurement_r", direction = "wide")
## RFFT_wide[1:5,1:13]

# Se ordena por sujeto 
RFFT_wide<-RFFT_wide[order(RFFT_wide$Casenr),]
## RFFT_wide[1:5,1:13]
# Se revisa el nuevo nombre de las variables.
names(RFFT_wide)
names(RFFT_wide)<-c("Casenr","Age","Gender","Education","Unique_1_2003_06","Perseverative_1_2003_06","Interval_1_2003_06","Unique_2_2006_08","Perseverative_2_2006_08","Interval_2_2006_08","Unique_3_2008_12","Perseverative_3_2008_12","Interval_3_2008_12")

## ReSe etiquetan las variables.

label(RFFT_wide$Casenr)=c("N� de individuo")
label(RFFT_wide$Age)=c("Edad en la 1� medida (a�os)")
label(RFFT_wide$Gender)=c("G�nero")
label(RFFT_wide$Education)=c("Nivel de educaci�n")
label(RFFT_wide$Unique_1_2003_06)=c("�nico 1� medida 2003-06")
label(RFFT_wide$Perseverative_1_2003_06)=c("Perseverante 1� medida 2003-06")
label(RFFT_wide$Interval_1_2003_06)=c("Intervalo 1� medida 2003-06")
label(RFFT_wide$Unique_2_2006_08)=c("�nico 2� medida 2006-08")
label(RFFT_wide$Perseverative_2_2006_08)=c("Perseverante 2� medida 2006-08")
label(RFFT_wide$Interval_2_2006_08)=c("Intervalo 2� medida 2006-08")
label(RFFT_wide$Unique_3_2008_12)=c("�nico 3� medida 2008-12")
label(RFFT_wide$Perseverative_3_2008_12)=c("Perseverante 3� medida 2008-12")
label(RFFT_wide$Interval_3_2008_12)=c("Intervalo 3� medida 2008-12")
```

Tras importar la base de datos desde su ubicaci�n en la web, etiquetar los valores y variables y transponerla a formato _"wide"_ se muestran los valores en todas las variables para los 5 primeros casos.  
  
```{r echo=FALSE, warning=FALSE, message=FALSE}
RFFT_wide[1:5,1:13]
```
  

****

#         #


###  4.1	 Caracter�sticas basales

Se analizan a modo descriptivo todas las variables cualitativas basales: G�nero y nivel de educaci�n.  

```{r echo=FALSE, warning=FALSE, message=FALSE}
x1<-table(RFFT_wide$Gender)
x2<-table(RFFT_wide$Education)

Gender_perc<-local({
x1<-table(RFFT_wide$Gender)
cat("\ncounts:\n")
print(x1)
cat("\npercentages:\n")
print(round(100*x1/sum(x1), 2))
})

Education_perc<-local({
x1<-table(RFFT_wide$Education)
cat("\ncounts:\n")
print(x1)
cat("\npercentages:\n")
print(round(100*x1/sum(x1), 2))
})

```

##### Figura 1. Frecuencias variables cualitativas  (I)  
```{r echo=FALSE, warning=FALSE, message=FALSE}
layout(matrix(c(1,1,2,2), 2, 2, byrow = TRUE))

bplt1 <- barplot(table(RFFT_wide$Gender), xlab="G�nero", ylab="N� de participantes",ylim = c(0, 1500))
text(Gender_perc+100,labels=as.character(Gender_perc), xpd=TRUE)

bplt2 <- barplot(table(RFFT_wide$Education), xlab="Nivel de educaci�n", ylab="N� de participantes",ylim = c(0, 1300))
text(Education_perc+100,labels=as.character(Education_perc), xpd=TRUE)

```

La muestra est� compuesta en un `r round(Gender_perc[2],digits=2)`% de mujeres y el `r round(Education_perc[4],digits=2)`% del total de participantes ten�an educaci�n universitaria.  

A continuaci�n se presentan los resultados descriptivos de las variables cuantitativas edad y los resultados basales del test RFFT: N� de dise�os �nicos y N� de errores perseverantes.  

```{r echo=FALSE, warning=FALSE, message=FALSE}
RFFT_wide$Age<-as.numeric(RFFT_wide$Age)
RFFT_wide$Unique_1_2003_06<-as.numeric(RFFT_wide$Unique_1_2003_06)
RFFT_wide$Perseverative_1_2003_06<-as.numeric(RFFT_wide$Perseverative_1_2003_06)
summary_age_RFFT<-numSummary(RFFT_wide[,c("Age","Unique_1_2003_06","Perseverative_1_2003_06")], statistics=c("mean", "sd", "IQR", "quantiles","cv", "skewness", "kurtosis"),  quantiles=c(0,.5,1))
print(summary_age_RFFT$table,digits=3)

```

##### Figura 2. Histograma variables cuantitativas
```{r echo=FALSE, warning=FALSE, message=FALSE}
op <- par(mfrow=c(1,3))
hist(RFFT_wide$Age,freq=TRUE,xlim=c(30,90),ylim = c(0, 500),main="",xlab="Edad (a�os)",ylab="N� de participantes")
hist(RFFT_wide$Unique_1_2003_06,freq=TRUE,xlim=c(0,200),ylim = c(0, 500), main="",xlab="Resultados �nicos en 1� medici�n (RFFT)",ylab="N� de participantes")
hist(RFFT_wide$Perseverative_1_2003_06,freq=TRUE,xlim=c(0,140),ylim = c(0, 2000), main="",xlab="Errores perseverantes en 1� medici�n (RFFT)",ylab="N� de participantes")
par(oma=c(1,1,1,1),font=2)
mtext(outer=T,"Edad y resultados RFFT basales",side=3,cex=0.75)
```

La media de edad de la muestra fue `r round(summary_age_RFFT$table[1],digits=1)` a�os (mediana: `r round(summary_age_RFFT$table[22],digits=1)`) y la media de los resultados �nicos en el RFFT  basales fue de `r round(summary_age_RFFT$table[2],digits=2)` (mediana: `r round(summary_age_RFFT$table[23],digits=2)`), con una media de errores perseverantes en el RFFT basal de `r round(summary_age_RFFT$table[3],digits=2)`(mediana: `r round(summary_age_RFFT$table[24],digits=2)`).  

****

#         #

##  NOTA   

Para elaborar las secciones que vienen a continuaci�n se ha utilizado informaci�n recogida en distintas referencias y p�ginas web disponibles en los siguientes enlaces:    

- [MissingDataLab](http://web.maths.unsw.edu.au/~dwarton/missingDataLab.html)  
- [rstudio publications](http://rstudio-pubs-static.s3.amazonaws.com/4625_fa990d611f024ea69e7e2b10dd228fe7.html)  
- [VIM-Imputation](https://cran.r-project.org/web/packages/VIMGUI/vignettes/VIM-Imputation.pdf)  
- [VIM](https://cran.r-project.org/web/packages/VIM/VIM.pdf)  
- [Multiple-imputacion.com](http://www.stefvanbuuren.nl/mi/FIMD.html)   
- [Multiple imputation with mice](http://statistics.ohlsen-web.de/multiple-imputation-with-mice/)   
- [Imputing missing data with R; MICE package](https://www.r-bloggers.com/imputing-missing-data-with-r-mice-package/)   
- [Linear Mixed Effects Modeling using R](https://it.unt.edu/sites/default/files/linearmixedmodels_jds_dec2010.pdf)      
- [An�lisis bioestad�stico con modelos de regresi�n en R](https://www.uam.es/personal_pdi/ciencias/jspinill/CFCUAM2013/ModelosMixtos-01-Anidados_CFCUAM2013.html)    
- [Package 'nlme'](https://cran.r-project.org/web/packages/nlme/nlme.pdf)     

 

   
****

#         #

  
## 5. GENERACI�N DE DATOS FALTANTES

Tanto para la variable que contiene el _N� de dise�os �nicos_ y el _N� de errores perseverantes_, se generan nuevas bases de datos con un 10%, 20% y 30% de datos faltantes en cada una de las 3 mediciones, es decir con el dataset en formato _"wide"_.
Para asegurar la reproducibilidad de la generaci�n de los datos faltantes se fija una semila ( _seed_) para cada caso.  

- _seed=456789 para N� de dise�os �nicos_

- _seed=456987 para N� de errores perseverantes_  

###  5.1	 Generaci�n de datos fatantes: 10%

```{r echo=FALSE, warning=FALSE, message=FALSE}
# Se generan datos faltantes de manera aleatoria para la variable N� de dise�os �nicos
# 10% de datos perdidos 
set.seed(456789) # Para poder reproducir la simulaci�n
prop.m = .10 
# tenemos 2515 registros=
mcar1u = runif(2515, min=0, max=1)
mcar2u = runif(2515, min=0, max=1)
mcar3u = runif(2515, min=0, max=1)
# no se relaciona a ninguna de las variables de la base de datos
Unique.mcar1 = ifelse(mcar1u<prop.m, NA, RFFT_wide$Unique_1_2003_06)  
Unique.mcar2 = ifelse(mcar2u<prop.m, NA, RFFT_wide$Unique_2_2006_08)  
Unique.mcar3 = ifelse(mcar3u<prop.m, NA, RFFT_wide$Unique_3_2008_12)  
# Y a�adimos la nueva variable a la Base de datos RFFT con datos perdidos

# Se generan datos faltantes de manera aleatoria para la variable N� de errores perseverantes
# 10% de datos perdidos 
set.seed(456987) # Para poder reproducir la simulaci�n
prop.m = .10 
# tenemos 2515 registros=
mcar1p = runif(2515, min=0, max=1)
mcar2p = runif(2515, min=0, max=1)
mcar3p = runif(2515, min=0, max=1)
# no se relaciona a ninguna de las variables de la base de datos
Perseverative.mcar1 = ifelse(mcar1p<prop.m, NA, RFFT_wide$Perseverative_1_2003_06) 
Perseverative.mcar2 = ifelse(mcar2p<prop.m, NA, RFFT_wide$Perseverative_2_2006_08) 
Perseverative.mcar3 = ifelse(mcar3p<prop.m, NA, RFFT_wide$Perseverative_3_2008_12) 

## A�adimos las 6 nuevas variables a una nueva versi�n de la Base de datos de RFFT_wide.

RFFT_wide_mcar<-data.frame(cbind(RFFT_wide,Unique.mcar1,Unique.mcar2,Unique.mcar3,Perseverative.mcar1,Perseverative.mcar2,Perseverative.mcar3))

# Se eliminan todas las variables que no se necesita (completas de unique y perseverative e intervalo 1 que no tiene sentido y todos sus valores son "-2")

RFFT_wide_mcar$Unique_1_2003_06<-NULL
RFFT_wide_mcar$Perseverative_1_2003_06<-NULL
RFFT_wide_mcar$Interval_1_2003_06<-NULL
RFFT_wide_mcar$Unique_2_2006_08<-NULL
RFFT_wide_mcar$Perseverative_2_2006_08<-NULL
RFFT_wide_mcar$Unique_3_2008_12<-NULL
RFFT_wide_mcar$Perseverative_3_2008_12<-NULL

# Se comprueba que se ha hecho correctamente.
RFFT_wide_mcar[1:10,]

Unique.mcar1_perc<-local({
x1<-table(is.na(RFFT_wide_mcar$Unique.mcar1))
cat("\ncounts:\n")
print(x1)
cat("\npercentages:\n")
print(round(100*x1/sum(x1), 2))
})

Unique.mcar2_perc<-local({
x1<-table(is.na(RFFT_wide_mcar$Unique.mcar2))
cat("\ncounts:\n")
print(x1)
cat("\npercentages:\n")
print(round(100*x1/sum(x1), 2))
})

Unique.mcar3_perc<-local({
x1<-table(is.na(RFFT_wide_mcar$Unique.mcar3))
cat("\ncounts:\n")
print(x1)
cat("\npercentages:\n")
print(round(100*x1/sum(x1), 2))
})

Persev.mcar1_perc<-local({
x2<-table(is.na(RFFT_wide_mcar$Perseverative.mcar1))
cat("\ncounts:\n")
print(x2)
cat("\npercentages:\n")
print(round(100*x2/sum(x2), 2))
})

Persev.mcar2_perc<-local({
x2<-table(is.na(RFFT_wide_mcar$Perseverative.mcar2))
cat("\ncounts:\n")
print(x2)
cat("\npercentages:\n")
print(round(100*x2/sum(x2), 2))
})

Persev.mcar3_perc<-local({
x2<-table(is.na(RFFT_wide_mcar$Perseverative.mcar3))
cat("\ncounts:\n")
print(x2)
cat("\npercentages:\n")
print(round(100*x2/sum(x2), 2))
})
```
- Para las variables **_N� de dise�os �nicos_** se han generado un total de `r round(Unique.mcar1_perc[2],digits=2)`%, `r round(Unique.mcar2_perc[2],digits=2)`% y `r round(Unique.mcar3_perc[2],digits=2)`% de datos faltantes, respectivamente en cada una de las 3 mediciones.   
  
- Para las variables **_N� de errores perseverantes_** se han generado un total de `r round(Persev.mcar1_perc[2],digits=2)`%, `r round(Persev.mcar2_perc[2],digits=2)`% y `r round(Persev.mcar3_perc[2],digits=2)`% de datos faltantes, respectivamente en cada una de las 3 mediciones.  

```{r echo=FALSE, warning=FALSE, message=FALSE}


## Se etiquetan las variables.

label(RFFT_wide_mcar$Casenr)=c("N� de individuo")
label(RFFT_wide_mcar$Age)=c("Edad en la 1� medida (a�os)")
label(RFFT_wide_mcar$Gender)=c("G�nero")
label(RFFT_wide_mcar$Education)=c("Nivel de educaci�n")
label(RFFT_wide_mcar$Interval_2_2006_08)=c("Intervalo entre 1� y 2� medida")
label(RFFT_wide_mcar$Interval_3_2008_12)=c("Intervalo entre 2� y 3� medida")
label(RFFT_wide_mcar$Unique.mcar1)=c("�nico 1� medida 2003-06 (con NA)")
label(RFFT_wide_mcar$Unique.mcar2)=c("�nico 2� medida 2006-08 (con NA)")
label(RFFT_wide_mcar$Unique.mcar3)=c("�nico 3� medida 2008-12 (con NA)")
label(RFFT_wide_mcar$Perseverative.mcar1)=c("Perseverante 1� medida 2003-06 (con NA)")
label(RFFT_wide_mcar$Perseverative.mcar2)=c("Perseverante 2� medida 2006-08 (con NA)")
label(RFFT_wide_mcar$Perseverative.mcar3)=c("Perseverante 3� medida 2008-12 (con NA)")

```

###  5.2	 Generaci�n de datos fatantes: 20%

```{r echo=FALSE, warning=FALSE, message=FALSE}
# Se generan datos faltantes de manera aleatoria para la variable N� de dise�os �nicos
# 20% de datos perdidos 
set.seed(456789) # Para poder reproducir la simulaci�n
prop.m20 = .20 
# tenemos 2515 registros=
mcar1u20 = runif(2515, min=0, max=1)
mcar2u20 = runif(2515, min=0, max=1)
mcar3u20 = runif(2515, min=0, max=1)
# no se relaciona a ninguna de las variables de la base de datos
Unique.mcar1_20 = ifelse(mcar1u20<prop.m20, NA, RFFT_wide$Unique_1_2003_06)  
Unique.mcar2_20 = ifelse(mcar2u20<prop.m20, NA, RFFT_wide$Unique_2_2006_08)  
Unique.mcar3_20 = ifelse(mcar3u20<prop.m20, NA, RFFT_wide$Unique_3_2008_12)  
# Y a�adimos la nueva variable a la Base de datos RFFT con datos perdidos

# Se generan datos faltantes de manera aleatoria para la variable N� de errores perseverantes
# 20% de datos perdidos 
set.seed(456987) # Para poder reproducir la simulaci�n
prop.m20 = .20 
# tenemos 2515 registros=
mcar1p = runif(2515, min=0, max=1)
mcar2p = runif(2515, min=0, max=1)
mcar3p = runif(2515, min=0, max=1)
# no se relaciona a ninguna de las variables de la base de datos
Perseverative.mcar1_20 = ifelse(mcar1p<prop.m20, NA, RFFT_wide$Perseverative_1_2003_06) 
Perseverative.mcar2_20 = ifelse(mcar2p<prop.m20, NA, RFFT_wide$Perseverative_2_2006_08) 
Perseverative.mcar3_20 = ifelse(mcar3p<prop.m20, NA, RFFT_wide$Perseverative_3_2008_12) 

## A�adimos las 6 nuevas variables a una nueva versi�n de la Base de datos de RFFT_wide.

RFFT_wide_mcar_20<-data.frame(cbind(RFFT_wide,Unique.mcar1_20,Unique.mcar2_20,Unique.mcar3_20,Perseverative.mcar1_20,Perseverative.mcar2_20,Perseverative.mcar3_20))

# Se eliminan todas las variables que no se necesita (completas de unique y perseverative e intervalo 1 que no tiene sentido y todos sus valores son "-2")

RFFT_wide_mcar_20$Unique_1_2003_06<-NULL
RFFT_wide_mcar_20$Perseverative_1_2003_06<-NULL
RFFT_wide_mcar_20$Interval_1_2003_06<-NULL
RFFT_wide_mcar_20$Unique_2_2006_08<-NULL
RFFT_wide_mcar_20$Perseverative_2_2006_08<-NULL
RFFT_wide_mcar_20$Unique_3_2008_12<-NULL
RFFT_wide_mcar_20$Perseverative_3_2008_12<-NULL

# Se comprueba que se ha hecho correctamente.
RFFT_wide_mcar_20[1:10,]

Unique.mcar1_20_perc<-local({
  x1<-table(is.na(RFFT_wide_mcar_20$Unique.mcar1_20))
  cat("\ncounts:\n")
  print(x1)
  cat("\npercentages:\n")
  print(round(100*x1/sum(x1), 2))
})

Unique.mcar2_20_perc<-local({
  x1<-table(is.na(RFFT_wide_mcar_20$Unique.mcar2_20))
  cat("\ncounts:\n")
  print(x1)
  cat("\npercentages:\n")
  print(round(100*x1/sum(x1), 2))
})

Unique.mcar3_20_perc<-local({
  x1<-table(is.na(RFFT_wide_mcar_20$Unique.mcar3_20))
  cat("\ncounts:\n")
  print(x1)
  cat("\npercentages:\n")
  print(round(100*x1/sum(x1), 2))
})

Persev.mcar1_20_perc<-local({
  x2<-table(is.na(RFFT_wide_mcar_20$Perseverative.mcar1_20))
  cat("\ncounts:\n")
  print(x2)
  cat("\npercentages:\n")
  print(round(100*x2/sum(x2), 2))
})

Persev.mcar2_20_perc<-local({
  x2<-table(is.na(RFFT_wide_mcar_20$Perseverative.mcar2_20))
  cat("\ncounts:\n")
  print(x2)
  cat("\npercentages:\n")
  print(round(100*x2/sum(x2), 2))
})

Persev.mcar3_20_perc<-local({
  x2<-table(is.na(RFFT_wide_mcar_20$Perseverative.mcar3_20))
  cat("\ncounts:\n")
  print(x2)
  cat("\npercentages:\n")
  print(round(100*x2/sum(x2), 2))
})
```
- Para las variables **_N� de dise�os �nicos_** se han generado un total de `r round(Unique.mcar1_20_perc[2],digits=2)`%, `r round(Unique.mcar2_20_perc[2],digits=2)`% y `r round(Unique.mcar3_20_perc[2],digits=2)`% de datos faltantes, respectivamente en cada una de las 3 mediciones.   

- Para las variables **_N� de errores perseverantes_** se han generado un total de `r round(Persev.mcar1_20_perc[2],digits=2)`%, `r round(Persev.mcar2_20_perc[2],digits=2)`% y `r round(Persev.mcar3_20_perc[2],digits=2)`% de datos faltantes, respectivamente en cada una de las 3 mediciones.  

```{r echo=FALSE, warning=FALSE, message=FALSE}


## Se etiquetan las variables.

label(RFFT_wide_mcar_20$Casenr)=c("N� de individuo")
label(RFFT_wide_mcar_20$Age)=c("Edad en la 1� medida (a�os)")
label(RFFT_wide_mcar_20$Gender)=c("G�nero")
label(RFFT_wide_mcar_20$Education)=c("Nivel de educaci�n")
label(RFFT_wide_mcar_20$Interval_2_2006_08)=c("Intervalo entre 1� y 2� medida")
label(RFFT_wide_mcar_20$Interval_3_2008_12)=c("Intervalo entre 2� y 3� medida")
label(RFFT_wide_mcar_20$Unique.mcar1_20)=c("�nico 1� medida 2003-06 (con NA)")
label(RFFT_wide_mcar_20$Unique.mcar2_20)=c("�nico 2� medida 2006-08 (con NA)")
label(RFFT_wide_mcar_20$Unique.mcar3_20)=c("�nico 3� medida 2008-12 (con NA)")
label(RFFT_wide_mcar_20$Perseverative.mcar1_20)=c("Perseverante 1� medida 2003-06 (con NA)")
label(RFFT_wide_mcar_20$Perseverative.mcar2_20)=c("Perseverante 2� medida 2006-08 (con NA)")
label(RFFT_wide_mcar_20$Perseverative.mcar3_20)=c("Perseverante 3� medida 2008-12 (con NA)")

```

###  5.3	 Generaci�n de datos fatantes: 30%

```{r echo=FALSE, warning=FALSE, message=FALSE}
# Se generan datos faltantes de manera aleatoria para la variable N� de dise�os �nicos
# 30% de datos perdidos 
set.seed(456789) # Para poder reproducir la simulaci�n
prop.m30 = .30 
# tenemos 2515 registros=
mcar1u30 = runif(2515, min=0, max=1)
mcar2u30 = runif(2515, min=0, max=1)
mcar3u30 = runif(2515, min=0, max=1)
# no se relaciona a ninguna de las variables de la base de datos
Unique.mcar1_30 = ifelse(mcar1u30<prop.m30, NA, RFFT_wide$Unique_1_2003_06)  
Unique.mcar2_30 = ifelse(mcar2u30<prop.m30, NA, RFFT_wide$Unique_2_2006_08)  
Unique.mcar3_30 = ifelse(mcar3u30<prop.m30, NA, RFFT_wide$Unique_3_2008_12)  
# Y a�adimos la nueva variable a la Base de datos RFFT con datos perdidos

# Se generan datos faltantes de manera aleatoria para la variable N� de errores perseverantes
# 30% de datos perdidos 
set.seed(456987) # Para poder reproducir la simulaci�n
prop.m30 = .30 
# tenemos 2515 registros=
mcar1p = runif(2515, min=0, max=1)
mcar2p = runif(2515, min=0, max=1)
mcar3p = runif(2515, min=0, max=1)
# no se relaciona a ninguna de las variables de la base de datos
Perseverative.mcar1_30 = ifelse(mcar1p<prop.m30, NA, RFFT_wide$Perseverative_1_2003_06) 
Perseverative.mcar2_30 = ifelse(mcar2p<prop.m30, NA, RFFT_wide$Perseverative_2_2006_08) 
Perseverative.mcar3_30 = ifelse(mcar3p<prop.m30, NA, RFFT_wide$Perseverative_3_2008_12) 

## A�adimos las 6 nuevas variables a una nueva versi�n de la Base de datos de RFFT_wide.

RFFT_wide_mcar_30<-data.frame(cbind(RFFT_wide,Unique.mcar1_30,Unique.mcar2_30,Unique.mcar3_30,Perseverative.mcar1_30,Perseverative.mcar2_30,Perseverative.mcar3_30))

# Se eliminan todas las variables que no se necesita (completas de unique y perseverative e intervalo 1 que no tiene sentido y todos sus valores son "-2")

RFFT_wide_mcar_30$Unique_1_2003_06<-NULL
RFFT_wide_mcar_30$Perseverative_1_2003_06<-NULL
RFFT_wide_mcar_30$Interval_1_2003_06<-NULL
RFFT_wide_mcar_30$Unique_2_2006_08<-NULL
RFFT_wide_mcar_30$Perseverative_2_2006_08<-NULL
RFFT_wide_mcar_30$Unique_3_2008_12<-NULL
RFFT_wide_mcar_30$Perseverative_3_2008_12<-NULL

# Se comprueba que se ha hecho correctamente.
RFFT_wide_mcar_30[1:10,]

Unique.mcar1_30_perc<-local({
  x1<-table(is.na(RFFT_wide_mcar_30$Unique.mcar1_30))
  cat("\ncounts:\n")
  print(x1)
  cat("\npercentages:\n")
  print(round(100*x1/sum(x1), 2))
})

Unique.mcar2_30_perc<-local({
  x1<-table(is.na(RFFT_wide_mcar_30$Unique.mcar2_30))
  cat("\ncounts:\n")
  print(x1)
  cat("\npercentages:\n")
  print(round(100*x1/sum(x1), 2))
})

Unique.mcar3_30_perc<-local({
  x1<-table(is.na(RFFT_wide_mcar_30$Unique.mcar3_30))
  cat("\ncounts:\n")
  print(x1)
  cat("\npercentages:\n")
  print(round(100*x1/sum(x1), 2))
})

Persev.mcar1_30_perc<-local({
  x2<-table(is.na(RFFT_wide_mcar_30$Perseverative.mcar1_30))
  cat("\ncounts:\n")
  print(x2)
  cat("\npercentages:\n")
  print(round(100*x2/sum(x2), 2))
})

Persev.mcar2_30_perc<-local({
  x2<-table(is.na(RFFT_wide_mcar_30$Perseverative.mcar2_30))
  cat("\ncounts:\n")
  print(x2)
  cat("\npercentages:\n")
  print(round(100*x2/sum(x2), 2))
})

Persev.mcar3_30_perc<-local({
  x2<-table(is.na(RFFT_wide_mcar_30$Perseverative.mcar3_30))
  cat("\ncounts:\n")
  print(x2)
  cat("\npercentages:\n")
  print(round(100*x2/sum(x2), 2))
})
```
- Para las variables **_N� de dise�os �nicos_** se han generado un total de `r round(Unique.mcar1_30_perc[2],digits=2)`%, `r round(Unique.mcar2_30_perc[2],digits=2)`% y `r round(Unique.mcar3_30_perc[2],digits=2)`% de datos faltantes, respectivamente en cada una de las 3 mediciones.   

- Para las variables **_N� de errores perseverantes_** se han generado un total de `r round(Persev.mcar1_30_perc[2],digits=2)`%, `r round(Persev.mcar2_30_perc[2],digits=2)`% y `r round(Persev.mcar3_30_perc[2],digits=2)`% de datos faltantes, respectivamente en cada una de las 3 mediciones.  

```{r echo=FALSE, warning=FALSE, message=FALSE}


## Se etiquetan las variables.

label(RFFT_wide_mcar_30$Casenr)=c("N� de individuo")
label(RFFT_wide_mcar_30$Age)=c("Edad en la 1� medida (a�os)")
label(RFFT_wide_mcar_30$Gender)=c("G�nero")
label(RFFT_wide_mcar_30$Education)=c("Nivel de educaci�n")
label(RFFT_wide_mcar_30$Interval_2_2006_08)=c("Intervalo entre 1� y 2� medida")
label(RFFT_wide_mcar_30$Interval_3_2008_12)=c("Intervalo entre 2� y 3� medida")
label(RFFT_wide_mcar_30$Unique.mcar1_30)=c("�nico 1� medida 2003-06 (con NA)")
label(RFFT_wide_mcar_30$Unique.mcar2_30)=c("�nico 2� medida 2006-08 (con NA)")
label(RFFT_wide_mcar_30$Unique.mcar3_30)=c("�nico 3� medida 2008-12 (con NA)")
label(RFFT_wide_mcar_30$Perseverative.mcar1_30)=c("Perseverante 1� medida 2003-06 (con NA)")
label(RFFT_wide_mcar_30$Perseverative.mcar2_30)=c("Perseverante 2� medida 2006-08 (con NA)")
label(RFFT_wide_mcar_30$Perseverative.mcar3_30)=c("Perseverante 3� medida 2008-12 (con NA)")

```

***



###  5.4	 An�lisis de los patrones de los datos faltantes (10%)

##### Patr�n datos faltantes en dataset original  
Se utiliza la funci�n **_agrr_** del paquete **VIM** para visualizar los datos faltantes y obtener el patr�n de dichos datos faltantes en los **_datos iniciales_**.  

##### Figura 3. Patr�n datos faltantes en dataset original  
```{r echo=FALSE, warning=FALSE, message=FALSE}
aggr_plot<-aggr(RFFT_wide,col=c('deepskyblue4','cadetblue3'),numbers=TRUE,sortVars=TRUE,labels=names(RFFT_wide),cex.axis=0.4, gap=0.1, ylab=c("Histograma % datos faltantes","Patr�n"))

```

Se obtiene que la variable `r aggr_plot$missings$Variable[10]` contiene `r aggr_plot$missings$Count[10]` casos con datos faltantes, lo que supone `r round(aggr_plot$missings$Count[10]*100/(aggr_plot$count[1]+aggr_plot$count[2]),digits=2)`% respecto al total de casos. Se tendr� que tener en cuenta de cara a la imputaci�n. Obviamente no presenta ning�n tipo de patr�n relevante.  


##### Patr�n datos faltantes en dataset modificado (10%)

Se identifican los individuos con al menos 1 caso con dato faltante en global (incuyendo los casos de la variable `r aggr_plot$missings$Variables[10]`) y separado para las 3 mediciones de **Unique** y **Perseverative** respectivamente.  

```{r echo=FALSE, warning=FALSE, message=FALSE}
# RFFT_wide_mcar[1:10,]
## Se genera una variable que identifica pacientes con al menos un missing value.
RFFT_wide_mcar$Missing_data=ifelse(is.na(RFFT_wide_mcar$Interval_2_2006_08) | is.na(RFFT_wide_mcar$Unique.mcar1) | is.na(RFFT_wide_mcar$Unique.mcar2) | is.na(RFFT_wide_mcar$Unique.mcar3) | is.na(RFFT_wide_mcar$Perseverative.mcar1) | is.na(RFFT_wide_mcar$Perseverative.mcar2) | is.na(RFFT_wide_mcar$Perseverative.mcar3),1,0)
# Se a�aden valores a la variable.
RFFT_wide_mcar$Missing_data <- factor(RFFT_wide_mcar$Missing_data,
levels = c(0,1),
labels = c("Sin NA", "Con NA")) 
#table(RFFT_mcar_wide$Missing_data)
Missing_data_perc<-local({
x3<-table(RFFT_wide_mcar$Missing_data)
cat("\ncounts:\n")
print(x3)
cat("\npercentages:\n")
print(round(100*x3/sum(x3), 2))
})

## Se genera una variable que identifica pacientes con al menos un missing value en UNIQUE.
RFFT_wide_mcar$Missing_Unique=ifelse(is.na(RFFT_wide_mcar$Unique.mcar1) | is.na(RFFT_wide_mcar$Unique.mcar2) | is.na(RFFT_wide_mcar$Unique.mcar3),1,0)
# Se a�aden valores a la variable.
RFFT_wide_mcar$Missing_Unique <- factor(RFFT_wide_mcar$Missing_Unique,
levels = c(0,1),
labels = c("Sin NA", "Con NA")) 
#table(RFFT_wide_mcar$Missing_Unique)
Missing_data_Unique_perc<-local({
x3<-table(RFFT_wide_mcar$Missing_Unique)
cat("\ncounts:\n")
print(x3)
cat("\npercentages:\n")
print(round(100*x3/sum(x3), 2))
})

## Se genera una variable que identifica pacientes con al menos un missing value en PERSEVERATIVE.
RFFT_wide_mcar$Missing_Perseverative=ifelse(is.na(RFFT_wide_mcar$Perseverative.mcar1)|                       is.na(RFFT_wide_mcar$Perseverative.mcar2) | is.na(RFFT_wide_mcar$Perseverative.mcar3),1,0)
# Se a�aden valores a la variable.
RFFT_wide_mcar$Missing_Perseverative <- factor(RFFT_wide_mcar$Missing_Perseverative,
levels = c(0,1),
labels = c("Sin NA", "Con NA")) 
#table(RFFT_wide_mcar$Missing_Perseverative)
Missing_data_Perseverative_perc<-local({
x3<-table(RFFT_wide_mcar$Missing_Perseverative)
cat("\ncounts:\n")
print(x3)
cat("\npercentages:\n")
print(round(100*x3/sum(x3), 2))
})


```

- Finalmente  del total de pacientes el `r round(Missing_data_perc[2],digits=2)`% presenta al menos un valor perdido en alguna de los valores del data set, mientras que en las 3 mediciones de unique es el `r round(Missing_data_Unique_perc[2],digits=2)`% y en las mediciones de persevaritive es el `r round(Missing_data_Perseverative_perc[2],digits=2)`%.  


De nuevo se utiliza _ agrr_ para obtener el patr�n de datos faltantes en el dataset que contiene los datos faltantes generados de manera aleatoria en las 6 variables que contienen las mediciones de unique y perseverative (3 mediciones en cada una de ellas). Solo se muestran los valores faltantes en dichas variables y la variable _Interval 2 2006 08_ puesto que para el resto de variables se dispuso de los datos en todos los individuos.  
   
##### Figura 4. Patr�n datos faltantes en dataset modificado (I) (10%)   
```{r echo=FALSE, warning=FALSE, message=FALSE}

aggr_plot<-aggr(RFFT_wide_mcar[,5:12],col=c('deepskyblue4','cadetblue3'),numbers=TRUE,sortVars=TRUE,labels=names(RFFT_wide_mcar[,5:12]),cex.axis=0.5, gap=0.1, ylab=c("Histograma % datos faltantes","Patr�n"))

#library(gplots)
#install.packages("MissMech")
#library("MissMech")
```

No se aprecia ning�n tipo de patr�n que presente una frecuencia superior al resto.   

El paquete **_BaylorEdPsych_**, contiene el una funci�n ( **_LittleMCAR_**)que permite aplicar el test _Little�s MCAR-test_, para analizar la hip�tesis nula de que _los datos faltantes son MCAR_, donde un resultado significativo indicar�a que se debe rechazar dicha hip�tesis. Se aplica sobre el dataset con datos faltantes generados de manera aleatoria ( _se aplica el test sobre las variables de inter�s para el estudio: edad, g�nero, nivel de educaci�n, 1� medici�n �nicos, 2� medici�n �nicos, 3� medici�n �nicos, 1� medici�n perseverantes, 2� medici�n perseverantes, 3� medici�n perseverantes_).  

```{r echo=FALSE, warning=FALSE, message=FALSE}
#--------------------------------------------------
# Little-test
#--------------------------------------------------

# run MCAR test
test_mcar<-LittleMCAR(RFFT_wide_mcar[,2:12]) 
 
# print p-value of mcar-test
print(test_mcar$p.value)
```
  
A partir del resultado de test de Little's, no se puede rechazar la hip�tesis nula (_p-valor_=`r round(test_mcar$p.value,digits=5)`>$\alpha$=0.05), y por lo tanto, como era de esperar al haber sido generados de manera aleatoria, los datos faltantes cumplen las caracter�sticas de **MCAR**.   
  
A su vez el paquete VIM tambi�n dispone de m�s  gr�ficos que permiten comparar la distribuci�n  de los datos faltantes por pares de variables. A modo de ejemplo se plantean 4 comparaciones:   
 
##### Figura 5. Patr�n datos faltantes en dataset modificado (II) (10%)   
```{r echo=FALSE, warning=FALSE, message=FALSE}

layout(matrix(c(1,2,3,4), 2, 2, byrow = TRUE))
marginplot(RFFT_wide_mcar[, c("Age", "Unique.mcar1")], xlab=c("Edad"),ylab=c("N� dis. �nicos (1�)"))
marginplot(RFFT_wide_mcar[, c( "Unique.mcar1","Perseverative.mcar1")], xlab=c("N� dis. �nicos (1�)"),ylab=c("N� err. perseverantes (1�)"))
marginplot(RFFT_wide_mcar[, c( "Unique.mcar2","Perseverative.mcar2")], xlab=c("N� dis. �nicos (2�)"),ylab=c("N� err. perseverantes (2�)"))
marginplot(RFFT_wide_mcar[, c( "Unique.mcar3","Perseverative.mcar3")], xlab=c("N� dis. �nicos (3�)"),ylab=c("N� err. perseverantes (3�)"))

```

Los gr�ficos anteriores permiten comparar la distribuci�n de los datos faltantes por pares de variables. De modo que en el primer gr�fico, la fila de puntos rojos indicar�an como se distribuir�an los datos faltantes de la variable _n� de dise�os �nicos 1�_ en funci�n de los valores de la variable _edad_, y los puntos azules ser�an el resto de valores. El hecho de que los boxplots representados en el eje x ( _edad_) sean similares indica que los valores de edad con y sin valores faltantes en el n� de dise�os �nicos, son similares y es un indicativo de que los datos cumplen las premisas de **MCAR**. Igualmente entre el resto de pares de variables representadas, visualmente tampoco se han hallado diferencias entre la presencia o ausencia de datos faltantes.   


#         #

#### 5.4.1 Caracter�sticas basales Vs datos faltantes todas las variables (10%)

A continuaci�n se analiza en mayor detalle las posibles diferencias entre la presencia y ausencia de datos faltantes en funci�n de las caracter�sticas basales de los individuos.  

- Edad (variable cuantiativa)  

- G�nero y Nivel de Educaci�n (variable cualitativas)  

__Edad vs datos faltantes en alguna de las variables (10%)__   

Se realiza una prueba de normalidad de la variable _edad_ en cada grupo seg�n la presencia o no de datos faltantes en los resultados del test RFFT. Para comparar la edad media entre ambos grupos se utiliza un test param�trico y uno no param�trico. Se fija el nivel de significaci�n en $\alpha$=0.05.  
   
##### Figura 6. Edad en funci�n de la presencia de datos faltantes (10%)    
```{r echo=FALSE, warning=FALSE, message=FALSE}
## (a) Realiza una prueba de normalidad para decidir si la variable edad se ajusta a una distribuci�n normal ## en funci�n de la variable presencia/ausencia de NA.
layout(matrix(c(1,2), 1, 2, byrow = TRUE))

op <- par(mfrow=c(1,2))
hist(RFFT_wide_mcar$Age[RFFT_wide_mcar$Missing_data=="Con NA"],freq=TRUE,xlim=c(30,85),ylim = c(0, 300),main="",xlab="Edad (a�os) con NA",ylab="N� de participantes")
hist(RFFT_wide_mcar$Age[RFFT_wide_mcar$Missing_data=="Sin NA"],freq=TRUE,xlim=c(30,85),ylim = c(0, 300), main="",xlab="Edad (a�os) sin NA",ylab="N� de participantes")
par(oma=c(1,1,1,1),font=2)
mtext(outer=T,"Edad seg�n presencia de datos faltantes",side=3,cex=0.75)

# Tests para comprobar si la distribuci�n de la variable cuantitativa sigue una distribuci�n normal.
Norm_Age_si_NA <-shapiro.test(RFFT_wide_mcar$Age[RFFT_wide_mcar$Missing_data=="Con NA"])
Norm_Age_no_NA <-shapiro.test(RFFT_wide_mcar$Age[RFFT_wide_mcar$Missing_data=="Sin NA"])

parametros<-c("Casos con NA", "Casos sin NA")
summarytable_norm_age<-data.frame(Parametros = parametros, 
                                    p_valor = (c(round(Norm_Age_si_NA$p.value,digits=3), round(Norm_Age_no_NA$p.value,digits=3))))
names(summarytable_norm_age)<-c("Edad","p-valor (Shapiro-Wilk normality test)")
kable(summarytable_norm_age,digits=c(3,3),align = 'c')

# Tests para comparar la distribuci�n de una variable cuantitativa en funci�n de una variable cualitativa con 2 categor�as.

ttest_edad_NA<-t.test(Age~Missing_data, alternative='two.sided', conf.level=.95, var.equal=FALSE, data=RFFT_wide_mcar)
wilcox_edad_NA<-wilcox.test(Age ~ Missing_data, conf.int=TRUE,data=RFFT_wide_mcar)

parametros<-c("T-Test para muestras independientes", "Test de Wilcoxon rank sum test with continuity correction")
summarytable_test_edad_NA<-data.frame(Parametros = parametros, 
                                        p_valor = (c(ttest_edad_NA$p.value,wilcox_edad_NA$p.value)),
                                        IC_inf =(c(ttest_edad_NA$conf.int[1], wilcox_edad_NA$conf.int[1])),
                                        IC_sup =(c(ttest_edad_NA$conf.int[2], wilcox_edad_NA$conf.int[2])),
                                        Grupos =(c("Con NA", "Sin NA")),
                                        Medias =(c(ttest_edad_NA$estimate[[1]][1],ttest_edad_NA$estimate[[2]][1])))
names(summarytable_test_edad_NA)<-c("Tipo de test","p-valor", "IC 95% diferencia inf", "IC 95% diferencia sup", "Presencia NA", "Media Edad")
kable(summarytable_test_edad_NA,digits=c(1,3,3,3,3,3),align = 'c')

```

Observando los resultados obtenidos, no se pudo asumir la normalidad de los datos, ambos p-valores en el test saphiro-wilks son significativos, _p-valor_=`r round(Norm_Age_si_NA$p.value,digits=5)`<$\alpha$=0.05. Por lo tanto para analizar si hay diferencias en las edades entre ambos grupos de pacientes, se tendr� que utilizar el resultado obtenido en el test de Wilcoxon y se puede afirmar que no se han hallado diferencias estad�sticamente significativas en las edades entre los grupos definidos en funci�n de la presencia/ausencia de datos faltantes _p-valor_=`r round(wilcox_edad_NA$p.value,digits=3)`> $\alpha$=0.05.  
   

__G�nero y nivel de educaci�n vs datos faltantes (10%)__

Tanto para analizar si hay diferencias en la proporci�n de datos faltantes entre g�neros y entre los grupos del nivel de educaci�n, se utiliza el test de Chi-cuadrado o en su defecto el test de Fisher.  
  

__G�nero vs Datos faltantes (10%)__
   
Tanto para analizar si hay diferencias en la proporci�n de datos faltantes entre g�neros y entre los grupos del nivel de educaci�n, se utiliza el test de Chi-cuadrado o en su defecto el test de Fisher.  
  
##### Figura 7. Presencia de datos faltantes seg�n g�nero (10%)
```{r echo=FALSE, warning=FALSE, message=FALSE}
layout(matrix(c(1), 1, 1, byrow = TRUE))
library(abind, pos=30)

x<-local({
.Table <- xtabs(~Missing_data+Gender, data=RFFT_wide_mcar)
cat("\nColumn percentages:\n")
print(colPercents(.Table))})
x<-x[1:2,1:2]

bplt <- barplot(x,main="G�nero vs Presencia NA",xlab="% de participantes", ylab="G�nero",legend = rownames(x),beside=TRUE, horiz=TRUE,xlim=c(0,100))
text(x= x+4, y= bplt, labels=as.character(x), xpd=TRUE)

chi1<-chisq.test(xtabs(~Gender+Missing_data, data=RFFT_wide_mcar), correct=FALSE)
chi1$observed
perc_cellobs1<-sum(chi1$observed<5)*100/(ncol(chi1$observed)*nrow(chi1$observed))
fis1<-fisher.test(xtabs(~Gender+Missing_data, data=RFFT_wide_mcar))

parametros<-c("G�nero vs Presencia de NA")
summarytable_genero_NA<-data.frame(Parametros = parametros, 
                                    Esperado = c(perc_cellobs1),
                                    pvalor1 = c(chi1$p.value),
                                    pvalor2 = c(fis1$p.value))
names(summarytable_genero_NA)<-c("","% de celdas con valores esperados <5%", "P-valor Chi-cuadrado", "P-valor Test exacto de Fisher")
kable(summarytable_genero_NA,digits=3,align = 'c')
```
  
Como se puede observar en la tabla de resultados que se presenta a continuaci�n, el % de celdas de la tabla de contingencia con valor esperado <5 es `r round(perc_cellobs1,digits=1)`% y por lo tanto el test que utilizaremos para contrastar las hip�tesis es el Test de Chi-cuadrado y como el p-valor=`r round(chi1$p.value,digits=3)`>$\alpha$=0.05, no podemos rechazar la hip�tesis nula y por lo tanto el % de datos faltantes no var�a entre g�neros.  
  

##### Figura 8. Presencia de datos faltantes seg�n Nivel de educaci�n (10%)
```{r echo=FALSE, warning=FALSE, message=FALSE}
layout(matrix(c(1), 1, 1, byrow = TRUE))
library(abind, pos=30)

x<-local({
.Table <- xtabs(~Missing_data+Education, data=RFFT_wide_mcar)
cat("\nColumn percentages:\n")
print(colPercents(.Table))})
x<-x[1:2,1:4]

bplt <- barplot(x,main="Nivel de educaci�n vs Presencia NA",xlab="% de participantes", 
                ylab="Nivel de educaci�n",legend = rownames(x),beside=TRUE, horiz=TRUE,xlim=c(0,100))
text(x= x+5, y= bplt, labels=as.character(x), xpd=TRUE)

chi2<-chisq.test(xtabs(~Education+Missing_data, data=RFFT_wide_mcar), correct=FALSE)
chi2$observed
perc_cellobs2<-sum(chi2$observed<5)*100/(ncol(chi2$observed)*nrow(chi2$observed))
fis2<-fisher.test(xtabs(~Education+Missing_data, data=RFFT_wide_mcar))

parametros<-c("Nivel de educaci�n vs Presencia de NA")
summarytable_Education_NA<-data.frame(Parametros = parametros, 
                                   Esperado = c(perc_cellobs2),
                                   pvalor1 = c(chi2$p.value),
                                   pvalor2 = c(fis2$p.value))
names(summarytable_Education_NA)<-c("","% de celdas con valores esperados <5%", "P-valor Chi-cuadrado", "P-valor Test exacto de Fisher")
kable(summarytable_Education_NA,digits=3,align = 'c')

```
   
Como se puede observar en la tabla de resultados que se presenta a continuaci�n, el % de celdas de la tabla de contingencia con valor esperado <5 es `r round(perc_cellobs2,digits=1)`% y por lo tanto el test que utilizaremos para contrastar las hip�tesis es el Test de Chi-cuadrado y como el p-valor=`r round(chi2$p.value,digits=3)`>$\alpha$=0.05, no podemos rechazar la hip�tesis nula y por lo tanto el % de datos faltantes no var�a entre los niveles de educaci�n.   

****

#         #

#### 5.4.2 Caracter�sticas basales Vs datos faltantes en _dise�os �nicos_ (10%)
  
- Edad (variable cuantiativa)  

- G�nero y Nivel de Educaci�n (variable cualitativas)  

__Edad vs datos faltantes en dise�os �nicos (10%)__

Se realiza una prueba de normalidad de la variable _edad_ en cada grupo seg�n la presencia o no de datos faltantes en los resultados de las mediciones de la variable Unique. Para comparar la edad media entre ambos grupos se utiliza un test param�trico y uno no param�trico. Se fija el nivel de significaci�n en $\alpha$=0.05.  
   
##### Figura 9. Edad en funci�n de la presencia de datos faltantes en dise�os �nicos (10%)     
```{r echo=FALSE, warning=FALSE, message=FALSE}
## (a) Realiza una prueba de normalidad para decidir si la variable edad se ajusta a una distribuci�n normal ## en funci�n de la variable presencia/ausencia de NA en mediciones de Unique.
layout(matrix(c(1,2), 1, 2, byrow = TRUE))

op <- par(mfrow=c(1,2))
hist(RFFT_wide_mcar$Age[RFFT_wide_mcar$Missing_Unique=="Con NA"],freq=TRUE,xlim=c(30,85),ylim = c(0, 300),main="",xlab="Edad (a�os) con NA en �nicos",ylab="N� de participantes")
hist(RFFT_wide_mcar$Age[RFFT_wide_mcar$Missing_Unique=="Sin NA"],freq=TRUE,xlim=c(30,85),ylim = c(0, 350), main="",xlab="Edad (a�os) sin NA en �nicos",ylab="N� de participantes")
par(oma=c(1,1,1,1),font=2)
mtext(outer=T,"Edad seg�n presencia de datos faltantes en �nicos",side=3,cex=0.75)

# Tests para comprobar si la distribuci�n de la variable cuantitativa sigue una distribuci�n normal.
Norm_Age_si_NA <-shapiro.test(RFFT_wide_mcar$Age[RFFT_wide_mcar$Missing_Unique=="Con NA"])
Norm_Age_no_NA <-shapiro.test(RFFT_wide_mcar$Age[RFFT_wide_mcar$Missing_Unique=="Sin NA"])

parametros<-c("Casos con NA en �nicos", "Casos sin NA en �nicos")
summarytable_norm_age<-data.frame(Parametros = parametros, 
                                    p_valor = (c(round(Norm_Age_si_NA$p.value,digits=3), round(Norm_Age_no_NA$p.value,digits=3))))
names(summarytable_norm_age)<-c("Edad","p-valor (Shapiro-Wilk normality test)")
kable(summarytable_norm_age,digits=c(3,3),align = 'c')

# Tests para comparar la distribuci�n de una variable cuantitativa en funci�n de una variable cualitativa con 2 categor�as.

ttest_edad_NA<-t.test(Age~Missing_Unique, alternative='two.sided', conf.level=.95, var.equal=FALSE, data=RFFT_wide_mcar)
wilcox_edad_NA<-wilcox.test(Age ~ Missing_Unique, conf.int=TRUE,data=RFFT_wide_mcar)

parametros<-c("T-Test para muestras independientes", "Test de Wilcoxon rank sum test with continuity correction")
summarytable_test_edad_NA<-data.frame(Parametros = parametros, 
                                        p_valor = (c(ttest_edad_NA$p.value,wilcox_edad_NA$p.value)),
                                        IC_inf =(c(ttest_edad_NA$conf.int[1], wilcox_edad_NA$conf.int[1])),
                                        IC_sup =(c(ttest_edad_NA$conf.int[2], wilcox_edad_NA$conf.int[2])),
                                        Grupos =(c("Con NA", "Sin NA")),
                                        Medias =(c(ttest_edad_NA$estimate[[1]][1],ttest_edad_NA$estimate[[2]][1])))
names(summarytable_test_edad_NA)<-c("Tipo de test","p-valor", "IC 95% diferencia inf", "IC 95% diferencia sup", "Presencia NA en �nicos", "Media Edad")
kable(summarytable_test_edad_NA,digits=c(1,3,3,3,3,3),align = 'c')

```

Observando los resultados obtenidos, no se pudo asumir la normalidad de los datos, ambos p-valores en el test saphiro-wilks son significativos, _p-valor_=`r round(Norm_Age_si_NA$p.value,digits=5)`<$\alpha$=0.05. Por lo tanto para analizar si hay diferencias en las edades entre ambos grupos de pacientes, se tendr� que utilizar el resultado obtenido en el test de Wilcoxon y se puede afirmar que no se han hallado diferencias estad�sticamente significativas en las edades entre los grupos definidos en funci�n de la presencia/ausencia de datos faltantes _p-valor_=`r round(wilcox_edad_NA$p.value,digits=3)`> $\alpha$=0.05.  
   

__G�nero y nivel de educaci�n vs datos faltantes (10%)__

Tanto para analizar si hay diferencias en la proporci�n de datos faltantes entre g�neros y entre los grupos del nivel de educaci�n, se utiliza el test de Chi-cuadrado o en su defecto el test de Fisher.  
  

__G�nero vs Datos faltantes (10%)__
   
Tanto para analizar si hay diferencias en la proporci�n de datos faltantes entre g�neros y entre los grupos del nivel de educaci�n, se utiliza el test de Chi-cuadrado o en su defecto el test de Fisher.  
  
##### Figura 10. Presencia de datos faltantes en dise�os �nicos seg�n g�nero (10%)    
```{r echo=FALSE, warning=FALSE, message=FALSE}
layout(matrix(c(1), 1, 1, byrow = TRUE))
library(abind, pos=30)

x<-local({
.Table <- xtabs(~Missing_Unique+Gender, data=RFFT_wide_mcar)
cat("\nColumn percentages:\n")
print(colPercents(.Table))})
x<-x[1:2,1:2]

bplt <- barplot(x,main="G�nero vs Presencia NA en �nicos",xlab="% de participantes", ylab="G�nero",legend = rownames(x),beside=TRUE, horiz=TRUE,xlim=c(0,100))
text(x= x+4, y= bplt, labels=as.character(x), xpd=TRUE)

chi1<-chisq.test(xtabs(~Gender+Missing_Unique, data=RFFT_wide_mcar), correct=FALSE)
chi1$observed
perc_cellobs1<-sum(chi1$observed<5)*100/(ncol(chi1$observed)*nrow(chi1$observed))
fis1<-fisher.test(xtabs(~Gender+Missing_Unique, data=RFFT_wide_mcar))

parametros<-c("G�nero vs Presencia de NA")
summarytable_genero_NA<-data.frame(Parametros = parametros, 
                                    Esperado = c(perc_cellobs1),
                                    pvalor1 = c(chi1$p.value),
                                    pvalor2 = c(fis1$p.value))
names(summarytable_genero_NA)<-c("","% de celdas con valores esperados <5%", "P-valor Chi-cuadrado", "P-valor Test exacto de Fisher")
kable(summarytable_genero_NA,digits=3,align = 'c')
```
  
Como se puede observar en la tabla de resultados que se presenta a continuaci�n, el % de celdas de la tabla de contingencia con valor esperado <5 es `r round(perc_cellobs1,digits=1)`% y por lo tanto el test que utilizaremos para contrastar las hip�tesis es el Test de Chi-cuadrado y como el p-valor=`r round(chi1$p.value,digits=3)`>$\alpha$=0.05, no podemos rechazar la hip�tesis nula y por lo tanto el % de datos faltantes en Unique no var�a entre g�neros.  
  

##### Figura 11. Presencia de datos faltantes en dise�os �nicos seg�n Nivel de educaci�n (10%)   
```{r echo=FALSE, warning=FALSE, message=FALSE}
layout(matrix(c(1), 1, 1, byrow = TRUE))
library(abind, pos=30)

x<-local({
.Table <- xtabs(~Missing_Unique+Education, data=RFFT_wide_mcar)
cat("\nColumn percentages:\n")
print(colPercents(.Table))})
x<-x[1:2,1:4]

bplt <- barplot(x,main="Nivel de educaci�n vs Presencia NA",xlab="% de participantes", 
                ylab="Nivel de educaci�n",legend = rownames(x),beside=TRUE, horiz=TRUE,xlim=c(0,100))
text(x= x+3, y= bplt, labels=as.character(x), xpd=TRUE)

chi2<-chisq.test(xtabs(~Education+Missing_Unique, data=RFFT_wide_mcar), correct=FALSE)
chi2$observed
perc_cellobs2<-sum(chi2$observed<5)*100/(ncol(chi2$observed)*nrow(chi2$observed))
fis2<-fisher.test(xtabs(~Education+Missing_Unique, data=RFFT_wide_mcar))

parametros<-c("Nivel de educaci�n vs Presencia de NA")
summarytable_Education_NA<-data.frame(Parametros = parametros, 
                                   Esperado = c(perc_cellobs2),
                                   pvalor1 = c(chi2$p.value),
                                   pvalor2 = c(fis2$p.value))
names(summarytable_Education_NA)<-c("","% de celdas con valores esperados <5%", "P-valor Chi-cuadrado", "P-valor Test exacto de Fisher")
kable(summarytable_Education_NA,digits=3,align = 'c')

```
   
Como se puede observar en la tabla de resultados que se presenta a continuaci�n, el % de celdas de la tabla de contingencia con valor esperado <5 es `r round(perc_cellobs2,digits=1)`% y por lo tanto el test que utilizaremos para contrastar las hip�tesis es el Test de Chi-cuadrado y como el p-valor=`r round(chi2$p.value,digits=3)`>$\alpha$=0.05, no podemos rechazar la hip�tesis nula y por lo tanto el % de datos faltantes en dise�os �nicos no var�a entre los niveles de educaci�n.   
  

****

#         #

#### 5.4.3 Caracter�sticas basales Vs datos faltantes en _errores perseverantes_ (10%)
  
- Edad (variable cuantiativa)  

- G�nero y Nivel de Educaci�n (variable cualitativas)  

__Edad vs datos faltantes en errores perseverantes (10%)__

Se realiza una prueba de normalidad de la variable _edad_ en cada grupo seg�n la presencia o no de datos faltantes en los resultados de las mediciones de los errores perseverantes. Para comparar la edad media entre ambos grupos se utiliza un test param�trico y uno no param�trico. Se fija el nivel de significaci�n en $\alpha$=0.05.  
   
##### Figura 12. Edad en funci�n de la presencia de datos faltantes en errores perseverantes (10%)     
```{r echo=FALSE, warning=FALSE, message=FALSE}
## (a) Realiza una prueba de normalidad para decidir si la variable edad se ajusta a una distribuci�n normal ## en funci�n de la variable presencia/ausencia de NA en mediciones de Perseverative.
layout(matrix(c(1,2), 1, 2, byrow = TRUE))

op <- par(mfrow=c(1,2))
hist(RFFT_wide_mcar$Age[RFFT_wide_mcar$Missing_Perseverative=="Con NA"],freq=TRUE,xlim=c(30,85),ylim = c(0, 300),main="",xlab="Edad (a�os) con NA en perseverantes",ylab="N� de participantes")
hist(RFFT_wide_mcar$Age[RFFT_wide_mcar$Missing_Perseverative=="Sin NA"],freq=TRUE,xlim=c(30,85),ylim = c(0, 350), main="",xlab="Edad (a�os) sin NA en perseverantes",ylab="N� de participantes")
par(oma=c(1,1,1,1),font=2)
mtext(outer=T,"Edad seg�n presencia de datos faltantes en perseverantes",side=3,cex=0.75)

# Tests para comprobar si la distribuci�n de la variable cuantitativa sigue una distribuci�n normal.
Norm_Age_si_NA <-shapiro.test(RFFT_wide_mcar$Age[RFFT_wide_mcar$Missing_Perseverative=="Con NA"])
Norm_Age_no_NA <-shapiro.test(RFFT_wide_mcar$Age[RFFT_wide_mcar$Missing_Perseverative=="Sin NA"])

parametros<-c("Casos con NA en perseverantes", "Casos sin NA en perseverantes")
summarytable_norm_age<-data.frame(Parametros = parametros, 
                                    p_valor = (c(round(Norm_Age_si_NA$p.value,digits=3), round(Norm_Age_no_NA$p.value,digits=3))))
names(summarytable_norm_age)<-c("Edad","p-valor (Shapiro-Wilk normality test)")
kable(summarytable_norm_age,digits=c(3,3),align = 'c')

# Tests para comparar la distribuci�n de una variable cuantitativa en funci�n de una variable cualitativa con 2 categor�as.

ttest_edad_NA<-t.test(Age~Missing_Perseverative, alternative='two.sided', conf.level=.95, var.equal=FALSE, data=RFFT_wide_mcar)
wilcox_edad_NA<-wilcox.test(Age ~ Missing_Perseverative, conf.int=TRUE,data=RFFT_wide_mcar)

parametros<-c("T-Test para muestras independientes", "Test de Wilcoxon rank sum test with continuity correction")
summarytable_test_edad_NA<-data.frame(Parametros = parametros, 
                                        p_valor = (c(ttest_edad_NA$p.value,wilcox_edad_NA$p.value)),
                                        IC_inf =(c(ttest_edad_NA$conf.int[1], wilcox_edad_NA$conf.int[1])),
                                        IC_sup =(c(ttest_edad_NA$conf.int[2], wilcox_edad_NA$conf.int[2])),
                                        Grupos =(c("Con NA", "Sin NA")),
                                        Medias =(c(ttest_edad_NA$estimate[[1]][1],ttest_edad_NA$estimate[[2]][1])))
names(summarytable_test_edad_NA)<-c("Tipo de test","p-valor", "IC 95% diferencia inf", "IC 95% diferencia sup", "Presencia NA en perseverantes", "Media Edad")
kable(summarytable_test_edad_NA,digits=c(1,3,3,3,3,3),align = 'c')

```

Observando los resultados obtenidos, no se pudo asumir la normalidad de los datos, ambos p-valores en el test saphiro-wilks son significativos, _p-valor_=`r round(Norm_Age_si_NA$p.value,digits=5)`<$\alpha$=0.05. Por lo tanto para analizar si hay diferencias en las edades entre ambos grupos de pacientes, se tendr� que utilizar el resultado obtenido en el test de Wilcoxon y se puede afirmar que no se han hallado diferencias estad�sticamente significativas en las edades entre los grupos definidos en funci�n de la presencia/ausencia de datos faltantes _p-valor_=`r round(wilcox_edad_NA$p.value,digits=3)`> $\alpha$=0.05.  
   

__G�nero y nivel de educaci�n vs datos faltantes (10%)__

Tanto para analizar si hay diferencias en la proporci�n de datos faltantes entre g�neros y entre los grupos del nivel de educaci�n, se utiliza el test de Chi-cuadrado o en su defecto el test de Fisher.  
  

__G�nero vs Datos faltantes (10%)__
   
Tanto para analizar si hay diferencias en la proporci�n de datos faltantes entre g�neros y entre los grupos del nivel de educaci�n, se utiliza el test de Chi-cuadrado o en su defecto el test de Fisher.  
  
##### Figura 13. Presencia de datos faltantes en errores perseverantes seg�n g�nero (10%)    
```{r echo=FALSE, warning=FALSE, message=FALSE}
layout(matrix(c(1), 1, 1, byrow = TRUE))
library(abind, pos=30)

x<-local({
.Table <- xtabs(~Missing_Perseverative+Gender, data=RFFT_wide_mcar)
cat("\nColumn percentages:\n")
print(colPercents(.Table))})
x<-x[1:2,1:2]

bplt <- barplot(x,main="G�nero vs Presencia NA en perseverantes",xlab="% de participantes", ylab="G�nero",legend = rownames(x),beside=TRUE, horiz=TRUE,xlim=c(0,100))
text(x= x+4, y= bplt, labels=as.character(x), xpd=TRUE)

chi1<-chisq.test(xtabs(~Gender+Missing_Perseverative, data=RFFT_wide_mcar), correct=FALSE)
chi1$observed
perc_cellobs1<-sum(chi1$observed<5)*100/(ncol(chi1$observed)*nrow(chi1$observed))
fis1<-fisher.test(xtabs(~Gender+Missing_Perseverative, data=RFFT_wide_mcar))

parametros<-c("G�nero vs Presencia de NA")
summarytable_genero_NA<-data.frame(Parametros = parametros, 
                                    Esperado = c(perc_cellobs1),
                                    pvalor1 = c(chi1$p.value),
                                    pvalor2 = c(fis1$p.value))
names(summarytable_genero_NA)<-c("","% de celdas con valores esperados <5%", "P-valor Chi-cuadrado", "P-valor Test exacto de Fisher")
kable(summarytable_genero_NA,digits=3,align = 'c')
```
  
Como se puede observar en la tabla de resultados que se presenta a continuaci�n, el % de celdas de la tabla de contingencia con valor esperado <5 es `r round(perc_cellobs1,digits=1)`% y por lo tanto el test que utilizaremos para contrastar las hip�tesis es el Test de Chi-cuadrado y como el p-valor=`r round(chi1$p.value,digits=3)`>$\alpha$=0.05, no podemos rechazar la hip�tesis nula y por lo tanto el % de datos faltantes en perseverantes no var�a entre g�neros.  
  

##### Figura 14. Presencia de datos faltantes en errores perseverantes seg�n Nivel de educaci�n (10%)   
```{r echo=FALSE, warning=FALSE, message=FALSE}
layout(matrix(c(1), 1, 1, byrow = TRUE))
library(abind, pos=30)

x<-local({
.Table <- xtabs(~Missing_Perseverative+Education, data=RFFT_wide_mcar)
cat("\nColumn percentages:\n")
print(colPercents(.Table))})
x<-x[1:2,1:4]

bplt <- barplot(x,main="Nivel de educaci�n vs Presencia NA",xlab="% de participantes", 
                ylab="Nivel de educaci�n",legend = rownames(x),beside=TRUE, horiz=TRUE,xlim=c(0,100))
text(x= x+3, y= bplt, labels=as.character(x), xpd=TRUE)

chi2<-chisq.test(xtabs(~Education+Missing_Perseverative, data=RFFT_wide_mcar), correct=FALSE)
chi2$observed
perc_cellobs2<-sum(chi2$observed<5)*100/(ncol(chi2$observed)*nrow(chi2$observed))
fis2<-fisher.test(xtabs(~Education+Missing_Perseverative, data=RFFT_wide_mcar))

parametros<-c("Nivel de educaci�n vs Presencia de NA")
summarytable_Education_NA<-data.frame(Parametros = parametros, 
                                   Esperado = c(perc_cellobs2),
                                   pvalor1 = c(chi2$p.value),
                                   pvalor2 = c(fis2$p.value))
names(summarytable_Education_NA)<-c("","% de celdas con valores esperados <5%", "P-valor Chi-cuadrado", "P-valor Test exacto de Fisher")
kable(summarytable_Education_NA,digits=3,align = 'c')

```
   
Como se puede observar en la tabla de resultados que se presenta a continuaci�n, el % de celdas de la tabla de contingencia con valor esperado <5 es `r round(perc_cellobs2,digits=1)`% y por lo tanto el test que utilizaremos para contrastar las hip�tesis es el Test de Chi-cuadrado y como el p-valor=`r round(chi2$p.value,digits=3)`>$\alpha$=0.05, no podemos rechazar la hip�tesis nula y por lo tanto el % de datos faltantes en perseverantes no var�a entre los niveles de educaci�n.   


En funci�n de todos los resultados anteriores: el test **_Little�s MCAR-test_**, las representaciones gr�ficas de los patrones de los datos faltantes y la ausencia de relaci�n entre la presencia de datos faltantes y las caracter�sticas basales, tanto para el n� de dise�os �nicos como para el n� de errores perseverantes, permite afirmar que los datos cumplen las caracter�sticas de **MCAR**.  

****

###  5.5	 An�lisis de los patrones de los datos faltantes (20%)

##### Patr�n datos faltantes en dataset modificado (20%)

Se identifican los individuos con al menos 1 caso con dato faltante en global (incuyendo los casos de la variable `r aggr_plot$missings$Variables[10]`) y separado para las 3 mediciones de **Unique** y **Perseverative** respectivamente.  

```{r echo=FALSE, warning=FALSE, message=FALSE}

## Se genera una variable que identifica pacientes con al menos un missing value.
RFFT_wide_mcar_20$Missing_data=ifelse(is.na(RFFT_wide_mcar_20$Interval_2_2006_08) | is.na(RFFT_wide_mcar_20$Unique.mcar1_20) | is.na(RFFT_wide_mcar_20$Unique.mcar2_20) | is.na(RFFT_wide_mcar_20$Unique.mcar3_20) | is.na(RFFT_wide_mcar_20$Perseverative.mcar1_20) | is.na(RFFT_wide_mcar_20$Perseverative.mcar2_20) | is.na(RFFT_wide_mcar_20$Perseverative.mcar3_20),1,0)
# Se a�aden valores a la variable.
RFFT_wide_mcar_20$Missing_data <- factor(RFFT_wide_mcar_20$Missing_data,
levels = c(0,1),
labels = c("Sin NA", "Con NA")) 
#table(RFFT_mcar_wide$Missing_data)
Missing_data_perc20<-local({
x3<-table(RFFT_wide_mcar_20$Missing_data)
cat("\ncounts:\n")
print(x3)
cat("\npercentages:\n")
print(round(100*x3/sum(x3), 2))
})

## Se genera una variable que identifica pacientes con al menos un missing value en UNIQUE.
RFFT_wide_mcar_20$Missing_Unique=ifelse(is.na(RFFT_wide_mcar_20$Unique.mcar1_20) | is.na(RFFT_wide_mcar_20$Unique.mcar2_20) | is.na(RFFT_wide_mcar_20$Unique.mcar3_20),1,0)
# Se a�aden valores a la variable.
RFFT_wide_mcar_20$Missing_Unique <- factor(RFFT_wide_mcar_20$Missing_Unique,
levels = c(0,1),
labels = c("Sin NA", "Con NA")) 
#table(RFFT_wide_mcar_20$Missing_Unique)
Missing_data_Unique_perc20<-local({
x3<-table(RFFT_wide_mcar_20$Missing_Unique)
cat("\ncounts:\n")
print(x3)
cat("\npercentages:\n")
print(round(100*x3/sum(x3), 2))
})

## Se genera una variable que identifica pacientes con al menos un missing value en PERSEVERATIVE.
RFFT_wide_mcar_20$Missing_Perseverative=ifelse(is.na(RFFT_wide_mcar_20$Perseverative.mcar1)|                       is.na(RFFT_wide_mcar_20$Perseverative.mcar2) | is.na(RFFT_wide_mcar_20$Perseverative.mcar3),1,0)
# Se a�aden valores a la variable.
RFFT_wide_mcar_20$Missing_Perseverative <- factor(RFFT_wide_mcar_20$Missing_Perseverative,
levels = c(0,1),
labels = c("Sin NA", "Con NA")) 
#table(RFFT_wide_mcar_20$Missing_Perseverative)
Missing_data_Perseverative_perc20<-local({
x3<-table(RFFT_wide_mcar_20$Missing_Perseverative)
cat("\ncounts:\n")
print(x3)
cat("\npercentages:\n")
print(round(100*x3/sum(x3), 2))
})


```

- Finalmente  del total de pacientes el `r round(Missing_data_perc20[2],digits=2)`% presenta al menos un valor perdido en alguna de los valores del data set, mientras que en las 3 mediciones de unique es el `r round(Missing_data_Unique_perc20[2],digits=2)`% y en las mediciones de persevaritive es el `r round(Missing_data_Perseverative_perc20[2],digits=2)`%.  


De nuevo se utiliza _ agrr_ para obtener el patr�n de datos faltantes en el dataset que contiene los datos faltantes generados de manera aleatoria en las 6 variables que contienen las mediciones de unique y perseverative (3 mediciones en cada una de ellas). Solo se muestran los valores faltantes en dichas variables y la variable _Interval 2 2006 08_ puesto que para el resto de variables se dispuso de los datos en todos los individuos.  
   
##### Figura 15. Patr�n datos faltantes en dataset modificado (I) (20%)   
```{r echo=FALSE, warning=FALSE, message=FALSE}

aggr_plot<-aggr(RFFT_wide_mcar_20[,5:12],col=c('deepskyblue4','cadetblue3'),numbers=TRUE,sortVars=TRUE,labels=names(RFFT_wide_mcar_20[,5:12]),cex.axis=0.5, gap=0.1, ylab=c("Histograma % datos faltantes","Patr�n"))

#library(gplots)
#install.packages("MissMech")
#library("MissMech")
```

No se aprecia ning�n tipo de patr�n que presente una frecuencia superior al resto.   

El paquete **_BaylorEdPsych_**, contiene el una funci�n ( **_LittleMCAR_**)que permite aplicar el test _Little�s MCAR-test_, para analizar la hip�tesis nula de que _los datos faltantes son MCAR_, donde un resultado significativo indicar�a que se debe rechazar dicha hip�tesis. Se aplica sobre el dataset con datos faltantes generados de manera aleatoria ( _se aplica el test sobre las variables de inter�s para el estudio: edad, g�nero, nivel de educaci�n, 1� medici�n �nicos, 2� medici�n �nicos, 3� medici�n �nicos, 1� medici�n perseverantes, 2� medici�n perseverantes, 3� medici�n perseverantes_).  

```{r echo=FALSE, warning=FALSE, message=FALSE}
#--------------------------------------------------
# Little-test
#--------------------------------------------------

# run MCAR test
test_mcar20<-LittleMCAR(RFFT_wide_mcar_20[,2:12]) 
 
# print p-value of mcar-test
print(test_mcar20$p.value)
```
  
A partir del resultado de test de Little's, no se puede rechazar la hip�tesis nula (_p-valor_=`r round(test_mcar20$p.value,digits=5)`>$\alpha$=0.05), y por lo tanto, como era de esperar al haber sido generados de manera aleatoria, los datos faltantes cumplen las caracter�sticas de **MCAR**.   
  
A su vez el paquete VIM tambi�n dispone de m�s  gr�ficos que permiten comparar la distribuci�n  de los datos faltantes por pares de variables. A modo de ejemplo se plantean 4 comparaciones:   
 
##### Figura 16. Patr�n datos faltantes en dataset modificado (II) (20%)   
```{r echo=FALSE, warning=FALSE, message=FALSE}

layout(matrix(c(1,2,3,4), 2, 2, byrow = TRUE))
marginplot(RFFT_wide_mcar_20[, c("Age", "Unique.mcar1_20")], xlab=c("Edad"),ylab=c("N� dis. �nicos (1�)"))
marginplot(RFFT_wide_mcar_20[, c( "Unique.mcar1_20","Perseverative.mcar1_20")], xlab=c("N� dis. �nicos (1�)"),ylab=c("N� err. perseverantes (1�)"))
marginplot(RFFT_wide_mcar_20[, c( "Unique.mcar2_20","Perseverative.mcar2_20")], xlab=c("N� dis. �nicos (2�)"),ylab=c("N� err. perseverantes (2�)"))
marginplot(RFFT_wide_mcar_20[, c( "Unique.mcar3_20","Perseverative.mcar3_20")], xlab=c("N� dis. �nicos (3�)"),ylab=c("N� err. perseverantes (3�)"))


```

Los gr�ficos anteriores permiten comparar la distribuci�n de los datos faltantes por pares de variables. De modo que en el primer gr�fico, la fila de puntos rojos indicar�an como se distribuir�an los datos faltantes de la variable _n� de dise�os �nicos 1�_ en funci�n de los valores de la variable _edad_, y los puntos azules ser�an el resto de valores. El hecho de que los boxplots representados en el eje x ( _edad_) sean similares indica que los valores de edad con y sin valores faltantes en el n� de dise�os �nicos, son similares y es un indicativo de que los datos cumplen las premisas de **MCAR**. Igualmente entre el resto de pares de variables representadas, visualmente tampoco se han hallado diferencias entre la presencia o ausencia de datos faltantes.   


#         #

#### 5.5.1 Caracter�sticas basales Vs datos faltantes todas las variables (20%)

A continuaci�n se analiza en mayor detalle las posibles diferencias entre la presencia y ausencia de datos faltantes en funci�n de las caracter�sticas basales de los individuos.  

- Edad (variable cuantiativa)  

- G�nero y Nivel de Educaci�n (variable cualitativas)  

__Edad vs datos faltantes en alguna de las variables (20%)__   

Se realiza una prueba de normalidad de la variable _edad_ en cada grupo seg�n la presencia o no de datos faltantes en los resultados del test RFFT. Para comparar la edad media entre ambos grupos se utiliza un test param�trico y uno no param�trico. Se fija el nivel de significaci�n en $\alpha$=0.05.  
   
##### Figura 17. Edad en funci�n de la presencia de datos faltantes (20%)    
```{r echo=FALSE, warning=FALSE, message=FALSE}
## (a) Realiza una prueba de normalidad para decidir si la variable edad se ajusta a una distribuci�n normal ## en funci�n de la variable presencia/ausencia de NA.
layout(matrix(c(1,2), 1, 2, byrow = TRUE))

op <- par(mfrow=c(1,2))
hist(RFFT_wide_mcar_20$Age[RFFT_wide_mcar_20$Missing_data=="Con NA"],freq=TRUE,xlim=c(30,85),ylim = c(0, 400),main="",xlab="Edad (a�os) con NA",ylab="N� de participantes")
hist(RFFT_wide_mcar_20$Age[RFFT_wide_mcar_20$Missing_data=="Sin NA"],freq=TRUE,xlim=c(30,85),ylim = c(0, 400), main="",xlab="Edad (a�os) sin NA",ylab="N� de participantes")
par(oma=c(1,1,1,1),font=2)
mtext(outer=T,"Edad seg�n presencia de datos faltantes",side=3,cex=0.75)

# Tests para comprobar si la distribuci�n de la variable cuantitativa sigue una distribuci�n normal.
Norm_Age_si_NA <-shapiro.test(RFFT_wide_mcar_20$Age[RFFT_wide_mcar_20$Missing_data=="Con NA"])
Norm_Age_no_NA <-shapiro.test(RFFT_wide_mcar_20$Age[RFFT_wide_mcar_20$Missing_data=="Sin NA"])

parametros<-c("Casos con NA", "Casos sin NA")
summarytable_norm_age<-data.frame(Parametros = parametros, 
                                    p_valor = (c(round(Norm_Age_si_NA$p.value,digits=3), round(Norm_Age_no_NA$p.value,digits=3))))
names(summarytable_norm_age)<-c("Edad","p-valor (Shapiro-Wilk normality test)")
kable(summarytable_norm_age,digits=c(3,3),align = 'c')

# Tests para comparar la distribuci�n de una variable cuantitativa en funci�n de una variable cualitativa con 2 categor�as.

ttest_edad_NA<-t.test(Age~Missing_data, alternative='two.sided', conf.level=.95, var.equal=FALSE, data=RFFT_wide_mcar_20)
wilcox_edad_NA<-wilcox.test(Age ~ Missing_data, conf.int=TRUE,data=RFFT_wide_mcar_20)

parametros<-c("T-Test para muestras independientes", "Test de Wilcoxon rank sum test with continuity correction")
summarytable_test_edad_NA<-data.frame(Parametros = parametros, 
                                        p_valor = (c(ttest_edad_NA$p.value,wilcox_edad_NA$p.value)),
                                        IC_inf =(c(ttest_edad_NA$conf.int[1], wilcox_edad_NA$conf.int[1])),
                                        IC_sup =(c(ttest_edad_NA$conf.int[2], wilcox_edad_NA$conf.int[2])),
                                        Grupos =(c("Con NA", "Sin NA")),
                                        Medias =(c(ttest_edad_NA$estimate[[1]][1],ttest_edad_NA$estimate[[2]][1])))
names(summarytable_test_edad_NA)<-c("Tipo de test","p-valor", "IC 95% diferencia inf", "IC 95% diferencia sup", "Presencia NA", "Media Edad")
kable(summarytable_test_edad_NA,digits=c(1,3,3,3,3,3),align = 'c')

```

Observando los resultados obtenidos, no se pudo asumir la normalidad de los datos, ambos p-valores en el test saphiro-wilks son significativos, _p-valor_=`r round(Norm_Age_si_NA$p.value,digits=5)`<$\alpha$=0.05. Por lo tanto para analizar si hay diferencias en las edades entre ambos grupos de pacientes, se tendr� que utilizar el resultado obtenido en el test de Wilcoxon y se puede afirmar que no se han hallado diferencias estad�sticamente significativas en las edades entre los grupos definidos en funci�n de la presencia/ausencia de datos faltantes _p-valor_=`r round(wilcox_edad_NA$p.value,digits=3)`> $\alpha$=0.05.  
   

__G�nero y nivel de educaci�n vs datos faltantes (20%)__

Tanto para analizar si hay diferencias en la proporci�n de datos faltantes entre g�neros y entre los grupos del nivel de educaci�n, se utiliza el test de Chi-cuadrado o en su defecto el test de Fisher.  
  

__G�nero vs Datos faltantes (20%)__
   
Tanto para analizar si hay diferencias en la proporci�n de datos faltantes entre g�neros y entre los grupos del nivel de educaci�n, se utiliza el test de Chi-cuadrado o en su defecto el test de Fisher.  
  
##### Figura 18. Presencia de datos faltantes seg�n g�nero (20%)
```{r echo=FALSE, warning=FALSE, message=FALSE}
layout(matrix(c(1), 1, 1, byrow = TRUE))
library(abind, pos=30)

x<-local({
.Table <- xtabs(~Missing_data+Gender, data=RFFT_wide_mcar_20)
cat("\nColumn percentages:\n")
print(colPercents(.Table))})
x<-x[1:2,1:2]

bplt <- barplot(x,main="G�nero vs Presencia NA",xlab="% de participantes", ylab="G�nero",legend = rownames(x),beside=TRUE, horiz=TRUE,xlim=c(0,100))
text(x= x+4, y= bplt, labels=as.character(x), xpd=TRUE)

chi1<-chisq.test(xtabs(~Gender+Missing_data, data=RFFT_wide_mcar_20), correct=FALSE)
chi1$observed
perc_cellobs1<-sum(chi1$observed<5)*100/(ncol(chi1$observed)*nrow(chi1$observed))
fis1<-fisher.test(xtabs(~Gender+Missing_data, data=RFFT_wide_mcar_20))

parametros<-c("G�nero vs Presencia de NA")
summarytable_genero_NA<-data.frame(Parametros = parametros, 
                                    Esperado = c(perc_cellobs1),
                                    pvalor1 = c(chi1$p.value),
                                    pvalor2 = c(fis1$p.value))
names(summarytable_genero_NA)<-c("","% de celdas con valores esperados <5%", "P-valor Chi-cuadrado", "P-valor Test exacto de Fisher")
kable(summarytable_genero_NA,digits=3,align = 'c')
```
  
Como se puede observar en la tabla de resultados que se presenta a continuaci�n, el % de celdas de la tabla de contingencia con valor esperado <5 es `r round(perc_cellobs1,digits=1)`% y por lo tanto el test que utilizaremos para contrastar las hip�tesis es el Test de Chi-cuadrado y como el p-valor=`r round(chi1$p.value,digits=3)`>$\alpha$=0.05, no podemos rechazar la hip�tesis nula y por lo tanto el % de datos faltantes no var�a entre g�neros.  
  

##### Figura 19. Presencia de datos faltantes seg�n Nivel de educaci�n (20%)
```{r echo=FALSE, warning=FALSE, message=FALSE}
layout(matrix(c(1), 1, 1, byrow = TRUE))
library(abind, pos=30)

x<-local({
.Table <- xtabs(~Missing_data+Education, data=RFFT_wide_mcar_20)
cat("\nColumn percentages:\n")
print(colPercents(.Table))})
x<-x[1:2,1:4]

bplt <- barplot(x,main="Nivel de educaci�n vs Presencia NA",xlab="% de participantes", 
                ylab="Nivel de educaci�n",legend = rownames(x),beside=TRUE, horiz=TRUE,xlim=c(0,100))
text(x= x+5, y= bplt, labels=as.character(x), xpd=TRUE)

chi2<-chisq.test(xtabs(~Education+Missing_data, data=RFFT_wide_mcar_20), correct=FALSE)
chi2$observed
perc_cellobs2<-sum(chi2$observed<5)*100/(ncol(chi2$observed)*nrow(chi2$observed))
fis2<-fisher.test(xtabs(~Education+Missing_data, data=RFFT_wide_mcar_20))

parametros<-c("Nivel de educaci�n vs Presencia de NA")
summarytable_Education_NA<-data.frame(Parametros = parametros, 
                                   Esperado = c(perc_cellobs2),
                                   pvalor1 = c(chi2$p.value),
                                   pvalor2 = c(fis2$p.value))
names(summarytable_Education_NA)<-c("","% de celdas con valores esperados <5%", "P-valor Chi-cuadrado", "P-valor Test exacto de Fisher")
kable(summarytable_Education_NA,digits=3,align = 'c')

```
   
Como se puede observar en la tabla de resultados que se presenta a continuaci�n, el % de celdas de la tabla de contingencia con valor esperado <5 es `r round(perc_cellobs2,digits=1)`% y por lo tanto el test que utilizaremos para contrastar las hip�tesis es el Test de Chi-cuadrado y como el p-valor=`r round(chi2$p.value,digits=3)`>$\alpha$=0.05, no podemos rechazar la hip�tesis nula y por lo tanto el % de datos faltantes no var�a entre los niveles de educaci�n.   

****

#         #

#### 5.5.2 Caracter�sticas basales Vs datos faltantes en _dise�os �nicos_ (20%)
  
- Edad (variable cuantiativa)  

- G�nero y Nivel de Educaci�n (variable cualitativas)  

__Edad vs datos faltantes en dise�os �nicos (20%)__

Se realiza una prueba de normalidad de la variable _edad_ en cada grupo seg�n la presencia o no de datos faltantes en los resultados de las mediciones de la variable Unique. Para comparar la edad media entre ambos grupos se utiliza un test param�trico y uno no param�trico. Se fija el nivel de significaci�n en $\alpha$=0.05.  
   
##### Figura 20. Edad en funci�n de la presencia de datos faltantes en dise�os �nicos (20%)     
```{r echo=FALSE, warning=FALSE, message=FALSE}
## (a) Realiza una prueba de normalidad para decidir si la variable edad se ajusta a una distribuci�n normal ## en funci�n de la variable presencia/ausencia de NA en mediciones de Unique.
layout(matrix(c(1,2), 1, 2, byrow = TRUE))

op <- par(mfrow=c(1,2))
hist(RFFT_wide_mcar_20$Age[RFFT_wide_mcar_20$Missing_Unique=="Con NA"],freq=TRUE,xlim=c(30,85),ylim = c(0, 300),main="",xlab="Edad (a�os) con NA en �nicos",ylab="N� de participantes")
hist(RFFT_wide_mcar_20$Age[RFFT_wide_mcar_20$Missing_Unique=="Sin NA"],freq=TRUE,xlim=c(30,85),ylim = c(0, 350), main="",xlab="Edad (a�os) sin NA en �nicos",ylab="N� de participantes")
par(oma=c(1,1,1,1),font=2)
mtext(outer=T,"Edad seg�n presencia de datos faltantes en �nicos",side=3,cex=0.75)

# Tests para comprobar si la distribuci�n de la variable cuantitativa sigue una distribuci�n normal.
Norm_Age_si_NA <-shapiro.test(RFFT_wide_mcar_20$Age[RFFT_wide_mcar_20$Missing_Unique=="Con NA"])
Norm_Age_no_NA <-shapiro.test(RFFT_wide_mcar_20$Age[RFFT_wide_mcar_20$Missing_Unique=="Sin NA"])

parametros<-c("Casos con NA en �nicos", "Casos sin NA en �nicos")
summarytable_norm_age<-data.frame(Parametros = parametros, 
                                    p_valor = (c(round(Norm_Age_si_NA$p.value,digits=3), round(Norm_Age_no_NA$p.value,digits=3))))
names(summarytable_norm_age)<-c("Edad","p-valor (Shapiro-Wilk normality test)")
kable(summarytable_norm_age,digits=c(3,3),align = 'c')

# Tests para comparar la distribuci�n de una variable cuantitativa en funci�n de una variable cualitativa con 2 categor�as.

ttest_edad_NA<-t.test(Age~Missing_Unique, alternative='two.sided', conf.level=.95, var.equal=FALSE, data=RFFT_wide_mcar_20)
wilcox_edad_NA<-wilcox.test(Age ~ Missing_Unique, conf.int=TRUE,data=RFFT_wide_mcar_20)

parametros<-c("T-Test para muestras independientes", "Test de Wilcoxon rank sum test with continuity correction")
summarytable_test_edad_NA<-data.frame(Parametros = parametros, 
                                        p_valor = (c(ttest_edad_NA$p.value,wilcox_edad_NA$p.value)),
                                        IC_inf =(c(ttest_edad_NA$conf.int[1], wilcox_edad_NA$conf.int[1])),
                                        IC_sup =(c(ttest_edad_NA$conf.int[2], wilcox_edad_NA$conf.int[2])),
                                        Grupos =(c("Con NA", "Sin NA")),
                                        Medias =(c(ttest_edad_NA$estimate[[1]][1],ttest_edad_NA$estimate[[2]][1])))
names(summarytable_test_edad_NA)<-c("Tipo de test","p-valor", "IC 95% diferencia inf", "IC 95% diferencia sup", "Presencia NA en �nicos", "Media Edad")
kable(summarytable_test_edad_NA,digits=c(1,3,3,3,3,3),align = 'c')

```

Observando los resultados obtenidos, no se pudo asumir la normalidad de los datos, ambos p-valores en el test saphiro-wilks son significativos, _p-valor_=`r round(Norm_Age_si_NA$p.value,digits=5)`<$\alpha$=0.05. Por lo tanto para analizar si hay diferencias en las edades entre ambos grupos de pacientes, se tendr� que utilizar el resultado obtenido en el test de Wilcoxon y se puede afirmar que no se han hallado diferencias estad�sticamente significativas en las edades entre los grupos definidos en funci�n de la presencia/ausencia de datos faltantes _p-valor_=`r round(wilcox_edad_NA$p.value,digits=3)`> $\alpha$=0.05.  
   

__G�nero y nivel de educaci�n vs datos faltantes (20%)__

Tanto para analizar si hay diferencias en la proporci�n de datos faltantes entre g�neros y entre los grupos del nivel de educaci�n, se utiliza el test de Chi-cuadrado o en su defecto el test de Fisher.  
  

__G�nero vs Datos faltantes (20%)__
   
Tanto para analizar si hay diferencias en la proporci�n de datos faltantes entre g�neros y entre los grupos del nivel de educaci�n, se utiliza el test de Chi-cuadrado o en su defecto el test de Fisher.  
  
##### Figura 21. Presencia de datos faltantes en dise�os �nicos seg�n g�nero (20%)    
```{r echo=FALSE, warning=FALSE, message=FALSE}
layout(matrix(c(1), 1, 1, byrow = TRUE))
library(abind, pos=30)

x<-local({
.Table <- xtabs(~Missing_Unique+Gender, data=RFFT_wide_mcar_20)
cat("\nColumn percentages:\n")
print(colPercents(.Table))})
x<-x[1:2,1:2]

bplt <- barplot(x,main="G�nero vs Presencia NA en �nicos",xlab="% de participantes", ylab="G�nero",legend = rownames(x),beside=TRUE, horiz=TRUE,xlim=c(0,100))
text(x= x+4, y= bplt, labels=as.character(x), xpd=TRUE)

chi1<-chisq.test(xtabs(~Gender+Missing_Unique, data=RFFT_wide_mcar_20), correct=FALSE)
chi1$observed
perc_cellobs1<-sum(chi1$observed<5)*100/(ncol(chi1$observed)*nrow(chi1$observed))
fis1<-fisher.test(xtabs(~Gender+Missing_Unique, data=RFFT_wide_mcar_20))

parametros<-c("G�nero vs Presencia de NA")
summarytable_genero_NA<-data.frame(Parametros = parametros, 
                                    Esperado = c(perc_cellobs1),
                                    pvalor1 = c(chi1$p.value),
                                    pvalor2 = c(fis1$p.value))
names(summarytable_genero_NA)<-c("","% de celdas con valores esperados <5%", "P-valor Chi-cuadrado", "P-valor Test exacto de Fisher")
kable(summarytable_genero_NA,digits=3,align = 'c')
```
  
Como se puede observar en la tabla de resultados que se presenta a continuaci�n, el % de celdas de la tabla de contingencia con valor esperado <5 es `r round(perc_cellobs1,digits=1)`% y por lo tanto el test que utilizaremos para contrastar las hip�tesis es el Test de Chi-cuadrado y como el p-valor=`r round(chi1$p.value,digits=3)`>$\alpha$=0.05, no podemos rechazar la hip�tesis nula y por lo tanto el % de datos faltantes en Unique no var�a entre g�neros.  
  

##### Figura 22. Presencia de datos faltantes en dise�os �nicos seg�n Nivel de educaci�n (20%)   
```{r echo=FALSE, warning=FALSE, message=FALSE}
layout(matrix(c(1), 1, 1, byrow = TRUE))
library(abind, pos=30)

x<-local({
.Table <- xtabs(~Missing_Unique+Education, data=RFFT_wide_mcar_20)
cat("\nColumn percentages:\n")
print(colPercents(.Table))})
x<-x[1:2,1:4]

bplt <- barplot(x,main="Nivel de educaci�n vs Presencia NA",xlab="% de participantes", 
                ylab="Nivel de educaci�n",legend = rownames(x),beside=TRUE, horiz=TRUE,xlim=c(0,100))
text(x= x+3, y= bplt, labels=as.character(x), xpd=TRUE)

chi2<-chisq.test(xtabs(~Education+Missing_Unique, data=RFFT_wide_mcar_20), correct=FALSE)
chi2$observed
perc_cellobs2<-sum(chi2$observed<5)*100/(ncol(chi2$observed)*nrow(chi2$observed))
fis2<-fisher.test(xtabs(~Education+Missing_Unique, data=RFFT_wide_mcar_20))

parametros<-c("Nivel de educaci�n vs Presencia de NA")
summarytable_Education_NA<-data.frame(Parametros = parametros, 
                                   Esperado = c(perc_cellobs2),
                                   pvalor1 = c(chi2$p.value),
                                   pvalor2 = c(fis2$p.value))
names(summarytable_Education_NA)<-c("","% de celdas con valores esperados <5%", "P-valor Chi-cuadrado", "P-valor Test exacto de Fisher")
kable(summarytable_Education_NA,digits=3,align = 'c')

```
   
Como se puede observar en la tabla de resultados que se presenta a continuaci�n, el % de celdas de la tabla de contingencia con valor esperado <5 es `r round(perc_cellobs2,digits=1)`% y por lo tanto el test que utilizaremos para contrastar las hip�tesis es el Test de Chi-cuadrado y como el p-valor=`r round(chi2$p.value,digits=3)`>$\alpha$=0.05, no podemos rechazar la hip�tesis nula y por lo tanto el % de datos faltantes en dise�os �nicos no var�a entre los niveles de educaci�n.   
  

****

#         #

#### 5.5.3 Caracter�sticas basales Vs datos faltantes en _errores perseverantes_ (20%)
  
- Edad (variable cuantiativa)  

- G�nero y Nivel de Educaci�n (variable cualitativas)  

__Edad vs datos faltantes en errores perseverantes (20%)__

Se realiza una prueba de normalidad de la variable _edad_ en cada grupo seg�n la presencia o no de datos faltantes en los resultados de las mediciones de los errores perseverantes. Para comparar la edad media entre ambos grupos se utiliza un test param�trico y uno no param�trico. Se fija el nivel de significaci�n en $\alpha$=0.05.  
   
##### Figura 23. Edad en funci�n de la presencia de datos faltantes en errores perseverantes (20%)     
```{r echo=FALSE, warning=FALSE, message=FALSE}
## (a) Realiza una prueba de normalidad para decidir si la variable edad se ajusta a una distribuci�n normal ## en funci�n de la variable presencia/ausencia de NA en mediciones de Perseverative.
layout(matrix(c(1,2), 1, 2, byrow = TRUE))

op <- par(mfrow=c(1,2))
hist(RFFT_wide_mcar_20$Age[RFFT_wide_mcar_20$Missing_Perseverative=="Con NA"],freq=TRUE,xlim=c(30,85),ylim = c(0, 300),main="",xlab="Edad (a�os) con NA en perseverantes",ylab="N� de participantes")
hist(RFFT_wide_mcar_20$Age[RFFT_wide_mcar_20$Missing_Perseverative=="Sin NA"],freq=TRUE,xlim=c(30,85),ylim = c(0, 350), main="",xlab="Edad (a�os) sin NA en perseverantes",ylab="N� de participantes")
par(oma=c(1,1,1,1),font=2)
mtext(outer=T,"Edad seg�n presencia de datos faltantes en perseverantes",side=3,cex=0.75)

# Tests para comprobar si la distribuci�n de la variable cuantitativa sigue una distribuci�n normal.
Norm_Age_si_NA <-shapiro.test(RFFT_wide_mcar_20$Age[RFFT_wide_mcar_20$Missing_Perseverative=="Con NA"])
Norm_Age_no_NA <-shapiro.test(RFFT_wide_mcar_20$Age[RFFT_wide_mcar_20$Missing_Perseverative=="Sin NA"])

parametros<-c("Casos con NA en perseverantes", "Casos sin NA en perseverantes")
summarytable_norm_age<-data.frame(Parametros = parametros, 
                                    p_valor = (c(round(Norm_Age_si_NA$p.value,digits=3), round(Norm_Age_no_NA$p.value,digits=3))))
names(summarytable_norm_age)<-c("Edad","p-valor (Shapiro-Wilk normality test)")
kable(summarytable_norm_age,digits=c(3,3),align = 'c')

# Tests para comparar la distribuci�n de una variable cuantitativa en funci�n de una variable cualitativa con 2 categor�as.

ttest_edad_NA<-t.test(Age~Missing_Perseverative, alternative='two.sided', conf.level=.95, var.equal=FALSE, data=RFFT_wide_mcar_20)
wilcox_edad_NA<-wilcox.test(Age ~ Missing_Perseverative, conf.int=TRUE,data=RFFT_wide_mcar_20)

parametros<-c("T-Test para muestras independientes", "Test de Wilcoxon rank sum test with continuity correction")
summarytable_test_edad_NA<-data.frame(Parametros = parametros, 
                                        p_valor = (c(ttest_edad_NA$p.value,wilcox_edad_NA$p.value)),
                                        IC_inf =(c(ttest_edad_NA$conf.int[1], wilcox_edad_NA$conf.int[1])),
                                        IC_sup =(c(ttest_edad_NA$conf.int[2], wilcox_edad_NA$conf.int[2])),
                                        Grupos =(c("Con NA", "Sin NA")),
                                        Medias =(c(ttest_edad_NA$estimate[[1]][1],ttest_edad_NA$estimate[[2]][1])))
names(summarytable_test_edad_NA)<-c("Tipo de test","p-valor", "IC 95% diferencia inf", "IC 95% diferencia sup", "Presencia NA en perseverantes", "Media Edad")
kable(summarytable_test_edad_NA,digits=c(1,3,3,3,3,3),align = 'c')

```

Observando los resultados obtenidos, no se pudo asumir la normalidad de los datos, ambos p-valores en el test saphiro-wilks son significativos, _p-valor_=`r round(Norm_Age_si_NA$p.value,digits=5)`<$\alpha$=0.05. Por lo tanto para analizar si hay diferencias en las edades entre ambos grupos de pacientes, se tendr� que utilizar el resultado obtenido en el test de Wilcoxon y se puede afirmar que no se han hallado diferencias estad�sticamente significativas en las edades entre los grupos definidos en funci�n de la presencia/ausencia de datos faltantes _p-valor_=`r round(wilcox_edad_NA$p.value,digits=3)`> $\alpha$=0.05.  
   

__G�nero y nivel de educaci�n vs datos faltantes (20%)__

Tanto para analizar si hay diferencias en la proporci�n de datos faltantes entre g�neros y entre los grupos del nivel de educaci�n, se utiliza el test de Chi-cuadrado o en su defecto el test de Fisher.  
  

__G�nero vs Datos faltantes (20%)__
   
Tanto para analizar si hay diferencias en la proporci�n de datos faltantes entre g�neros y entre los grupos del nivel de educaci�n, se utiliza el test de Chi-cuadrado o en su defecto el test de Fisher.  
  
##### Figura 24. Presencia de datos faltantes en errores perseverantes seg�n g�nero (20%)    
```{r echo=FALSE, warning=FALSE, message=FALSE}
layout(matrix(c(1), 1, 1, byrow = TRUE))
library(abind, pos=30)

x<-local({
.Table <- xtabs(~Missing_Perseverative+Gender, data=RFFT_wide_mcar_20)
cat("\nColumn percentages:\n")
print(colPercents(.Table))})
x<-x[1:2,1:2]

bplt <- barplot(x,main="G�nero vs Presencia NA en perseverantes",xlab="% de participantes", ylab="G�nero",legend = rownames(x),beside=TRUE, horiz=TRUE,xlim=c(0,100))
text(x= x+4, y= bplt, labels=as.character(x), xpd=TRUE)

chi1<-chisq.test(xtabs(~Gender+Missing_Perseverative, data=RFFT_wide_mcar_20), correct=FALSE)
chi1$observed
perc_cellobs1<-sum(chi1$observed<5)*100/(ncol(chi1$observed)*nrow(chi1$observed))
fis1<-fisher.test(xtabs(~Gender+Missing_Perseverative, data=RFFT_wide_mcar_20))

parametros<-c("G�nero vs Presencia de NA")
summarytable_genero_NA<-data.frame(Parametros = parametros, 
                                    Esperado = c(perc_cellobs1),
                                    pvalor1 = c(chi1$p.value),
                                    pvalor2 = c(fis1$p.value))
names(summarytable_genero_NA)<-c("","% de celdas con valores esperados <5%", "P-valor Chi-cuadrado", "P-valor Test exacto de Fisher")
kable(summarytable_genero_NA,digits=3,align = 'c')
```
  
Como se puede observar en la tabla de resultados que se presenta a continuaci�n, el % de celdas de la tabla de contingencia con valor esperado <5 es `r round(perc_cellobs1,digits=1)`% y por lo tanto el test que utilizaremos para contrastar las hip�tesis es el Test de Chi-cuadrado y como el p-valor=`r round(chi1$p.value,digits=3)`>$\alpha$=0.05, no podemos rechazar la hip�tesis nula y por lo tanto el % de datos faltantes en perseverantes no var�a entre g�neros.  
  

##### Figura 25. Presencia de datos faltantes en errores perseverantes seg�n Nivel de educaci�n (20%)   
```{r echo=FALSE, warning=FALSE, message=FALSE}
layout(matrix(c(1), 1, 1, byrow = TRUE))
library(abind, pos=30)

x<-local({
.Table <- xtabs(~Missing_Perseverative+Education, data=RFFT_wide_mcar_20)
cat("\nColumn percentages:\n")
print(colPercents(.Table))})
x<-x[1:2,1:4]

bplt <- barplot(x,main="Nivel de educaci�n vs Presencia NA",xlab="% de participantes", 
                ylab="Nivel de educaci�n",legend = rownames(x),beside=TRUE, horiz=TRUE,xlim=c(0,100))
text(x= x+3, y= bplt, labels=as.character(x), xpd=TRUE)

chi2<-chisq.test(xtabs(~Education+Missing_Perseverative, data=RFFT_wide_mcar_20), correct=FALSE)
chi2$observed
perc_cellobs2<-sum(chi2$observed<5)*100/(ncol(chi2$observed)*nrow(chi2$observed))
fis2<-fisher.test(xtabs(~Education+Missing_Perseverative, data=RFFT_wide_mcar_20))

parametros<-c("Nivel de educaci�n vs Presencia de NA")
summarytable_Education_NA<-data.frame(Parametros = parametros, 
                                   Esperado = c(perc_cellobs2),
                                   pvalor1 = c(chi2$p.value),
                                   pvalor2 = c(fis2$p.value))
names(summarytable_Education_NA)<-c("","% de celdas con valores esperados <5%", "P-valor Chi-cuadrado", "P-valor Test exacto de Fisher")
kable(summarytable_Education_NA,digits=3,align = 'c')

```
   
Como se puede observar en la tabla de resultados que se presenta a continuaci�n, el % de celdas de la tabla de contingencia con valor esperado <5 es `r round(perc_cellobs2,digits=1)`% y por lo tanto el test que utilizaremos para contrastar las hip�tesis es el Test de Chi-cuadrado y como el p-valor=`r round(chi2$p.value,digits=3)`>$\alpha$=0.05, no podemos rechazar la hip�tesis nula y por lo tanto el % de datos faltantes en perseverantes no var�a entre los niveles de educaci�n.   


En funci�n de todos los resultados anteriores: el test **_Little�s MCAR-test_**, las representaciones gr�ficas de los patrones de los datos faltantes y la ausencia de relaci�n entre la presencia de datos faltantes y las caracter�sticas basales, tanto para el n� de dise�os �nicos como para el n� de errores perseverantes, permite afirmar que los datos cumplen las caracter�sticas de **MCAR**.  


****

###  5.6	 An�lisis de los patrones de los datos faltantes (30%)

##### Patr�n datos faltantes en dataset modificado (30%)

Se identifican los individuos con al menos 1 caso con dato faltante en global (incuyendo los casos de la variable `r aggr_plot$missings$Variables[10]`) y separado para las 3 mediciones de **Unique** y **Perseverative** respectivamente.  

```{r echo=FALSE, warning=FALSE, message=FALSE}

## Se genera una variable que identifica pacientes con al menos un missing value.
RFFT_wide_mcar_30$Missing_data=ifelse(is.na(RFFT_wide_mcar_30$Interval_2_2006_08) | is.na(RFFT_wide_mcar_30$Unique.mcar1_30) | is.na(RFFT_wide_mcar_30$Unique.mcar2_30) | is.na(RFFT_wide_mcar_30$Unique.mcar3_30) | is.na(RFFT_wide_mcar_30$Perseverative.mcar1_30) | is.na(RFFT_wide_mcar_30$Perseverative.mcar2_30) | is.na(RFFT_wide_mcar_30$Perseverative.mcar3_30),1,0)
# RFFT_wide_mcar_30[1:10,]
# Se a�aden valores a la variable.
RFFT_wide_mcar_30$Missing_data <- factor(RFFT_wide_mcar_30$Missing_data,
levels = c(0,1),
labels = c("Sin NA", "Con NA")) 
#table(RFFT_mcar_wide$Missing_data)
Missing_data_perc30<-local({
x3<-table(RFFT_wide_mcar_30$Missing_data)
cat("\ncounts:\n")
print(x3)
cat("\npercentages:\n")
print(round(100*x3/sum(x3), 2))
})

## Se genera una variable que identifica pacientes con al menos un missing value en UNIQUE.
RFFT_wide_mcar_30$Missing_Unique=ifelse(is.na(RFFT_wide_mcar_30$Unique.mcar1_30) | is.na(RFFT_wide_mcar_30$Unique.mcar2_30) | is.na(RFFT_wide_mcar_30$Unique.mcar3_30),1,0)
# Se a�aden valores a la variable.
RFFT_wide_mcar_30$Missing_Unique <- factor(RFFT_wide_mcar_30$Missing_Unique,
levels = c(0,1),
labels = c("Sin NA", "Con NA")) 
#table(RFFT_wide_mcar_30$Missing_Unique)
Missing_data_Unique_perc30<-local({
x3<-table(RFFT_wide_mcar_30$Missing_Unique)
cat("\ncounts:\n")
print(x3)
cat("\npercentages:\n")
print(round(100*x3/sum(x3), 2))
})

## Se genera una variable que identifica pacientes con al menos un missing value en PERSEVERATIVE.
RFFT_wide_mcar_30$Missing_Perseverative=ifelse(is.na(RFFT_wide_mcar_30$Perseverative.mcar1_30)|                       is.na(RFFT_wide_mcar_30$Perseverative.mcar2_30) | is.na(RFFT_wide_mcar_30$Perseverative.mcar3_30),1,0)
# Se a�aden valores a la variable.
RFFT_wide_mcar_30$Missing_Perseverative <- factor(RFFT_wide_mcar_30$Missing_Perseverative,
levels = c(0,1),
labels = c("Sin NA", "Con NA")) 
#table(RFFT_wide_mcar_30$Missing_Perseverative)
Missing_data_Perseverative_perc30<-local({
x3<-table(RFFT_wide_mcar_30$Missing_Perseverative)
cat("\ncounts:\n")
print(x3)
cat("\npercentages:\n")
print(round(100*x3/sum(x3), 2))
})


```

- Finalmente  del total de pacientes el `r round(Missing_data_perc30[2],digits=2)`% presenta al menos un valor perdido en alguna de los valores del data set, mientras que en las 3 mediciones de unique es el `r round(Missing_data_Unique_perc30[2],digits=2)`% y en las mediciones de persevaritive es el `r round(Missing_data_Perseverative_perc30[2],digits=2)`%.  


De nuevo se utiliza _ agrr_ para obtener el patr�n de datos faltantes en el dataset que contiene los datos faltantes generados de manera aleatoria en las 6 variables que contienen las mediciones de unique y perseverative (3 mediciones en cada una de ellas). Solo se muestran los valores faltantes en dichas variables y la variable _Interval 2 2006 08_ puesto que para el resto de variables se dispuso de los datos en todos los individuos.  
   
##### Figura 26. Patr�n datos faltantes en dataset modificado (I) (30%)   
```{r echo=FALSE, warning=FALSE, message=FALSE}

aggr_plot<-aggr(RFFT_wide_mcar_30[,5:12],col=c('deepskyblue4','cadetblue3'),numbers=TRUE,sortVars=TRUE,labels=names(RFFT_wide_mcar_30[,5:12]),cex.axis=0.5, gap=0.1, ylab=c("Histograma % datos faltantes","Patr�n"))

#library(gplots)
#install.packages("MissMech")
#library("MissMech")
```

No se aprecia ning�n tipo de patr�n que presente una frecuencia superior al resto.   

El paquete **_BaylorEdPsych_**, contiene el una funci�n ( **_LittleMCAR_**)que permite aplicar el test _Little�s MCAR-test_, para analizar la hip�tesis nula de que _los datos faltantes son MCAR_, donde un resultado significativo indicar�a que se debe rechazar dicha hip�tesis. Se aplica sobre el dataset con datos faltantes generados de manera aleatoria ( _se aplica el test sobre las variables de inter�s para el estudio: edad, g�nero, nivel de educaci�n, 1� medici�n �nicos, 2� medici�n �nicos, 3� medici�n �nicos, 1� medici�n perseverantes, 2� medici�n perseverantes, 3� medici�n perseverantes_).  

```{r echo=FALSE, warning=FALSE, message=FALSE}
#--------------------------------------------------
# Little-test
#--------------------------------------------------

# run MCAR test
test_mcar_30<-LittleMCAR(RFFT_wide_mcar_30[,2:12]) 
 
# print p-value of mcar-test
print(test_mcar_30$p.value)
```
  
A partir del resultado de test de Little's, no se puede rechazar la hip�tesis nula (_p-valor_=`r round(test_mcar_30$p.value,digits=5)`>$\alpha$=0.05), y por lo tanto, como era de esperar al haber sido generados de manera aleatoria, los datos faltantes cumplen las caracter�sticas de **MCAR**.   
  
A su vez el paquete VIM tambi�n dispone de m�s  gr�ficos que permiten comparar la distribuci�n  de los datos faltantes por pares de variables. A modo de ejemplo se plantean 4 comparaciones:   
 
##### Figura 27. Patr�n datos faltantes en dataset modificado (II) (30%)   
```{r echo=FALSE, warning=FALSE, message=FALSE}

layout(matrix(c(1,2,3,4), 2, 2, byrow = TRUE))
marginplot(RFFT_wide_mcar_30[, c("Age", "Unique.mcar1_30")], xlab=c("Edad"),ylab=c("N� dis. �nicos (1�)"))
marginplot(RFFT_wide_mcar_30[, c( "Unique.mcar1_30","Perseverative.mcar1_30")], xlab=c("N� dis. �nicos (1�)"),ylab=c("N� err. perseverantes (1�)"))
marginplot(RFFT_wide_mcar_30[, c( "Unique.mcar2_30","Perseverative.mcar2_30")], xlab=c("N� dis. �nicos (2�)"),ylab=c("N� err. perseverantes (2�)"))
marginplot(RFFT_wide_mcar_30[, c( "Unique.mcar3_30","Perseverative.mcar3_30")], xlab=c("N� dis. �nicos (3�)"),ylab=c("N� err. perseverantes (3�)"))

```

Los gr�ficos anteriores permiten comparar la distribuci�n de los datos faltantes por pares de variables. De modo que en el primer gr�fico, la fila de puntos rojos indicar�an como se distribuir�an los datos faltantes de la variable _n� de dise�os �nicos 1�_ en funci�n de los valores de la variable _edad_, y los puntos azules ser�an el resto de valores. El hecho de que los boxplots representados en el eje x ( _edad_) sean similares indica que los valores de edad con y sin valores faltantes en el n� de dise�os �nicos, son similares y es un indicativo de que los datos cumplen las premisas de **MCAR**. Igualmente entre el resto de pares de variables representadas, visualmente tampoco se han hallado diferencias entre la presencia o ausencia de datos faltantes.   


#         #

#### 5.6.1 Caracter�sticas basales Vs datos faltantes todas las variables (30%)

A continuaci�n se analiza en mayor detalle las posibles diferencias entre la presencia y ausencia de datos faltantes en funci�n de las caracter�sticas basales de los individuos.  

- Edad (variable cuantiativa)  

- G�nero y Nivel de Educaci�n (variable cualitativas)  

__Edad vs datos faltantes en alguna de las variables (30%)__   

Se realiza una prueba de normalidad de la variable _edad_ en cada grupo seg�n la presencia o no de datos faltantes en los resultados del test RFFT. Para comparar la edad media entre ambos grupos se utiliza un test param�trico y uno no param�trico. Se fija el nivel de significaci�n en $\alpha$=0.05.  
   
##### Figura 28. Edad en funci�n de la presencia de datos faltantes (30%)    
```{r echo=FALSE, warning=FALSE, message=FALSE}
## (a) Realiza una prueba de normalidad para decidir si la variable edad se ajusta a una distribuci�n normal ## en funci�n de la variable presencia/ausencia de NA.
layout(matrix(c(1,2), 1, 2, byrow = TRUE))

op <- par(mfrow=c(1,2))
hist(RFFT_wide_mcar_30$Age[RFFT_wide_mcar_30$Missing_data=="Con NA"],freq=TRUE,xlim=c(30,85),ylim = c(0, 400),main="",xlab="Edad (a�os) con NA",ylab="N� de participantes")
hist(RFFT_wide_mcar_30$Age[RFFT_wide_mcar_30$Missing_data=="Sin NA"],freq=TRUE,xlim=c(30,85),ylim = c(0, 400), main="",xlab="Edad (a�os) sin NA",ylab="N� de participantes")
par(oma=c(1,1,1,1),font=2)
mtext(outer=T,"Edad seg�n presencia de datos faltantes",side=3,cex=0.75)

# Tests para comprobar si la distribuci�n de la variable cuantitativa sigue una distribuci�n normal.
Norm_Age_si_NA <-shapiro.test(RFFT_wide_mcar_30$Age[RFFT_wide_mcar_30$Missing_data=="Con NA"])
Norm_Age_no_NA <-shapiro.test(RFFT_wide_mcar_30$Age[RFFT_wide_mcar_30$Missing_data=="Sin NA"])

parametros<-c("Casos con NA", "Casos sin NA")
summarytable_norm_age<-data.frame(Parametros = parametros, 
                                    p_valor = (c(round(Norm_Age_si_NA$p.value,digits=3), round(Norm_Age_no_NA$p.value,digits=3))))
names(summarytable_norm_age)<-c("Edad","p-valor (Shapiro-Wilk normality test)")
kable(summarytable_norm_age,digits=c(3,3),align = 'c')

# Tests para comparar la distribuci�n de una variable cuantitativa en funci�n de una variable cualitativa con 2 categor�as.

ttest_edad_NA<-t.test(Age~Missing_data, alternative='two.sided', conf.level=.95, var.equal=FALSE, data=RFFT_wide_mcar_30)
wilcox_edad_NA<-wilcox.test(Age ~ Missing_data, conf.int=TRUE,data=RFFT_wide_mcar_30)

parametros<-c("T-Test para muestras independientes", "Test de Wilcoxon rank sum test with continuity correction")
summarytable_test_edad_NA<-data.frame(Parametros = parametros, 
                                        p_valor = (c(ttest_edad_NA$p.value,wilcox_edad_NA$p.value)),
                                        IC_inf =(c(ttest_edad_NA$conf.int[1], wilcox_edad_NA$conf.int[1])),
                                        IC_sup =(c(ttest_edad_NA$conf.int[2], wilcox_edad_NA$conf.int[2])),
                                        Grupos =(c("Con NA", "Sin NA")),
                                        Medias =(c(ttest_edad_NA$estimate[[1]][1],ttest_edad_NA$estimate[[2]][1])))
names(summarytable_test_edad_NA)<-c("Tipo de test","p-valor", "IC 95% diferencia inf", "IC 95% diferencia sup", "Presencia NA", "Media Edad")
kable(summarytable_test_edad_NA,digits=c(1,3,3,3,3,3),align = 'c')

```

Observando los resultados obtenidos, no se pudo asumir la normalidad de los datos, ambos p-valores en el test saphiro-wilks son significativos, _p-valor_=`r round(Norm_Age_si_NA$p.value,digits=5)`<$\alpha$=0.05. Por lo tanto para analizar si hay diferencias en las edades entre ambos grupos de pacientes, se tendr� que utilizar el resultado obtenido en el test de Wilcoxon y se puede afirmar que no se han hallado diferencias estad�sticamente significativas en las edades entre los grupos definidos en funci�n de la presencia/ausencia de datos faltantes _p-valor_=`r round(wilcox_edad_NA$p.value,digits=3)`> $\alpha$=0.05.  
   

__G�nero y nivel de educaci�n vs datos faltantes (30%)__

Tanto para analizar si hay diferencias en la proporci�n de datos faltantes entre g�neros y entre los grupos del nivel de educaci�n, se utiliza el test de Chi-cuadrado o en su defecto el test de Fisher.  
  

__G�nero vs Datos faltantes (30%)__
   
Tanto para analizar si hay diferencias en la proporci�n de datos faltantes entre g�neros y entre los grupos del nivel de educaci�n, se utiliza el test de Chi-cuadrado o en su defecto el test de Fisher.  
  
##### Figura 29. Presencia de datos faltantes seg�n g�nero (30%)
```{r echo=FALSE, warning=FALSE, message=FALSE}
layout(matrix(c(1), 1, 1, byrow = TRUE))
library(abind, pos=30)

x<-local({
.Table <- xtabs(~Missing_data+Gender, data=RFFT_wide_mcar_30)
cat("\nColumn percentages:\n")
print(colPercents(.Table))})
x<-x[1:2,1:2]

bplt <- barplot(x,main="G�nero vs Presencia NA",xlab="% de participantes", ylab="G�nero",legend = rownames(x),beside=TRUE, horiz=TRUE,xlim=c(0,100))
text(x= x+3, y= bplt, labels=as.character(x), xpd=TRUE)

chi1<-chisq.test(xtabs(~Gender+Missing_data, data=RFFT_wide_mcar_30), correct=FALSE)
chi1$observed
perc_cellobs1<-sum(chi1$observed<5)*100/(ncol(chi1$observed)*nrow(chi1$observed))
fis1<-fisher.test(xtabs(~Gender+Missing_data, data=RFFT_wide_mcar_30))

parametros<-c("G�nero vs Presencia de NA")
summarytable_genero_NA<-data.frame(Parametros = parametros, 
                                    Esperado = c(perc_cellobs1),
                                    pvalor1 = c(chi1$p.value),
                                    pvalor2 = c(fis1$p.value))
names(summarytable_genero_NA)<-c("","% de celdas con valores esperados <5%", "P-valor Chi-cuadrado", "P-valor Test exacto de Fisher")
kable(summarytable_genero_NA,digits=3,align = 'c')
```
  
Como se puede observar en la tabla de resultados que se presenta a continuaci�n, el % de celdas de la tabla de contingencia con valor esperado <5 es `r round(perc_cellobs1,digits=1)`% y por lo tanto el test que utilizaremos para contrastar las hip�tesis es el Test de Chi-cuadrado y como el p-valor=`r round(chi1$p.value,digits=3)`>$\alpha$=0.05, no podemos rechazar la hip�tesis nula y por lo tanto el % de datos faltantes no var�a entre g�neros.  
  

##### Figura 30. Presencia de datos faltantes seg�n Nivel de educaci�n (30%)
```{r echo=FALSE, warning=FALSE, message=FALSE}
layout(matrix(c(1), 1, 1, byrow = TRUE))
library(abind, pos=30)

x<-local({
.Table <- xtabs(~Missing_data+Education, data=RFFT_wide_mcar_30)
cat("\nColumn percentages:\n")
print(colPercents(.Table))})
x<-x[1:2,1:4]

bplt <- barplot(x,main="Nivel de educaci�n vs Presencia NA",xlab="% de participantes", 
                ylab="Nivel de educaci�n",legend = rownames(x),beside=TRUE, horiz=TRUE,xlim=c(0,100))
text(x= x+5, y= bplt, labels=as.character(x), xpd=TRUE)

chi2<-chisq.test(xtabs(~Education+Missing_data, data=RFFT_wide_mcar_30), correct=FALSE)
chi2$observed
perc_cellobs2<-sum(chi2$observed<5)*100/(ncol(chi2$observed)*nrow(chi2$observed))
fis2<-fisher.test(xtabs(~Education+Missing_data, data=RFFT_wide_mcar_30))

parametros<-c("Nivel de educaci�n vs Presencia de NA")
summarytable_Education_NA<-data.frame(Parametros = parametros, 
                                   Esperado = c(perc_cellobs2),
                                   pvalor1 = c(chi2$p.value),
                                   pvalor2 = c(fis2$p.value))
names(summarytable_Education_NA)<-c("","% de celdas con valores esperados <5%", "P-valor Chi-cuadrado", "P-valor Test exacto de Fisher")
kable(summarytable_Education_NA,digits=3,align = 'c')

```
   
Como se puede observar en la tabla de resultados que se presenta a continuaci�n, el % de celdas de la tabla de contingencia con valor esperado <5 es `r round(perc_cellobs2,digits=1)`% y por lo tanto el test que utilizaremos para contrastar las hip�tesis es el Test de Chi-cuadrado y como el p-valor=`r round(chi2$p.value,digits=3)`>$\alpha$=0.05, no podemos rechazar la hip�tesis nula y por lo tanto el % de datos faltantes no var�a entre los niveles de educaci�n.   

****

#         #

#### 5.6.2 Caracter�sticas basales Vs datos faltantes en _dise�os �nicos_ (30%)
  
- Edad (variable cuantiativa)  

- G�nero y Nivel de Educaci�n (variable cualitativas)  

__Edad vs datos faltantes en dise�os �nicos (30%)__

Se realiza una prueba de normalidad de la variable _edad_ en cada grupo seg�n la presencia o no de datos faltantes en los resultados de las mediciones de la variable Unique. Para comparar la edad media entre ambos grupos se utiliza un test param�trico y uno no param�trico. Se fija el nivel de significaci�n en $\alpha$=0.05.  
   
##### Figura 31. Edad en funci�n de la presencia de datos faltantes en dise�os �nicos (30%)     
```{r echo=FALSE, warning=FALSE, message=FALSE}
## (a) Realiza una prueba de normalidad para decidir si la variable edad se ajusta a una distribuci�n normal ## en funci�n de la variable presencia/ausencia de NA en mediciones de Unique.
layout(matrix(c(1,2), 1, 2, byrow = TRUE))

op <- par(mfrow=c(1,2))
hist(RFFT_wide_mcar_30$Age[RFFT_wide_mcar_30$Missing_Unique=="Con NA"],freq=TRUE,xlim=c(30,85),ylim = c(0, 300),main="",xlab="Edad (a�os) con NA en �nicos",ylab="N� de participantes")
hist(RFFT_wide_mcar_30$Age[RFFT_wide_mcar_30$Missing_Unique=="Sin NA"],freq=TRUE,xlim=c(30,85),ylim = c(0, 350), main="",xlab="Edad (a�os) sin NA en �nicos",ylab="N� de participantes")
par(oma=c(1,1,1,1),font=2)
mtext(outer=T,"Edad seg�n presencia de datos faltantes en �nicos",side=3,cex=0.75)

# Tests para comprobar si la distribuci�n de la variable cuantitativa sigue una distribuci�n normal.
Norm_Age_si_NA <-shapiro.test(RFFT_wide_mcar_30$Age[RFFT_wide_mcar_30$Missing_Unique=="Con NA"])
Norm_Age_no_NA <-shapiro.test(RFFT_wide_mcar_30$Age[RFFT_wide_mcar_30$Missing_Unique=="Sin NA"])

parametros<-c("Casos con NA en �nicos", "Casos sin NA en �nicos")
summarytable_norm_age<-data.frame(Parametros = parametros, 
                                    p_valor = (c(round(Norm_Age_si_NA$p.value,digits=3), round(Norm_Age_no_NA$p.value,digits=3))))
names(summarytable_norm_age)<-c("Edad","p-valor (Shapiro-Wilk normality test)")
kable(summarytable_norm_age,digits=c(3,3),align = 'c')

# Tests para comparar la distribuci�n de una variable cuantitativa en funci�n de una variable cualitativa con 2 categor�as.

ttest_edad_NA<-t.test(Age~Missing_Unique, alternative='two.sided', conf.level=.95, var.equal=FALSE, data=RFFT_wide_mcar_30)
wilcox_edad_NA<-wilcox.test(Age ~ Missing_Unique, conf.int=TRUE,data=RFFT_wide_mcar_30)

parametros<-c("T-Test para muestras independientes", "Test de Wilcoxon rank sum test with continuity correction")
summarytable_test_edad_NA<-data.frame(Parametros = parametros, 
                                        p_valor = (c(ttest_edad_NA$p.value,wilcox_edad_NA$p.value)),
                                        IC_inf =(c(ttest_edad_NA$conf.int[1], wilcox_edad_NA$conf.int[1])),
                                        IC_sup =(c(ttest_edad_NA$conf.int[2], wilcox_edad_NA$conf.int[2])),
                                        Grupos =(c("Con NA", "Sin NA")),
                                        Medias =(c(ttest_edad_NA$estimate[[1]][1],ttest_edad_NA$estimate[[2]][1])))
names(summarytable_test_edad_NA)<-c("Tipo de test","p-valor", "IC 95% diferencia inf", "IC 95% diferencia sup", "Presencia NA en �nicos", "Media Edad")
kable(summarytable_test_edad_NA,digits=c(1,3,3,3,3,3),align = 'c')

```

Observando los resultados obtenidos, no se pudo asumir la normalidad de los datos, ambos p-valores en el test saphiro-wilks son significativos, _p-valor_=`r round(Norm_Age_si_NA$p.value,digits=5)`<$\alpha$=0.05. Por lo tanto para analizar si hay diferencias en las edades entre ambos grupos de pacientes, se tendr� que utilizar el resultado obtenido en el test de Wilcoxon y se puede afirmar que no se han hallado diferencias estad�sticamente significativas en las edades entre los grupos definidos en funci�n de la presencia/ausencia de datos faltantes _p-valor_=`r round(wilcox_edad_NA$p.value,digits=3)`> $\alpha$=0.05.  
   

__G�nero y nivel de educaci�n vs datos faltantes (30%)__

Tanto para analizar si hay diferencias en la proporci�n de datos faltantes entre g�neros y entre los grupos del nivel de educaci�n, se utiliza el test de Chi-cuadrado o en su defecto el test de Fisher.  
  

__G�nero vs Datos faltantes (30%)__
   
Tanto para analizar si hay diferencias en la proporci�n de datos faltantes entre g�neros y entre los grupos del nivel de educaci�n, se utiliza el test de Chi-cuadrado o en su defecto el test de Fisher.  
  
##### Figura 32. Presencia de datos faltantes en dise�os �nicos seg�n g�nero (30%)    
```{r echo=FALSE, warning=FALSE, message=FALSE}
layout(matrix(c(1), 1, 1, byrow = TRUE))
library(abind, pos=30)

x<-local({
.Table <- xtabs(~Missing_Unique+Gender, data=RFFT_wide_mcar_30)
cat("\nColumn percentages:\n")
print(colPercents(.Table))})
x<-x[1:2,1:2]

bplt <- barplot(x,main="G�nero vs Presencia NA en �nicos",xlab="% de participantes", ylab="G�nero",legend = rownames(x),beside=TRUE, horiz=TRUE,xlim=c(0,100))
text(x= x+4, y= bplt, labels=as.character(x), xpd=TRUE)

chi1<-chisq.test(xtabs(~Gender+Missing_Unique, data=RFFT_wide_mcar_30), correct=FALSE)
chi1$observed
perc_cellobs1<-sum(chi1$observed<5)*100/(ncol(chi1$observed)*nrow(chi1$observed))
fis1<-fisher.test(xtabs(~Gender+Missing_Unique, data=RFFT_wide_mcar_30))

parametros<-c("G�nero vs Presencia de NA")
summarytable_genero_NA<-data.frame(Parametros = parametros, 
                                    Esperado = c(perc_cellobs1),
                                    pvalor1 = c(chi1$p.value),
                                    pvalor2 = c(fis1$p.value))
names(summarytable_genero_NA)<-c("","% de celdas con valores esperados <5%", "P-valor Chi-cuadrado", "P-valor Test exacto de Fisher")
kable(summarytable_genero_NA,digits=3,align = 'c')
```
  
Como se puede observar en la tabla de resultados que se presenta a continuaci�n, el % de celdas de la tabla de contingencia con valor esperado <5 es `r round(perc_cellobs1,digits=1)`% y por lo tanto el test que utilizaremos para contrastar las hip�tesis es el Test de Chi-cuadrado y como el p-valor=`r round(chi1$p.value,digits=3)`>$\alpha$=0.05, no podemos rechazar la hip�tesis nula y por lo tanto el % de datos faltantes en Unique no var�a entre g�neros.  
  

##### Figura 33. Presencia de datos faltantes en dise�os �nicos seg�n Nivel de educaci�n (30%)   
```{r echo=FALSE, warning=FALSE, message=FALSE}
layout(matrix(c(1), 1, 1, byrow = TRUE))
library(abind, pos=30)

x<-local({
.Table <- xtabs(~Missing_Unique+Education, data=RFFT_wide_mcar_30)
cat("\nColumn percentages:\n")
print(colPercents(.Table))})
x<-x[1:2,1:4]

bplt <- barplot(x,main="Nivel de educaci�n vs Presencia NA",xlab="% de participantes", 
                ylab="Nivel de educaci�n",legend = rownames(x),beside=TRUE, horiz=TRUE,xlim=c(0,100))
text(x= x+3, y= bplt, labels=as.character(x), xpd=TRUE)

chi2<-chisq.test(xtabs(~Education+Missing_Unique, data=RFFT_wide_mcar_30), correct=FALSE)
chi2$observed
perc_cellobs2<-sum(chi2$observed<5)*100/(ncol(chi2$observed)*nrow(chi2$observed))
fis2<-fisher.test(xtabs(~Education+Missing_Unique, data=RFFT_wide_mcar_30))

parametros<-c("Nivel de educaci�n vs Presencia de NA")
summarytable_Education_NA<-data.frame(Parametros = parametros, 
                                   Esperado = c(perc_cellobs2),
                                   pvalor1 = c(chi2$p.value),
                                   pvalor2 = c(fis2$p.value))
names(summarytable_Education_NA)<-c("","% de celdas con valores esperados <5%", "P-valor Chi-cuadrado", "P-valor Test exacto de Fisher")
kable(summarytable_Education_NA,digits=3,align = 'c')

```
   
Como se puede observar en la tabla de resultados que se presenta a continuaci�n, el % de celdas de la tabla de contingencia con valor esperado <5 es `r round(perc_cellobs2,digits=1)`% y por lo tanto el test que utilizaremos para contrastar las hip�tesis es el Test de Chi-cuadrado y como el p-valor=`r round(chi2$p.value,digits=3)`>$\alpha$=0.05, no podemos rechazar la hip�tesis nula y por lo tanto el % de datos faltantes en dise�os �nicos no var�a entre los niveles de educaci�n.   
  

****

#         #

#### 5.6.3 Caracter�sticas basales Vs datos faltantes en _errores perseverantes_ (30%)
  
- Edad (variable cuantiativa)  

- G�nero y Nivel de Educaci�n (variable cualitativas)  

__Edad vs datos faltantes en errores perseverantes (30%)__

Se realiza una prueba de normalidad de la variable _edad_ en cada grupo seg�n la presencia o no de datos faltantes en los resultados de las mediciones de los errores perseverantes. Para comparar la edad media entre ambos grupos se utiliza un test param�trico y uno no param�trico. Se fija el nivel de significaci�n en $\alpha$=0.05.  
   
##### Figura 34. Edad en funci�n de la presencia de datos faltantes en errores perseverantes (30%)     
```{r echo=FALSE, warning=FALSE, message=FALSE}
## (a) Realiza una prueba de normalidad para decidir si la variable edad se ajusta a una distribuci�n normal ## en funci�n de la variable presencia/ausencia de NA en mediciones de Perseverative.
layout(matrix(c(1,2), 1, 2, byrow = TRUE))

op <- par(mfrow=c(1,2))
hist(RFFT_wide_mcar_30$Age[RFFT_wide_mcar_30$Missing_Perseverative=="Con NA"],freq=TRUE,xlim=c(30,85),ylim = c(0, 300),main="",xlab="Edad (a�os) con NA en perseverantes",ylab="N� de participantes")
hist(RFFT_wide_mcar_30$Age[RFFT_wide_mcar_30$Missing_Perseverative=="Sin NA"],freq=TRUE,xlim=c(30,85),ylim = c(0, 350), main="",xlab="Edad (a�os) sin NA en perseverantes",ylab="N� de participantes")
par(oma=c(1,1,1,1),font=2)
mtext(outer=T,"Edad seg�n presencia de datos faltantes en perseverantes",side=3,cex=0.75)

# Tests para comprobar si la distribuci�n de la variable cuantitativa sigue una distribuci�n normal.
Norm_Age_si_NA <-shapiro.test(RFFT_wide_mcar_30$Age[RFFT_wide_mcar_30$Missing_Perseverative=="Con NA"])
Norm_Age_no_NA <-shapiro.test(RFFT_wide_mcar_30$Age[RFFT_wide_mcar_30$Missing_Perseverative=="Sin NA"])

parametros<-c("Casos con NA en perseverantes", "Casos sin NA en perseverantes")
summarytable_norm_age<-data.frame(Parametros = parametros, 
                                    p_valor = (c(round(Norm_Age_si_NA$p.value,digits=3), round(Norm_Age_no_NA$p.value,digits=3))))
names(summarytable_norm_age)<-c("Edad","p-valor (Shapiro-Wilk normality test)")
kable(summarytable_norm_age,digits=c(3,3),align = 'c')

# Tests para comparar la distribuci�n de una variable cuantitativa en funci�n de una variable cualitativa con 2 categor�as.

ttest_edad_NA<-t.test(Age~Missing_Perseverative, alternative='two.sided', conf.level=.95, var.equal=FALSE, data=RFFT_wide_mcar_30)
wilcox_edad_NA<-wilcox.test(Age ~ Missing_Perseverative, conf.int=TRUE,data=RFFT_wide_mcar_30)

parametros<-c("T-Test para muestras independientes", "Test de Wilcoxon rank sum test with continuity correction")
summarytable_test_edad_NA<-data.frame(Parametros = parametros, 
                                        p_valor = (c(ttest_edad_NA$p.value,wilcox_edad_NA$p.value)),
                                        IC_inf =(c(ttest_edad_NA$conf.int[1], wilcox_edad_NA$conf.int[1])),
                                        IC_sup =(c(ttest_edad_NA$conf.int[2], wilcox_edad_NA$conf.int[2])),
                                        Grupos =(c("Con NA", "Sin NA")),
                                        Medias =(c(ttest_edad_NA$estimate[[1]][1],ttest_edad_NA$estimate[[2]][1])))
names(summarytable_test_edad_NA)<-c("Tipo de test","p-valor", "IC 95% diferencia inf", "IC 95% diferencia sup", "Presencia NA en perseverantes", "Media Edad")
kable(summarytable_test_edad_NA,digits=c(1,3,3,3,3,3),align = 'c')

```

Observando los resultados obtenidos, no se pudo asumir la normalidad de los datos, ambos p-valores en el test saphiro-wilks son significativos, _p-valor_=`r round(Norm_Age_si_NA$p.value,digits=5)`<$\alpha$=0.05. Por lo tanto para analizar si hay diferencias en las edades entre ambos grupos de pacientes, se tendr� que utilizar el resultado obtenido en el test de Wilcoxon y se puede afirmar que no se han hallado diferencias estad�sticamente significativas en las edades entre los grupos definidos en funci�n de la presencia/ausencia de datos faltantes _p-valor_=`r round(wilcox_edad_NA$p.value,digits=3)`> $\alpha$=0.05.  
   

__G�nero y nivel de educaci�n vs datos faltantes (30%)__

Tanto para analizar si hay diferencias en la proporci�n de datos faltantes entre g�neros y entre los grupos del nivel de educaci�n, se utiliza el test de Chi-cuadrado o en su defecto el test de Fisher.  
  

__G�nero vs Datos faltantes (30%)__
   
Tanto para analizar si hay diferencias en la proporci�n de datos faltantes entre g�neros y entre los grupos del nivel de educaci�n, se utiliza el test de Chi-cuadrado o en su defecto el test de Fisher.  
  
##### Figura 35. Presencia de datos faltantes en errores perseverantes seg�n g�nero (30%)    
```{r echo=FALSE, warning=FALSE, message=FALSE}
layout(matrix(c(1), 1, 1, byrow = TRUE))
library(abind, pos=30)

x<-local({
.Table <- xtabs(~Missing_Perseverative+Gender, data=RFFT_wide_mcar_30)
cat("\nColumn percentages:\n")
print(colPercents(.Table))})
x<-x[1:2,1:2]

bplt <- barplot(x,main="G�nero vs Presencia NA en perseverantes",xlab="% de participantes", ylab="G�nero",legend = rownames(x),beside=TRUE, horiz=TRUE,xlim=c(0,100))
text(x= x+4, y= bplt, labels=as.character(x), xpd=TRUE)

chi1<-chisq.test(xtabs(~Gender+Missing_Perseverative, data=RFFT_wide_mcar_30), correct=FALSE)
chi1$observed
perc_cellobs1<-sum(chi1$observed<5)*100/(ncol(chi1$observed)*nrow(chi1$observed))
fis1<-fisher.test(xtabs(~Gender+Missing_Perseverative, data=RFFT_wide_mcar_30))

parametros<-c("G�nero vs Presencia de NA")
summarytable_genero_NA<-data.frame(Parametros = parametros, 
                                    Esperado = c(perc_cellobs1),
                                    pvalor1 = c(chi1$p.value),
                                    pvalor2 = c(fis1$p.value))
names(summarytable_genero_NA)<-c("","% de celdas con valores esperados <5%", "P-valor Chi-cuadrado", "P-valor Test exacto de Fisher")
kable(summarytable_genero_NA,digits=3,align = 'c')
```
  
Como se puede observar en la tabla de resultados que se presenta a continuaci�n, el % de celdas de la tabla de contingencia con valor esperado <5 es `r round(perc_cellobs1,digits=1)`% y por lo tanto el test que utilizaremos para contrastar las hip�tesis es el Test de Chi-cuadrado y como el p-valor=`r round(chi1$p.value,digits=3)`>$\alpha$=0.05, no podemos rechazar la hip�tesis nula y por lo tanto el % de datos faltantes en perseverantes no var�a entre g�neros.  
  

##### Figura 36. Presencia de datos faltantes en errores perseverantes seg�n Nivel de educaci�n (30%)   
```{r echo=FALSE, warning=FALSE, message=FALSE}
layout(matrix(c(1), 1, 1, byrow = TRUE))
library(abind, pos=30)

x<-local({
.Table <- xtabs(~Missing_Perseverative+Education, data=RFFT_wide_mcar_30)
cat("\nColumn percentages:\n")
print(colPercents(.Table))})
x<-x[1:2,1:4]

bplt <- barplot(x,main="Nivel de educaci�n vs Presencia NA",xlab="% de participantes", 
                ylab="Nivel de educaci�n",legend = rownames(x),beside=TRUE, horiz=TRUE,xlim=c(0,100))
text(x= x+3, y= bplt, labels=as.character(x), xpd=TRUE)

chi2<-chisq.test(xtabs(~Education+Missing_Perseverative, data=RFFT_wide_mcar_30), correct=FALSE)
chi2$observed
perc_cellobs2<-sum(chi2$observed<5)*100/(ncol(chi2$observed)*nrow(chi2$observed))
fis2<-fisher.test(xtabs(~Education+Missing_Perseverative, data=RFFT_wide_mcar_30))

parametros<-c("Nivel de educaci�n vs Presencia de NA")
summarytable_Education_NA<-data.frame(Parametros = parametros, 
                                   Esperado = c(perc_cellobs2),
                                   pvalor1 = c(chi2$p.value),
                                   pvalor2 = c(fis2$p.value))
names(summarytable_Education_NA)<-c("","% de celdas con valores esperados <5%", "P-valor Chi-cuadrado", "P-valor Test exacto de Fisher")
kable(summarytable_Education_NA,digits=3,align = 'c')

```
   
Como se puede observar en la tabla de resultados que se presenta a continuaci�n, el % de celdas de la tabla de contingencia con valor esperado <5 es `r round(perc_cellobs2,digits=1)`% y por lo tanto el test que utilizaremos para contrastar las hip�tesis es el Test de Chi-cuadrado y como el p-valor=`r round(chi2$p.value,digits=3)`>$\alpha$=0.05, no podemos rechazar la hip�tesis nula y por lo tanto el % de datos faltantes en perseverantes no var�a entre los niveles de educaci�n.   


En funci�n de todos los resultados anteriores: el test **_Little�s MCAR-test_**, las representaciones gr�ficas de los patrones de los datos faltantes y la ausencia de relaci�n entre la presencia de datos faltantes y las caracter�sticas basales, tanto para el n� de dise�os �nicos como para el n� de errores perseverantes, permite afirmar que los datos cumplen las caracter�sticas de **MCAR**.  

****


#         #

## 6.	TRATAMIENTO DE DATOS FALTANTES     

Como ya se ha detallado previamente en la secci�n 10.1 de la memoria, existen diversas t�cnicas para el tratamiento de datos faltantes. El objetivo de este TFM, adem�s de detallar las diversas t�cnicas existentes, es la aplicaci�n de los m�todos estudiados mediante el an�lisis de una base de datos biom�dicos. A modo de ejemplo se han seleccionado algunos de los m�todos m�s habitualmente utilizados por la comunidad cient�fica:    

- En primer lugar se propone uno de los m�todos de eliminaci�n, *Eliminaci�n de los casos (listwise)*.    

- En segundo lugar se propone utilizar dos m�todos de imputaci�n simples: *Imputaci�n reemplazando por la media* e *Imputaci�n por regresi�n simple (media condicional)* .   

- Finalmente se propone uno de los m�todos modernos sobre los que m�s investigaci�n se esta llevando a cabo en los �ltimos a�os como es el *Algoritmo de imputaci�n m�ltiple (MI) (m�todo Predictive Mean Matching o Equiparaci�n de media predictiva, PMM)*.      

**_Los 4 m�todos se han aplicado a cada uno de los 3 casos: 10%, 20% y 30% de datos faltantes._**

****

### 6.1	 Eliminaci�n de los casos (listwise) (10%) 

En este primer caso se generan dos dataframes en los que se excluyen todos los casos para los que hay alg�n dato faltante (por separado para los casos de _N� de dise�os �nicos_ y _Errores perseverantes_), para el dataframe con 10% de datos faltantes.   

```{r echo=FALSE, warning=FALSE, message=FALSE}

## Se transpone el data frame: de wide a long.

## Se genera dos data frames (uno para cada caso: unique y perseverative) para transponer con las variables que se necesitan en cada caso.


# names(RFFT_wide_mcar)

RFFT_wide_unique<-data.frame(RFFT_wide_mcar$Casenr, RFFT_wide_mcar$Age, RFFT_wide_mcar$Gender, RFFT_wide_mcar$Education,
RFFT_wide_mcar$Unique.mcar1, RFFT_wide_mcar$Unique.mcar2, RFFT_wide_mcar$Unique.mcar3, RFFT_wide_mcar$Missing_Unique)
names(RFFT_wide_unique)<-c("Casenr","Age","Gender","Education","Unique.mcar1","Unique.mcar2","Unique.mcar3","Missing_Unique")

RFFT_wide_perseverative<-data.frame(RFFT_wide_mcar$Casenr, RFFT_wide_mcar$Age, RFFT_wide_mcar$Gender, RFFT_wide_mcar$Education,
RFFT_wide_mcar$Perseverative.mcar1, RFFT_wide_mcar$Perseverative.mcar2, RFFT_wide_mcar$Perseverative.mcar3, RFFT_wide_mcar$Missing_Perseverative)
names(RFFT_wide_perseverative)<-c("Casenr","Age","Gender","Education","Perseverative.mcar1","Perseverative.mcar2","Perseverative.mcar3","Missing_Perseverative")


## DISE�OS UNICOS (Unique)
#RFFT_wide_unique[1:10,]
#RFFT_wide_perseverative[1:10,]

## Los NA pueden dar quebraderos de cabeza, se transforman a -99, 
## cuando acabe la transposici�n se transformar�n a NA de nuevo.

haz.neg99.na=function(x){
  ifelse(is.na(x),-99,x)}
RFFT_wide_unique_99=data.frame(sapply(RFFT_wide_unique,haz.neg99.na))

#RFFT_wide_unique_99[1:10,]
## Se transpone el data frame: de wide a long.
RFFT_unique_99 <- melt(RFFT_wide_unique_99, id.vars = c("Casenr", "Age","Gender","Education","Missing_Unique"))
#RFFT_unique_99[1:10,]
names(RFFT_unique_99)<-(c("Casenr", "Age","Gender","Education","Missing_Unique","Measurement","Unique"))

# Se ordena por sujeto y visita (time.f)

RFFT_unique_99 <- with(RFFT_unique_99, RFFT_unique_99[order(Casenr, Measurement, decreasing=FALSE), ])
#RFFT_unique_99[1:12,]

# Se recodifica -99 a NA

RFFT_unique_99$Unique[RFFT_unique_99$Unique==-99] <- NA 

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

RFFT_unique_99$Gender <- factor(RFFT_unique_99$Gender,
                                levels = c(1,2),
                                labels = c("Hombre", "Mujer")) 

RFFT_unique_99$Education <- factor(RFFT_unique_99$Education,
                                   levels = c(1,2,3,4),
                                   labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))

RFFT_unique_99$Missing_Unique <- factor(RFFT_unique_99$Missing_Unique,
                                levels = c(1,2),
                                labels = c("Sin NA", "Con NA")) 

# Se recodifica los valores de la variable Measurement

RFFT_unique_99$Measurement<-as.character(RFFT_unique_99$Measurement)
RFFT_unique_99$Measurement[RFFT_unique_99$Measurement=="Unique.mcar1"] <- "Measurement 1"
RFFT_unique_99$Measurement[RFFT_unique_99$Measurement=="Unique.mcar2"] <- "Measurement 2"
RFFT_unique_99$Measurement[RFFT_unique_99$Measurement=="Unique.mcar3"] <- "Measurement 3"

## Se genera un data frame que solo contiene individuos con las 3 mediciones completas (sin datos faltantes) para la variable Unique.

RFFT_unique_sinNA<-subset(RFFT_unique_99,Missing_Unique=="Sin NA")
# RFFT_unique_sinNA[1:9,]
#Se elimina la variable que no se necesita.
RFFT_unique_sinNA$Missing_Unique<-NULL


## ERRORES perseverantes (Perseverative)
#RFFT_wide_perseverative[1:10,]
#RFFT_wide_perseverative[1:10,]

## Los NA pueden dar quebraderos de cabeza, se transforman a -99, 
## cuando acabe la transposici�n se transformar�n a NA de nuevo.

RFFT_wide_perseverative_99=data.frame(sapply(RFFT_wide_perseverative,haz.neg99.na))

#RFFT_wide_perseverative_99[1:10,]

RFFT_perseverative_99 <- melt(RFFT_wide_perseverative_99, id.vars = c("Casenr", "Age","Gender","Education","Missing_Perseverative"))
#RFFT_perseverative_99[1:10,]
names(RFFT_perseverative_99)<-(c("Casenr", "Age","Gender","Education","Missing_Perseverative","Measurement","Perseverative"))

# Se ordena por sujeto y visita (time.f)

RFFT_perseverative_99 <- with(RFFT_perseverative_99, RFFT_perseverative_99[order(Casenr, Measurement, decreasing=FALSE), ])
#RFFT_perseverative_99[1:12,]

# Se recodifica -99 a NA

RFFT_perseverative_99$Perseverative[RFFT_perseverative_99$Perseverative==-99] <- NA 

# Se a�aden valores a variable Gender, Educaci�n y Missing_Perseverative

RFFT_perseverative_99$Gender <- factor(RFFT_perseverative_99$Gender,
                                levels = c(1,2),
                                labels = c("Hombre", "Mujer")) 

RFFT_perseverative_99$Education <- factor(RFFT_perseverative_99$Education,
                                   levels = c(1,2,3,4),
                                   labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))

RFFT_perseverative_99$Missing_Perseverative <- factor(RFFT_perseverative_99$Missing_Perseverative,
                                        levels = c(1,2),
                                        labels = c("Sin NA", "Con NA")) 

# Se recodifica los valores de la variable Measurement

RFFT_perseverative_99$Measurement<-as.character(RFFT_perseverative_99$Measurement)
RFFT_perseverative_99$Measurement[RFFT_perseverative_99$Measurement=="Perseverative.mcar1"] <- "Measurement 1"
RFFT_perseverative_99$Measurement[RFFT_perseverative_99$Measurement=="Perseverative.mcar2"] <- "Measurement 2"
RFFT_perseverative_99$Measurement[RFFT_perseverative_99$Measurement=="Perseverative.mcar3"] <- "Measurement 3"

## Se genera un data frame que solo contiene individuos con las 3 mediciones completas (sin datos faltantes) para la variable Perseverative.

RFFT_perseverative_sinNA<-subset(RFFT_perseverative_99,Missing_Perseverative=="Sin NA")
# RFFT_perseverative_sinNA[1:9,]
#Se elimina la variable que no se necesita.
RFFT_perseverative_sinNA$Missing_Perseverative<-NULL


# Se genera la variable Measurement como num�rica.
RFFT_unique_sinNA$Measurement2<-Recode(RFFT_unique_sinNA$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_unique_sinNA$Measurement2<-as.numeric(RFFT_unique_sinNA$Measurement2)
RFFT_perseverative_sinNA$Measurement2<-Recode(RFFT_perseverative_sinNA$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_perseverative_sinNA$Measurement2<-as.numeric(RFFT_perseverative_sinNA$Measurement2)

```
En el escenario del 10% de datos faltantes:      
- El n� de participantes disponibles para el an�lisis del n� de dise�os �nicos fue de `r length(RFFT_unique_sinNA$Casenr)/3` (n� de participantes con las 3 mediciones completas).    
- El n� de participantes disponibles para el an�lisis del n� de errores perseverantes fue de `r length(RFFT_perseverative_sinNA$Casenr)/3` (n� de participantes con las 3 mediciones completas).    


****

### 6.2	 Eliminaci�n de los casos (listwise) (20%) 

En este primer caso se generan dos dataframes en los que se excluyen todos los casos para los que hay alg�n dato faltante (por separado para los casos de _N� de dise�os �nicos_ y _Errores perseverantes_), para el dataframe con 20% de datos faltantes.   

```{r echo=FALSE, warning=FALSE, message=FALSE}

## Se transpone el data frame: de wide a long.

## Se genera dos data frames (uno para cada caso: unique y perseverative) para transponer con las variables que se necesitan en cada caso.


# names(RFFT_wide_mcar_20)

RFFT_wide_unique_20<-data.frame(RFFT_wide_mcar_20$Casenr, RFFT_wide_mcar_20$Age, RFFT_wide_mcar_20$Gender, RFFT_wide_mcar_20$Education,
RFFT_wide_mcar_20$Unique.mcar1_20, RFFT_wide_mcar_20$Unique.mcar2_20, RFFT_wide_mcar_20$Unique.mcar3_20, RFFT_wide_mcar_20$Missing_Unique)
names(RFFT_wide_unique_20)<-c("Casenr","Age","Gender","Education","Unique.mcar1","Unique.mcar2","Unique.mcar3","Missing_Unique")

RFFT_wide_perseverative_20<-data.frame(RFFT_wide_mcar_20$Casenr, RFFT_wide_mcar_20$Age, RFFT_wide_mcar_20$Gender, RFFT_wide_mcar_20$Education,
RFFT_wide_mcar_20$Perseverative.mcar1_20, RFFT_wide_mcar_20$Perseverative.mcar2_20, RFFT_wide_mcar_20$Perseverative.mcar3_20, RFFT_wide_mcar_20$Missing_Perseverative)
names(RFFT_wide_perseverative_20)<-c("Casenr","Age","Gender","Education","Perseverative.mcar1","Perseverative.mcar2","Perseverative.mcar3","Missing_Perseverative")


## DISE�OS UNICOS (Unique)
#RFFT_wide_unique_20[1:10,]
#RFFT_wide_perseverative_20[1:10,]

## Los NA pueden dar quebraderos de cabeza, se transforman a -99, 
## cuando acabe la transposici�n se transformar�n a NA de nuevo.

haz.neg99.na=function(x){
  ifelse(is.na(x),-99,x)}
RFFT_wide_unique_20_99=data.frame(sapply(RFFT_wide_unique_20,haz.neg99.na))

#RFFT_wide_unique_20_99[1:10,]
## Se transpone el data frame: de wide a long.
RFFT_unique_20_99 <- melt(RFFT_wide_unique_20_99, id.vars = c("Casenr", "Age","Gender","Education","Missing_Unique"))
#RFFT_unique_20_99[1:10,]
names(RFFT_unique_20_99)<-(c("Casenr", "Age","Gender","Education","Missing_Unique","Measurement","Unique"))

# Se ordena por sujeto y visita (time.f)

RFFT_unique_20_99 <- with(RFFT_unique_20_99, RFFT_unique_20_99[order(Casenr, Measurement, decreasing=FALSE), ])
#RFFT_unique_20_99[1:12,]

# Se recodifica -99 a NA

RFFT_unique_20_99$Unique[RFFT_unique_20_99$Unique==-99] <- NA 

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

RFFT_unique_20_99$Gender <- factor(RFFT_unique_20_99$Gender,
                                levels = c(1,2),
                                labels = c("Hombre", "Mujer")) 

RFFT_unique_20_99$Education <- factor(RFFT_unique_20_99$Education,
                                   levels = c(1,2,3,4),
                                   labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))

RFFT_unique_20_99$Missing_Unique <- factor(RFFT_unique_20_99$Missing_Unique,
                                levels = c(1,2),
                                labels = c("Sin NA", "Con NA")) 

# Se recodifica los valores de la variable Measurement

RFFT_unique_20_99$Measurement<-as.character(RFFT_unique_20_99$Measurement)
RFFT_unique_20_99$Measurement[RFFT_unique_20_99$Measurement=="Unique.mcar1"] <- "Measurement 1"
RFFT_unique_20_99$Measurement[RFFT_unique_20_99$Measurement=="Unique.mcar2"] <- "Measurement 2"
RFFT_unique_20_99$Measurement[RFFT_unique_20_99$Measurement=="Unique.mcar3"] <- "Measurement 3"

## Se genera un data frame que solo contiene individuos con las 3 mediciones completas (sin datos faltantes) para la variable Unique.

RFFT_unique_sinNA_20<-subset(RFFT_unique_20_99,Missing_Unique=="Sin NA")
# RFFT_unique_sinNA_20[1:9,]
#Se elimina la variable que no se necesita.
RFFT_unique_sinNA_20$Missing_Unique<-NULL


## ERRORES perseverantes (Perseverative)
#RFFT_wide_perseverative_20[1:10,]
#RFFT_wide_perseverative_20[1:10,]

## Los NA pueden dar quebraderos de cabeza, se transforman a -99, 
## cuando acabe la transposici�n se transformar�n a NA de nuevo.

RFFT_wide_perseverative_20_99=data.frame(sapply(RFFT_wide_perseverative_20,haz.neg99.na))

#RFFT_wide_perseverative_20_99[1:10,]

RFFT_perseverative_20_99 <- melt(RFFT_wide_perseverative_20_99, id.vars = c("Casenr", "Age","Gender","Education","Missing_Perseverative"))
#RFFT_perseverative_20_99[1:10,]
names(RFFT_perseverative_20_99)<-(c("Casenr", "Age","Gender","Education","Missing_Perseverative","Measurement","Perseverative"))

# Se ordena por sujeto y visita (time.f)

RFFT_perseverative_20_99 <- with(RFFT_perseverative_20_99, RFFT_perseverative_20_99[order(Casenr, Measurement, decreasing=FALSE), ])
#RFFT_perseverative_20_99[1:12,]

# Se recodifica -99 a NA

RFFT_perseverative_20_99$Perseverative[RFFT_perseverative_20_99$Perseverative==-99] <- NA 

# Se a�aden valores a variable Gender, Educaci�n y Missing_Perseverative

RFFT_perseverative_20_99$Gender <- factor(RFFT_perseverative_20_99$Gender,
                                levels = c(1,2),
                                labels = c("Hombre", "Mujer")) 

RFFT_perseverative_20_99$Education <- factor(RFFT_perseverative_20_99$Education,
                                   levels = c(1,2,3,4),
                                   labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))

RFFT_perseverative_20_99$Missing_Perseverative <- factor(RFFT_perseverative_20_99$Missing_Perseverative,
                                        levels = c(1,2),
                                        labels = c("Sin NA", "Con NA")) 

# Se recodifica los valores de la variable Measurement

RFFT_perseverative_20_99$Measurement<-as.character(RFFT_perseverative_20_99$Measurement)
RFFT_perseverative_20_99$Measurement[RFFT_perseverative_20_99$Measurement=="Perseverative.mcar1"] <- "Measurement 1"
RFFT_perseverative_20_99$Measurement[RFFT_perseverative_20_99$Measurement=="Perseverative.mcar2"] <- "Measurement 2"
RFFT_perseverative_20_99$Measurement[RFFT_perseverative_20_99$Measurement=="Perseverative.mcar3"] <- "Measurement 3"

## Se genera un data frame que solo contiene individuos con las 3 mediciones completas (sin datos faltantes) para la variable Perseverative.

RFFT_perseverative_sinNA_20<-subset(RFFT_perseverative_20_99,Missing_Perseverative=="Sin NA")
# RFFT_perseverative_sinNA_20[1:9,]
#Se elimina la variable que no se necesita.
RFFT_perseverative_sinNA_20$Missing_Perseverative<-NULL


# Se genera la variable Measurement como num�rica.
RFFT_unique_sinNA_20$Measurement2<-Recode(RFFT_unique_sinNA_20$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_unique_sinNA_20$Measurement2<-as.numeric(RFFT_unique_sinNA_20$Measurement2)
RFFT_perseverative_sinNA_20$Measurement2<-Recode(RFFT_perseverative_sinNA_20$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_perseverative_sinNA_20$Measurement2<-as.numeric(RFFT_perseverative_sinNA_20$Measurement2)
```

En el escenario del 20% de datos faltantes:      
- El n� de participantes disponibles para el an�lisis del n� de dise�os �nicos fue de `r length(RFFT_unique_sinNA_20$Casenr)/3` (n� de participantes con las 3 mediciones completas).    
- El n� de participantes disponibles para el an�lisis del n� de errores perseverantes fue de `r length(RFFT_perseverative_sinNA_20$Casenr)/3` (n� de participantes con las 3 mediciones completas). 


****

### 6.3	 Eliminaci�n de los casos (listwise) (30%) 

En este primer caso se generan dos dataframes en los que se excluyen todos los casos para los que hay alg�n dato faltante (por separado para los casos de _N� de dise�os �nicos_ y _Errores perseverantes_), para el dataframe con 30% de datos faltantes.   

```{r echo=FALSE, warning=FALSE, message=FALSE}

## Se transpone el data frame: de wide a long.

## Se genera dos data frames (uno para cada caso: unique y perseverative) para transponer con las variables que se necesitan en cada caso.


# names(RFFT_wide_mcar_30)

RFFT_wide_unique_30<-data.frame(RFFT_wide_mcar_30$Casenr, RFFT_wide_mcar_30$Age, RFFT_wide_mcar_30$Gender, RFFT_wide_mcar_30$Education,
RFFT_wide_mcar_30$Unique.mcar1_30, RFFT_wide_mcar_30$Unique.mcar2_30, RFFT_wide_mcar_30$Unique.mcar3_30, RFFT_wide_mcar_30$Missing_Unique)
names(RFFT_wide_unique_30)<-c("Casenr","Age","Gender","Education","Unique.mcar1","Unique.mcar2","Unique.mcar3","Missing_Unique")

RFFT_wide_perseverative_30<-data.frame(RFFT_wide_mcar_30$Casenr, RFFT_wide_mcar_30$Age, RFFT_wide_mcar_30$Gender, RFFT_wide_mcar_30$Education,
RFFT_wide_mcar_30$Perseverative.mcar1_30, RFFT_wide_mcar_30$Perseverative.mcar2_30, RFFT_wide_mcar_30$Perseverative.mcar3_30, RFFT_wide_mcar_30$Missing_Perseverative)
names(RFFT_wide_perseverative_30)<-c("Casenr","Age","Gender","Education","Perseverative.mcar1","Perseverative.mcar2","Perseverative.mcar3","Missing_Perseverative")


## DISE�OS UNICOS (Unique)
#RFFT_wide_unique_30[1:10,]
#RFFT_wide_perseverative_30[1:10,]

## Los NA pueden dar quebraderos de cabeza, se transforman a -99, 
## cuando acabe la transposici�n se transformar�n a NA de nuevo.

haz.neg99.na=function(x){
  ifelse(is.na(x),-99,x)}
RFFT_wide_unique_30_99=data.frame(sapply(RFFT_wide_unique_30,haz.neg99.na))

#RFFT_wide_unique_30_99[1:10,]
## Se transpone el data frame: de wide a long.
RFFT_unique_30_99 <- melt(RFFT_wide_unique_30_99, id.vars = c("Casenr", "Age","Gender","Education","Missing_Unique"))
#RFFT_unique_30_99[1:10,]
names(RFFT_unique_30_99)<-(c("Casenr", "Age","Gender","Education","Missing_Unique","Measurement","Unique"))

# Se ordena por sujeto y visita (time.f)

RFFT_unique_30_99 <- with(RFFT_unique_30_99, RFFT_unique_30_99[order(Casenr, Measurement, decreasing=FALSE), ])
#RFFT_unique_30_99[1:12,]

# Se recodifica -99 a NA

RFFT_unique_30_99$Unique[RFFT_unique_30_99$Unique==-99] <- NA 

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

RFFT_unique_30_99$Gender <- factor(RFFT_unique_30_99$Gender,
                                levels = c(1,2),
                                labels = c("Hombre", "Mujer")) 

RFFT_unique_30_99$Education <- factor(RFFT_unique_30_99$Education,
                                   levels = c(1,2,3,4),
                                   labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))

RFFT_unique_30_99$Missing_Unique <- factor(RFFT_unique_30_99$Missing_Unique,
                                levels = c(1,2),
                                labels = c("Sin NA", "Con NA")) 

# Se recodifica los valores de la variable Measurement

RFFT_unique_30_99$Measurement<-as.character(RFFT_unique_30_99$Measurement)
RFFT_unique_30_99$Measurement[RFFT_unique_30_99$Measurement=="Unique.mcar1"] <- "Measurement 1"
RFFT_unique_30_99$Measurement[RFFT_unique_30_99$Measurement=="Unique.mcar2"] <- "Measurement 2"
RFFT_unique_30_99$Measurement[RFFT_unique_30_99$Measurement=="Unique.mcar3"] <- "Measurement 3"

## Se genera un data frame que solo contiene individuos con las 3 mediciones completas (sin datos faltantes) para la variable Unique.

RFFT_unique_sinNA_30<-subset(RFFT_unique_30_99,Missing_Unique=="Sin NA")
# RFFT_unique_sinNA_30[1:9,]
#Se elimina la variable que no se necesita.
RFFT_unique_sinNA_30$Missing_Unique<-NULL


## ERRORES perseverantes (Perseverative)
#RFFT_wide_perseverative_30[1:10,]
#RFFT_wide_perseverative_30[1:10,]

## Los NA pueden dar quebraderos de cabeza, se transforman a -99, 
## cuando acabe la transposici�n se transformar�n a NA de nuevo.

RFFT_wide_perseverative_30_99=data.frame(sapply(RFFT_wide_perseverative_30,haz.neg99.na))

#RFFT_wide_perseverative_30_99[1:10,]

RFFT_perseverative_30_99 <- melt(RFFT_wide_perseverative_30_99, id.vars = c("Casenr", "Age","Gender","Education","Missing_Perseverative"))
#RFFT_perseverative_30_99[1:10,]
names(RFFT_perseverative_30_99)<-(c("Casenr", "Age","Gender","Education","Missing_Perseverative","Measurement","Perseverative"))

# Se ordena por sujeto y visita (time.f)

RFFT_perseverative_30_99 <- with(RFFT_perseverative_30_99, RFFT_perseverative_30_99[order(Casenr, Measurement, decreasing=FALSE), ])
#RFFT_perseverative_30_99[1:12,]

# Se recodifica -99 a NA

RFFT_perseverative_30_99$Perseverative[RFFT_perseverative_30_99$Perseverative==-99] <- NA 

# Se a�aden valores a variable Gender, Educaci�n y Missing_Perseverative

RFFT_perseverative_30_99$Gender <- factor(RFFT_perseverative_30_99$Gender,
                                levels = c(1,2),
                                labels = c("Hombre", "Mujer")) 

RFFT_perseverative_30_99$Education <- factor(RFFT_perseverative_30_99$Education,
                                   levels = c(1,2,3,4),
                                   labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))

RFFT_perseverative_30_99$Missing_Perseverative <- factor(RFFT_perseverative_30_99$Missing_Perseverative,
                                        levels = c(1,2),
                                        labels = c("Sin NA", "Con NA")) 

# Se recodifica los valores de la variable Measurement

RFFT_perseverative_30_99$Measurement<-as.character(RFFT_perseverative_30_99$Measurement)
RFFT_perseverative_30_99$Measurement[RFFT_perseverative_30_99$Measurement=="Perseverative.mcar1"] <- "Measurement 1"
RFFT_perseverative_30_99$Measurement[RFFT_perseverative_30_99$Measurement=="Perseverative.mcar2"] <- "Measurement 2"
RFFT_perseverative_30_99$Measurement[RFFT_perseverative_30_99$Measurement=="Perseverative.mcar3"] <- "Measurement 3"

## Se genera un data frame que solo contiene individuos con las 3 mediciones completas (sin datos faltantes) para la variable Perseverative.

RFFT_perseverative_sinNA_30<-subset(RFFT_perseverative_30_99,Missing_Perseverative=="Sin NA")
# RFFT_perseverative_sinNA_30[1:9,]
#Se elimina la variable que no se necesita.
RFFT_perseverative_sinNA_30$Missing_Perseverative<-NULL


# Se genera la variable Measurement como num�rica.
RFFT_unique_sinNA_30$Measurement2<-Recode(RFFT_unique_sinNA_30$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_unique_sinNA_30$Measurement2<-as.numeric(RFFT_unique_sinNA_30$Measurement2)
RFFT_perseverative_sinNA_30$Measurement2<-Recode(RFFT_perseverative_sinNA_30$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_perseverative_sinNA_30$Measurement2<-as.numeric(RFFT_perseverative_sinNA_30$Measurement2)
```

En el escenario del 30% de datos faltantes:      
- El n� de participantes disponibles para el an�lisis del n� de dise�os �nicos fue de `r length(RFFT_unique_sinNA_30$Casenr)/3` (n� de participantes con las 3 mediciones completas).    
- El n� de participantes disponibles para el an�lisis del n� de errores perseverantes fue de `r length(RFFT_perseverative_sinNA_30$Casenr)/3` (n� de participantes con las 3 mediciones completas).   


****


#         #
  
### 6.4	 Imputaci�n por media (10%)  

Se generan dos dataframes (por separado para los _N� de dise�os �nicos_ y _Errores perseverantes_) utilizando el m�todo de *Imputaci�n por media *,  que reemplaza los datos faltantes por el valor medio del resto de datos conocidos en de la variable, en el caso con 10% de datos faltantes.   

La funci�n _"mice"_ permite calcular la media en cada variable y reemplzar los datos faltantes de manera sencilla. Y se representa gr�ficamente la distribuci�n de los datos imputados en cada una de las 3 variables de la medici�n del n� de dise�os �nicos.  

##### Figura 37. Imputaci�n datos faltantes por media (MICE): N� de dise�os �nicos (10%)  
```{r echo=FALSE, warning=FALSE, message=FALSE}
## Utilizamos la opci�n "mean" en la funci�n "mice" para imputar datos faltantes por el valor de la media.
#install.packages("SparseM")
#install.packages("mice")
#library("SparseM")

library("mice")
# Mediante la media se imputan los valores en las 3 variables de dise�os �nicos.
RFFT_wide_unique_MD <- mice(RFFT_wide_unique[,2:7], method="mean", m=1,maxit=1)
#RFFT_wide_unique_MD_imp <- complete(RFFT_wide_unique_MD,1)
#save(RFFT_wide_unique_MD_imp,file="I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_unique_MD_imp.Rda")
load("I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_unique_MD_imp.Rda")
RFFT_wide_unique_MD$imp$Unique.mcar1[1,1]
RFFT_wide_unique_MD$imp$Unique.mcar2[1,1]
RFFT_wide_unique_MD$imp$Unique.mcar3[1,1]

breaks <- seq(-20, 200, 10)
obs1 <- RFFT_wide_unique[,"Unique.mcar1"]
obs2 <- RFFT_wide_unique[,"Unique.mcar2"]
obs3 <- RFFT_wide_unique[,"Unique.mcar3"]
mis1  <- RFFT_wide_unique_MD$imp$Unique.mcar1[,1]
mis2  <- RFFT_wide_unique_MD$imp$Unique.mcar2[,1]
mis3  <- RFFT_wide_unique_MD$imp$Unique.mcar3[,1]
fobs1 <- c(hist(obs1, breaks, plot=FALSE)$counts, 0)
fobs2 <- c(hist(obs2, breaks, plot=FALSE)$counts, 0)
fobs3 <- c(hist(obs3, breaks, plot=FALSE)$counts, 0)
fmis1 <- c(hist(mis1, breaks, plot=FALSE)$counts, 0)
fmis2 <- c(hist(mis2, breaks, plot=FALSE)$counts, 0)
fmis3 <- c(hist(mis3, breaks, plot=FALSE)$counts, 0)
nudge <- 1
x <- matrix(c(breaks-nudge, breaks+nudge), ncol=2)
y1 <- matrix(c(fobs1, fmis1), ncol=2)
y2 <- matrix(c(fobs2, fmis2), ncol=2)
y3 <- matrix(c(fobs3, fmis3), ncol=2)

par(mfrow = c(1,3))
matplot(x, y1, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,400), yaxs = "i",
        xlab="N� de dise�os �nicos 1� medida",
        ylab="N� de participantes")
box()
matplot(x, y2, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,400), yaxs = "i",
        xlab="N� de dise�os �nicos 2� medida",
        ylab="N� de participantes")
box()
matplot(x, y3, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,400), yaxs = "i",
        xlab="N� de dise�os �nicos 3� medida",
        ylab="N� de participantes")
box()
```

La media del N� de dise�os �nicos en la 1� medida fue `r round(RFFT_wide_unique_MD$imp$Unique.mcar1[1,1],digits=2)`, en la 2� medida fue `r round(RFFT_wide_unique_MD$imp$Unique.mcar2[1,1],digits=2)` y en la 3� medida `r round(RFFT_wide_unique_MD$imp$Unique.mcar3[1,1],digits=2)`.    


De modo similar se imputan los datos faltantes para el **_n� de errores perseverantes_** en cada una de las 3 mediciones.    

##### Figura 38. Imputaci�n datos faltantes por media (MICE): N� de errores perseverantes (10%)   
```{r echo=FALSE, warning=FALSE, message=FALSE}
## Utilizamos la opci�n "mean" en la funci�n "mice" para imputar datos faltantes por el valor de la media.
#install.packages("SparseM")
#install.packages("mice")
#library("SparseM")
library("mice")
# Mediante la media se imputan los valores en las 3 variables de errores perseverantes.
RFFT_wide_perseverative_MD <- mice(RFFT_wide_perseverative[,2:7], method="mean", m=1,maxit=1)
# RFFT_wide_perseverative_MD_imp <- complete(RFFT_wide_perseverative_MD,1)
# save(RFFT_wide_perseverative_MD_imp,file="I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_perseverative_MD_imp.Rda")
load("I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_perseverative_MD_imp.Rda")
RFFT_wide_perseverative_MD$imp$Perseverative.mcar1[1,1]
RFFT_wide_perseverative_MD$imp$Perseverative.mcar2[1,1]
RFFT_wide_perseverative_MD$imp$Perseverative.mcar3[1,1]

breaks <- seq(-20, 200, 10)
obs1 <- RFFT_wide_perseverative[,"Perseverative.mcar1"]
obs2 <- RFFT_wide_perseverative[,"Perseverative.mcar2"]
obs3 <- RFFT_wide_perseverative[,"Perseverative.mcar3"]
mis1  <- RFFT_wide_perseverative_MD$imp$Perseverative.mcar1[,1]
mis2  <- RFFT_wide_perseverative_MD$imp$Perseverative.mcar2[,1]
mis3  <- RFFT_wide_perseverative_MD$imp$Perseverative.mcar3[,1]
fobs1 <- c(hist(obs1, breaks, plot=FALSE)$counts, 0)
fobs2 <- c(hist(obs2, breaks, plot=FALSE)$counts, 0)
fobs3 <- c(hist(obs3, breaks, plot=FALSE)$counts, 0)
fmis1 <- c(hist(mis1, breaks, plot=FALSE)$counts, 0)
fmis2 <- c(hist(mis2, breaks, plot=FALSE)$counts, 0)
fmis3 <- c(hist(mis3, breaks, plot=FALSE)$counts, 0)
nudge <- 1
x <- matrix(c(breaks-nudge, breaks+nudge), ncol=2)
y1 <- matrix(c(fobs1, fmis1), ncol=2)
y2 <- matrix(c(fobs2, fmis2), ncol=2)
y3 <- matrix(c(fobs3, fmis3), ncol=2)

par(mfrow = c(1,3))
matplot(x, y1, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,1500), yaxs = "i",
        xlab="N� de errores perseverantes 1� medida",
        ylab="N� de participantes")
box()
matplot(x, y2, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,1500), yaxs = "i",
        xlab="N� de errores perseverantes 2� medida",
        ylab="N� de participantes")
box()
matplot(x, y3, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,1500), yaxs = "i",
        xlab="N� de errores perseverantes 3� medida",
        ylab="N� de participantes")
box()
```

La media del N� de errores perseverantes en la 1� medida fue `r round(RFFT_wide_perseverative_MD$imp$Perseverative.mcar1[1,1],digits=2)`, en la 2� medida fue `r round(RFFT_wide_perseverative_MD$imp$Perseverative.mcar2[1,1],digits=2)` y en la 3� medida `r round(RFFT_wide_perseverative_MD$imp$Perseverative.mcar3[1,1],digits=2)`.      


****


#         #
  
### 6.5	 Imputaci�n por media (20%)  

Se generan dos dataframes (por separado para los _N� de dise�os �nicos_ y _Errores perseverantes_) utilizando el m�todo de *Imputaci�n por media *,  que reemplaza los datos faltantes por el valor medio del resto de datos conocidos en de la variable, en el caso con 20% de datos faltantes.   

La funci�n _"mice"_ permite calcular la media en cada variable y reemplzar los datos faltantes de manera sencilla. Y se representa gr�ficamente la distribuci�n de los datos imputados en cada una de las 3 variables de la medici�n del n� de dise�os �nicos.  

##### Figura 39. Imputaci�n datos faltantes por media (MICE): N� de dise�os �nicos (20%)    
```{r echo=FALSE, warning=FALSE, message=FALSE}
## Utilizamos la opci�n "mean" en la funci�n "mice" para imputar datos faltantes por el valor de la media.
##install.packages("SparseM")
##install.packages("mice")
##library("SparseM")

library("mice")
# Mediante la media se imputan los valores en las 3 variables de dise�os �nicos.
RFFT_wide_unique_MD_20 <- mice(RFFT_wide_unique_20[,2:7], method="mean", m=1,maxit=1)
# RFFT_wide_unique_MD_20_imp <- complete(RFFT_wide_unique_MD_20,1)
# save(RFFT_wide_unique_MD_20_imp,file="I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_unique_MD_20_imp.Rda")
load("I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_unique_MD_20_imp.Rda")
RFFT_wide_unique_MD_20$imp$Unique.mcar1[1,1]
RFFT_wide_unique_MD_20$imp$Unique.mcar2[1,1]
RFFT_wide_unique_MD_20$imp$Unique.mcar3[1,1]

breaks <- seq(-20, 200, 10)
obs1 <- RFFT_wide_unique_20[,"Unique.mcar1"]
obs2 <- RFFT_wide_unique_20[,"Unique.mcar2"]
obs3 <- RFFT_wide_unique_20[,"Unique.mcar3"]
mis1  <- RFFT_wide_unique_MD_20$imp$Unique.mcar1[,1]
mis2  <- RFFT_wide_unique_MD_20$imp$Unique.mcar2[,1]
mis3  <- RFFT_wide_unique_MD_20$imp$Unique.mcar3[,1]
fobs1 <- c(hist(obs1, breaks, plot=FALSE)$counts, 0)
fobs2 <- c(hist(obs2, breaks, plot=FALSE)$counts, 0)
fobs3 <- c(hist(obs3, breaks, plot=FALSE)$counts, 0)
fmis1 <- c(hist(mis1, breaks, plot=FALSE)$counts, 0)
fmis2 <- c(hist(mis2, breaks, plot=FALSE)$counts, 0)
fmis3 <- c(hist(mis3, breaks, plot=FALSE)$counts, 0)
nudge <- 1
x <- matrix(c(breaks-nudge, breaks+nudge), ncol=2)
y1 <- matrix(c(fobs1, fmis1), ncol=2)
y2 <- matrix(c(fobs2, fmis2), ncol=2)
y3 <- matrix(c(fobs3, fmis3), ncol=2)

par(mfrow = c(1,3))
matplot(x, y1, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,600), yaxs = "i",
        xlab="N� de dise�os �nicos 1� medida",
        ylab="N� de participantes")
box()
matplot(x, y2, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,600), yaxs = "i",
        xlab="N� de dise�os �nicos 2� medida",
        ylab="N� de participantes")
box()
matplot(x, y3, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,600), yaxs = "i",
        xlab="N� de dise�os �nicos 3� medida",
        ylab="N� de participantes")
box()
```

La media del N� de dise�os �nicos en la 1� medida fue `r round(RFFT_wide_unique_MD_20$imp$Unique.mcar1[1,1],digits=2)`, en la 2� medida fue `r round(RFFT_wide_unique_MD_20$imp$Unique.mcar2[1,1],digits=2)` y en la 3� medida `r round(RFFT_wide_unique_MD_20$imp$Unique.mcar3[1,1],digits=2)`.    


De modo similar se imputan los datos faltantes para el **_n� de errores perseverantes_** en cada una de las 3 mediciones.    

##### Figura 40. Imputaci�n datos faltantes por media (MICE): N� de errores perseverantes (20%)      
```{r echo=FALSE, warning=FALSE, message=FALSE}
## Utilizamos la opci�n "mean" en la funci�n "mice" para imputar datos faltantes por el valor de la media.
#install.packages("SparseM")
#install.packages("mice")
#library("SparseM")
library("mice")
# Mediante la media se imputan los valores en las 3 variables de errores perseverantes.
RFFT_wide_perseverative_MD_20 <- mice(RFFT_wide_perseverative_20[,2:7], method="mean", m=1,maxit=1)
#RFFT_wide_perseverative_MD_20_imp <- complete(RFFT_wide_perseverative_MD_20,1)
#save(RFFT_wide_perseverative_MD_20_imp,file="I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_perseverative_MD_20_imp.Rda")
load("I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_perseverative_MD_20_imp.Rda")
RFFT_wide_perseverative_MD_20$imp$Perseverative.mcar1[1,1]
RFFT_wide_perseverative_MD_20$imp$Perseverative.mcar2[1,1]
RFFT_wide_perseverative_MD_20$imp$Perseverative.mcar3[1,1]

breaks <- seq(-20, 200, 10)
obs1 <- RFFT_wide_perseverative_20[,"Perseverative.mcar1"]
obs2 <- RFFT_wide_perseverative_20[,"Perseverative.mcar2"]
obs3 <- RFFT_wide_perseverative_20[,"Perseverative.mcar3"]
mis1  <- RFFT_wide_perseverative_MD_20$imp$Perseverative.mcar1[,1]
mis2  <- RFFT_wide_perseverative_MD_20$imp$Perseverative.mcar2[,1]
mis3  <- RFFT_wide_perseverative_MD_20$imp$Perseverative.mcar3[,1]
fobs1 <- c(hist(obs1, breaks, plot=FALSE)$counts, 0)
fobs2 <- c(hist(obs2, breaks, plot=FALSE)$counts, 0)
fobs3 <- c(hist(obs3, breaks, plot=FALSE)$counts, 0)
fmis1 <- c(hist(mis1, breaks, plot=FALSE)$counts, 0)
fmis2 <- c(hist(mis2, breaks, plot=FALSE)$counts, 0)
fmis3 <- c(hist(mis3, breaks, plot=FALSE)$counts, 0)
nudge <- 1
x <- matrix(c(breaks-nudge, breaks+nudge), ncol=2)
y1 <- matrix(c(fobs1, fmis1), ncol=2)
y2 <- matrix(c(fobs2, fmis2), ncol=2)
y3 <- matrix(c(fobs3, fmis3), ncol=2)

par(mfrow = c(1,3))
matplot(x, y1, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,1500), yaxs = "i",
        xlab="N� de errores perseverantes 1� medida",
        ylab="N� de participantes")
box()
matplot(x, y2, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,1500), yaxs = "i",
        xlab="N� de errores perseverantes 2� medida",
        ylab="N� de participantes")
box()
matplot(x, y3, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,1500), yaxs = "i",
        xlab="N� de errores perseverantes 3� medida",
        ylab="N� de participantes")
box()
```

La media del N� de errores perseverantes en la 1� medida fue `r round(RFFT_wide_perseverative_MD_20$imp$Perseverative.mcar1[1,1],digits=2)`, en la 2� medida fue `r round(RFFT_wide_perseverative_MD_20$imp$Perseverative.mcar2[1,1],digits=2)` y en la 3� medida `r round(RFFT_wide_perseverative_MD_20$imp$Perseverative.mcar3[1,1],digits=2)`.    

****


#         #
  
### 6.6	 Imputaci�n por media (30%)  

Se generan dos dataframes (por separado para los _N� de dise�os �nicos_ y _Errores perseverantes_) utilizando el m�todo de *Imputaci�n por media *,  que reemplaza los datos faltantes por el valor medio del resto de datos conocidos en de la variable, en el caso con 30% de datos faltantes.   

La funci�n _"mice"_ permite calcular la media en cada variable y reemplzar los datos faltantes de manera sencilla. Y se representa gr�ficamente la distribuci�n de los datos imputados en cada una de las 3 variables de la medici�n del n� de dise�os �nicos.  

##### Figura 41. Imputaci�n datos faltantes por media (MICE): N� de dise�os �nicos (30%)     
```{r echo=FALSE, warning=FALSE, message=FALSE}
## Utilizamos la opci�n "mean" en la funci�n "mice" para imputar datos faltantes por el valor de la media.
## install.packages("SparseM")
## install.packages("mice")
## library("SparseM")

library("mice")
# Mediante la media se imputan los valores en las 3 variables de dise�os �nicos.
RFFT_wide_unique_MD_30 <- mice(RFFT_wide_unique_30[,2:7], method="mean", m=1,maxit=1)
#setwd("I:/UOC/TFM/PEC3/SINTAXIS")
#RFFT_wide_unique_MD_30_imp <- complete(RFFT_wide_unique_MD_30,1)
#save(RFFT_wide_unique_MD_30_imp,file="I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_unique_MD_30_imp.Rda")
load("I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_unique_MD_30_imp.Rda")
RFFT_wide_unique_MD_30$imp$Unique.mcar1[1,1]
RFFT_wide_unique_MD_30$imp$Unique.mcar2[1,1]
RFFT_wide_unique_MD_30$imp$Unique.mcar3[1,1]

breaks <- seq(-20, 200, 10)
obs1 <- RFFT_wide_unique_30[,"Unique.mcar1"]
obs2 <- RFFT_wide_unique_30[,"Unique.mcar2"]
obs3 <- RFFT_wide_unique_30[,"Unique.mcar3"]
mis1  <- RFFT_wide_unique_MD_30$imp$Unique.mcar1[,1]
mis2  <- RFFT_wide_unique_MD_30$imp$Unique.mcar2[,1]
mis3  <- RFFT_wide_unique_MD_30$imp$Unique.mcar3[,1]
fobs1 <- c(hist(obs1, breaks, plot=FALSE)$counts, 0)
fobs2 <- c(hist(obs2, breaks, plot=FALSE)$counts, 0)
fobs3 <- c(hist(obs3, breaks, plot=FALSE)$counts, 0)
fmis1 <- c(hist(mis1, breaks, plot=FALSE)$counts, 0)
fmis2 <- c(hist(mis2, breaks, plot=FALSE)$counts, 0)
fmis3 <- c(hist(mis3, breaks, plot=FALSE)$counts, 0)
nudge <- 1
x <- matrix(c(breaks-nudge, breaks+nudge), ncol=2)
y1 <- matrix(c(fobs1, fmis1), ncol=2)
y2 <- matrix(c(fobs2, fmis2), ncol=2)
y3 <- matrix(c(fobs3, fmis3), ncol=2)

par(mfrow = c(1,3))
matplot(x, y1, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,800), yaxs = "i",
        xlab="N� de dise�os �nicos 1� medida",
        ylab="N� de participantes")
box()
matplot(x, y2, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,800), yaxs = "i",
        xlab="N� de dise�os �nicos 2� medida",
        ylab="N� de participantes")
box()
matplot(x, y3, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,800), yaxs = "i",
        xlab="N� de dise�os �nicos 3� medida",
        ylab="N� de participantes")
box()
```

La media del N� de dise�os �nicos en la 1� medida fue `r round(RFFT_wide_unique_MD_30$imp$Unique.mcar1[1,1],digits=2)`, en la 2� medida fue `r round(RFFT_wide_unique_MD_30$imp$Unique.mcar2[1,1],digits=2)` y en la 3� medida `r round(RFFT_wide_unique_MD_30$imp$Unique.mcar3[1,1],digits=2)`.    


De modo similar se imputan los datos faltantes para el **_n� de errores perseverantes_** en cada una de las 3 mediciones.    

##### Figura 42. Imputaci�n datos faltantes por media (MICE): N� de errores perseverantes (30%)     
```{r echo=FALSE, warning=FALSE, message=FALSE}
## Utilizamos la opci�n "mean" en la funci�n "mice" para imputar datos faltantes por el valor de la media.
#install.packages("SparseM")
#install.packages("mice")
#library("SparseM")
library("mice")
# Mediante la media se imputan los valores en las 3 variables de errores perseverantes.
RFFT_wide_perseverative_MD_30 <- mice(RFFT_wide_perseverative_30[,2:7], method="mean", m=1,maxit=1)
# RFFT_wide_perseverative_MD_30_imp <- complete(RFFT_wide_perseverative_MD_30,1)
# save(RFFT_wide_perseverative_MD_30_imp,file="I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_perseverative_MD_30_imp.Rda")
load("I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_perseverative_MD_30_imp.Rda")
RFFT_wide_perseverative_MD_30$imp$Perseverative.mcar1[1,1]
RFFT_wide_perseverative_MD_30$imp$Perseverative.mcar2[1,1]
RFFT_wide_perseverative_MD_30$imp$Perseverative.mcar3[1,1]

breaks <- seq(-20, 200, 10)
obs1 <- RFFT_wide_perseverative_30[,"Perseverative.mcar1"]
obs2 <- RFFT_wide_perseverative_30[,"Perseverative.mcar2"]
obs3 <- RFFT_wide_perseverative_30[,"Perseverative.mcar3"]
mis1  <- RFFT_wide_perseverative_MD_30$imp$Perseverative.mcar1[,1]
mis2  <- RFFT_wide_perseverative_MD_30$imp$Perseverative.mcar2[,1]
mis3  <- RFFT_wide_perseverative_MD_30$imp$Perseverative.mcar3[,1]
fobs1 <- c(hist(obs1, breaks, plot=FALSE)$counts, 0)
fobs2 <- c(hist(obs2, breaks, plot=FALSE)$counts, 0)
fobs3 <- c(hist(obs3, breaks, plot=FALSE)$counts, 0)
fmis1 <- c(hist(mis1, breaks, plot=FALSE)$counts, 0)
fmis2 <- c(hist(mis2, breaks, plot=FALSE)$counts, 0)
fmis3 <- c(hist(mis3, breaks, plot=FALSE)$counts, 0)
nudge <- 1
x <- matrix(c(breaks-nudge, breaks+nudge), ncol=2)
y1 <- matrix(c(fobs1, fmis1), ncol=2)
y2 <- matrix(c(fobs2, fmis2), ncol=2)
y3 <- matrix(c(fobs3, fmis3), ncol=2)

par(mfrow = c(1,3))
matplot(x, y1, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,1500), yaxs = "i",
        xlab="N� de errores perseverantes 1� medida",
        ylab="N� de participantes")
box()
matplot(x, y2, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,1500), yaxs = "i",
        xlab="N� de errores perseverantes 2� medida",
        ylab="N� de participantes")
box()
matplot(x, y3, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,1500), yaxs = "i",
        xlab="N� de errores perseverantes 3� medida",
        ylab="N� de participantes")
box()
```

La media del N� de errores perseverantes en la 1� medida fue `r round(RFFT_wide_perseverative_MD_30$imp$Perseverative.mcar1[1,1],digits=2)`, en la 2� medida fue `r round(RFFT_wide_perseverative_MD_30$imp$Perseverative.mcar2[1,1],digits=2)` y en la 3� medida `r round(RFFT_wide_perseverative_MD_30$imp$Perseverative.mcar3[1,1],digits=2)`.    


****

#         #
  

### 6.7	 Imputaci�n por regresi�n simple (10%)   

Se generan dos dataframes (por separado para los _N� de dise�os �nicos_ y _Errores perseverantes_) utilizando el m�todo de *Imputaci�n por regresi�n simple (media condicional)*,  que reemplaza los datos faltantes por el valor predicho a partir de la aplicaci�n de la regresi�n simple sobre el resto de datos conocidos en el sujeto, en el caso con 10% de datos faltantes.   

Se utiliza la opci�n _"norm.predict"_ en la funci�n _"mice"_ para imputar datos faltantes por regresi�n simple. Y se representa gr�ficamente la distribuci�n de los datos imputados en cada una de las 3 variables de la medici�n del n� de dise�os �nicos.  

##### Figura 43. Imputaci�n datos faltantes por regresi�n (MICE): N� de dise�os �nicos (10%)   
```{r echo=FALSE, warning=FALSE, message=FALSE}
## Utilizamos la opci�n "norm.predict" en la funci�n "mice" para imputar datos faltantes por regresi�n simple.
## install.packages("SparseM")
## install.packages("mice")
library("SparseM")

library("mice")
# Mediante el m�todo de regresi�n lineal simple se imputan los valores en las 3 variables de dise�os �nicos.
RFFT_wide_unique_RS <- mice(RFFT_wide_unique[,2:7], method="norm.predict", m=1)
#RFFT_wide_unique_RS_imp <- complete(RFFT_wide_unique_RS,1)
#save(RFFT_wide_unique_RS_imp,file="I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_unique_RS_imp.Rda")
load("I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_unique_RS_imp.Rda")


fit1 <- lm(Unique.mcar1 ~ Age + Gender + Education + Unique.mcar2 + Unique.mcar3, data=RFFT_wide_unique)
fit2 <- lm(Unique.mcar2 ~ Age + Gender + Education + Unique.mcar1 + Unique.mcar3, data=RFFT_wide_unique)
fit3 <- lm(Unique.mcar3 ~ Age + Gender + Education + Unique.mcar1 + Unique.mcar2, data=RFFT_wide_unique)

pred1 <- predict(fit1, newdata=ic(RFFT_wide_unique))
pred2 <- predict(fit2, newdata=ic(RFFT_wide_unique))
pred3 <- predict(fit3, newdata=ic(RFFT_wide_unique))
breaks <- seq(-20, 200, 10)
obs1 <- RFFT_wide_unique[,"Unique.mcar1"]
obs2 <- RFFT_wide_unique[,"Unique.mcar2"]
obs3 <- RFFT_wide_unique[,"Unique.mcar3"]
fobs1 <- c(hist(obs1, breaks, plot=FALSE)$counts, 0)
fobs2 <- c(hist(obs2, breaks, plot=FALSE)$counts, 0)
fobs3 <- c(hist(obs3, breaks, plot=FALSE)$counts, 0)
fmis1 <- c(hist(pred1, breaks, plot=FALSE)$counts, 0)
fmis2 <- c(hist(pred2, breaks, plot=FALSE)$counts, 0)
fmis3 <- c(hist(pred3, breaks, plot=FALSE)$counts, 0)
nudge <- 1
x <- matrix(c(breaks-nudge, breaks+nudge), ncol=2)
y1 <- matrix(c(fobs1, fmis1), ncol=2)
y2 <- matrix(c(fobs2, fmis2), ncol=2)
y3 <- matrix(c(fobs3, fmis3), ncol=2)

par(mfrow = c(1,3))
matplot(x, y1, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,400), yaxs = "i",
        xlab="N� de dise�os �nicos 1� medida",
        ylab="N� de participantes")
box()
matplot(x, y2, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,400), yaxs = "i",
        xlab="N� de dise�os �nicos 2� medida",
        ylab="N� de participantes")
box()
matplot(x, y3, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,400), yaxs = "i",
        xlab="N� de dise�os �nicos 3� medida",
        ylab="N� de participantes")
box()
```

De modo similar se imputan los datos faltantes para el n� de errores perseverantes en cada una de las 3 mediciones.  

##### Figura 44. Imputaci�n datos faltantes por regresi�n (MICE): N� de errores perseverantes (10%)   
```{r echo=FALSE, warning=FALSE, message=FALSE}
## Utilizamos la opci�n "norm.predict" en la funci�n "mice" para imputar datos faltantes por regresi�n simple.
library("mice")
RFFT_wide_perseverative_RS <- mice(RFFT_wide_perseverative[,2:7], method="norm.predict", m=1)
# RFFT_wide_perseverative_RS_imp <- complete(RFFT_wide_perseverative_RS,1)
# save(RFFT_wide_perseverative_RS_imp,file="I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_perseverative_RS_imp.Rda")
load("I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_perseverative_RS_imp.Rda")

fit1 <- lm(Perseverative.mcar1 ~ Age + Gender + Education + Perseverative.mcar2 + Perseverative.mcar3, data=RFFT_wide_perseverative)
fit2 <- lm(Perseverative.mcar2 ~ Age + Gender + Education + Perseverative.mcar1 + Perseverative.mcar3, data=RFFT_wide_perseverative)
fit3 <- lm(Perseverative.mcar3 ~ Age + Gender + Education + Perseverative.mcar1 + Perseverative.mcar2, data=RFFT_wide_perseverative)

pred1 <- predict(fit1, newdata=ic(RFFT_wide_perseverative))
pred2 <- predict(fit2, newdata=ic(RFFT_wide_perseverative))
pred3 <- predict(fit3, newdata=ic(RFFT_wide_perseverative))
breaks <- seq(-20, 200, 10)
obs1 <- RFFT_wide_perseverative[,"Perseverative.mcar1"]
obs2 <- RFFT_wide_perseverative[,"Perseverative.mcar2"]
obs3 <- RFFT_wide_perseverative[,"Perseverative.mcar3"]
fobs1 <- c(hist(obs1, breaks, plot=FALSE)$counts, 0)
fobs2 <- c(hist(obs2, breaks, plot=FALSE)$counts, 0)
fobs3 <- c(hist(obs3, breaks, plot=FALSE)$counts, 0)
fmis1 <- c(hist(pred1, breaks, plot=FALSE)$counts, 0)
fmis2 <- c(hist(pred2, breaks, plot=FALSE)$counts, 0)
fmis3 <- c(hist(pred3, breaks, plot=FALSE)$counts, 0)
nudge <- 1
x <- matrix(c(breaks-nudge, breaks+nudge), ncol=2)
y1 <- matrix(c(fobs1, fmis1), ncol=2)
y2 <- matrix(c(fobs2, fmis2), ncol=2)
y3 <- matrix(c(fobs3, fmis3), ncol=2)

par(mfrow = c(1,3))
matplot(x, y1, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,1500), yaxs = "i",
        xlab="N� de errores perseverantes 1�",
        ylab="N� de participantes")
box()
matplot(x, y2, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,1500), yaxs = "i",
        xlab="N� de errores perseverantes 2�",
        ylab="N� de participantes")
box()
matplot(x, y3, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,1500), yaxs = "i",
        xlab="N� de errores perseverantes 3�",
        ylab="N� de participantes")
box()
```

****

#         #
  

### 6.8	 Imputaci�n por regresi�n simple (20%)   

Se generan dos dataframes (por separado para los _N� de dise�os �nicos_ y _Errores perseverantes_) utilizando el m�todo de *Imputaci�n por regresi�n simple (media condicional)*,  que reemplaza los datos faltantes por el valor predicho a partir de la aplicaci�n de la regresi�n simple sobre el resto de datos conocidos en el sujeto, en el caso con 20% de datos faltantes.       

Se utiliza la opci�n _"norm.predict"_ en la funci�n _"mice"_ para imputar datos faltantes por regresi�n simple. Y se representa gr�ficamente la distribuci�n de los datos imputados en cada una de las 3 variables de la medici�n del n� de dise�os �nicos.  

##### Figura 45. Imputaci�n datos faltantes por regresi�n (MICE): N� de dise�os �nicos (20%)   
```{r echo=FALSE, warning=FALSE, message=FALSE}
## Utilizamos la opci�n "norm.predict" en la funci�n "mice" para imputar datos faltantes por regresi�n simple.
## install.packages("SparseM")
## install.packages("mice")
library("SparseM")

library("mice")
# Mediante el m�todo de regresi�n lineal simple se imputan los valores en las 3 variables de dise�os �nicos.
RFFT_wide_unique_RS_20 <- mice(RFFT_wide_unique_20[,2:7], method="norm.predict", m=1)
#RFFT_wide_unique_RS_20_imp <- complete(RFFT_wide_unique_RS_20,1)
#save(RFFT_wide_unique_RS_20_imp,file="I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_unique_RS_20_imp.Rda")
load("I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_unique_RS_20_imp.Rda")


fit1 <- lm(Unique.mcar1 ~ Age + Gender + Education + Unique.mcar2 + Unique.mcar3, data=RFFT_wide_unique_20)
fit2 <- lm(Unique.mcar2 ~ Age + Gender + Education + Unique.mcar1 + Unique.mcar3, data=RFFT_wide_unique_20)
fit3 <- lm(Unique.mcar3 ~ Age + Gender + Education + Unique.mcar1 + Unique.mcar2, data=RFFT_wide_unique_20)

pred1 <- predict(fit1, newdata=ic(RFFT_wide_unique_20))
pred2 <- predict(fit2, newdata=ic(RFFT_wide_unique_20))
pred3 <- predict(fit3, newdata=ic(RFFT_wide_unique_20))
breaks <- seq(-20, 200, 10)
obs1 <- RFFT_wide_unique_20[,"Unique.mcar1"]
obs2 <- RFFT_wide_unique_20[,"Unique.mcar2"]
obs3 <- RFFT_wide_unique_20[,"Unique.mcar3"]
fobs1 <- c(hist(obs1, breaks, plot=FALSE)$counts, 0)
fobs2 <- c(hist(obs2, breaks, plot=FALSE)$counts, 0)
fobs3 <- c(hist(obs3, breaks, plot=FALSE)$counts, 0)
fmis1 <- c(hist(pred1, breaks, plot=FALSE)$counts, 0)
fmis2 <- c(hist(pred2, breaks, plot=FALSE)$counts, 0)
fmis3 <- c(hist(pred3, breaks, plot=FALSE)$counts, 0)
nudge <- 1
x <- matrix(c(breaks-nudge, breaks+nudge), ncol=2)
y1 <- matrix(c(fobs1, fmis1), ncol=2)
y2 <- matrix(c(fobs2, fmis2), ncol=2)
y3 <- matrix(c(fobs3, fmis3), ncol=2)

par(mfrow = c(1,3))
matplot(x, y1, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,400), yaxs = "i",
        xlab="N� de dise�os �nicos 1� medida",
        ylab="N� de participantes")
box()
matplot(x, y2, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,400), yaxs = "i",
        xlab="N� de dise�os �nicos 2� medida",
        ylab="N� de participantes")
box()
matplot(x, y3, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,400), yaxs = "i",
        xlab="N� de dise�os �nicos 3� medida",
        ylab="N� de participantes")
box()
```

De modo similar se imputan los datos faltantes para el n� de errores perseverantes en cada una de las 3 mediciones.  

##### Figura 46. Imputaci�n datos faltantes por regresi�n (MICE): N� de errores perseverantes (20%)      
```{r echo=FALSE, warning=FALSE, message=FALSE}
## Utilizamos la opci�n "norm.predict" en la funci�n "mice" para imputar datos faltantes por regresi�n simple.
library("mice")
RFFT_wide_perseverative_RS_20 <- mice(RFFT_wide_perseverative_20[,2:7], method="norm.predict", m=1)
# RFFT_wide_perseverative_RS_20_imp <- complete(RFFT_wide_perseverative_RS_20,1)
# save(RFFT_wide_perseverative_RS_20_imp,file="I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_perseverative_RS_20_imp.Rda")
load("I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_perseverative_RS_20_imp.Rda")

fit1 <- lm(Perseverative.mcar1 ~ Age + Gender + Education + Perseverative.mcar2 + Perseverative.mcar3, data=RFFT_wide_perseverative_20)
fit2 <- lm(Perseverative.mcar2 ~ Age + Gender + Education + Perseverative.mcar1 + Perseverative.mcar3, data=RFFT_wide_perseverative_20)
fit3 <- lm(Perseverative.mcar3 ~ Age + Gender + Education + Perseverative.mcar1 + Perseverative.mcar2, data=RFFT_wide_perseverative_20)

pred1 <- predict(fit1, newdata=ic(RFFT_wide_perseverative_20))
pred2 <- predict(fit2, newdata=ic(RFFT_wide_perseverative_20))
pred3 <- predict(fit3, newdata=ic(RFFT_wide_perseverative_20))
breaks <- seq(-20, 200, 10)
obs1 <- RFFT_wide_perseverative_20[,"Perseverative.mcar1"]
obs2 <- RFFT_wide_perseverative_20[,"Perseverative.mcar2"]
obs3 <- RFFT_wide_perseverative_20[,"Perseverative.mcar3"]
fobs1 <- c(hist(obs1, breaks, plot=FALSE)$counts, 0)
fobs2 <- c(hist(obs2, breaks, plot=FALSE)$counts, 0)
fobs3 <- c(hist(obs3, breaks, plot=FALSE)$counts, 0)
fmis1 <- c(hist(pred1, breaks, plot=FALSE)$counts, 0)
fmis2 <- c(hist(pred2, breaks, plot=FALSE)$counts, 0)
fmis3 <- c(hist(pred3, breaks, plot=FALSE)$counts, 0)
nudge <- 1
x <- matrix(c(breaks-nudge, breaks+nudge), ncol=2)
y1 <- matrix(c(fobs1, fmis1), ncol=2)
y2 <- matrix(c(fobs2, fmis2), ncol=2)
y3 <- matrix(c(fobs3, fmis3), ncol=2)

par(mfrow = c(1,3))
matplot(x, y1, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,1500), yaxs = "i",
        xlab="N� de errores perseverantes 1�",
        ylab="N� de participantes")
box()
matplot(x, y2, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,1500), yaxs = "i",
        xlab="N� de errores perseverantes 2�",
        ylab="N� de participantes")
box()
matplot(x, y3, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,1500), yaxs = "i",
        xlab="N� de errores perseverantes 3�",
        ylab="N� de participantes")
box()
```


****

#         #
  

### 6.9	 Imputaci�n por regresi�n simple (30%)   

Se generan dos dataframes (por separado para los _N� de dise�os �nicos_ y _Errores perseverantes_) utilizando el m�todo de *Imputaci�n por regresi�n simple (media condicional)*,  que reemplaza los datos faltantes por el valor predicho a partir de la aplicaci�n de la regresi�n simple sobre el resto de datos conocidos en el sujeto, en el caso con 30% de datos faltantes.       

Se utiliza la opci�n _"norm.predict"_ en la funci�n _"mice"_ para imputar datos faltantes por regresi�n simple. Y se representa gr�ficamente la distribuci�n de los datos imputados en cada una de las 3 variables de la medici�n del n� de dise�os �nicos.  

##### Figura 47. Imputaci�n datos faltantes por regresi�n (MICE): N� de dise�os �nicos  (30%)     
```{r echo=FALSE, warning=FALSE, message=FALSE}
## Utilizamos la opci�n "norm.predict" en la funci�n "mice" para imputar datos faltantes por regresi�n simple.
## install.packages("SparseM")
## install.packages("mice")
library("SparseM")

library("mice")
# Mediante el m�todo de regresi�n lineal simple se imputan los valores en las 3 variables de dise�os �nicos.
RFFT_wide_unique_RS_30 <- mice(RFFT_wide_unique_30[,2:7], method="norm.predict", m=1)
# RFFT_wide_unique_RS_30_imp <- complete(RFFT_wide_unique_RS_30,1)
# save(RFFT_wide_unique_RS_30_imp,file="I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_unique_RS_30_imp.Rda")
load("I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_unique_RS_30_imp.Rda")


fit1 <- lm(Unique.mcar1 ~ Age + Gender + Education + Unique.mcar2 + Unique.mcar3, data=RFFT_wide_unique_30)
fit2 <- lm(Unique.mcar2 ~ Age + Gender + Education + Unique.mcar1 + Unique.mcar3, data=RFFT_wide_unique_30)
fit3 <- lm(Unique.mcar3 ~ Age + Gender + Education + Unique.mcar1 + Unique.mcar2, data=RFFT_wide_unique_30)

pred1 <- predict(fit1, newdata=ic(RFFT_wide_unique_30))
pred2 <- predict(fit2, newdata=ic(RFFT_wide_unique_30))
pred3 <- predict(fit3, newdata=ic(RFFT_wide_unique_30))
breaks <- seq(-20, 200, 10)
obs1 <- RFFT_wide_unique_30[,"Unique.mcar1"]
obs2 <- RFFT_wide_unique_30[,"Unique.mcar2"]
obs3 <- RFFT_wide_unique_30[,"Unique.mcar3"]
fobs1 <- c(hist(obs1, breaks, plot=FALSE)$counts, 0)
fobs2 <- c(hist(obs2, breaks, plot=FALSE)$counts, 0)
fobs3 <- c(hist(obs3, breaks, plot=FALSE)$counts, 0)
fmis1 <- c(hist(pred1, breaks, plot=FALSE)$counts, 0)
fmis2 <- c(hist(pred2, breaks, plot=FALSE)$counts, 0)
fmis3 <- c(hist(pred3, breaks, plot=FALSE)$counts, 0)
nudge <- 1
x <- matrix(c(breaks-nudge, breaks+nudge), ncol=2)
y1 <- matrix(c(fobs1, fmis1), ncol=2)
y2 <- matrix(c(fobs2, fmis2), ncol=2)
y3 <- matrix(c(fobs3, fmis3), ncol=2)

par(mfrow = c(1,3))
matplot(x, y1, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,400), yaxs = "i",
        xlab="N� de dise�os �nicos 1� medida",
        ylab="N� de participantes")
box()
matplot(x, y2, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,400), yaxs = "i",
        xlab="N� de dise�os �nicos 2� medida",
        ylab="N� de participantes")
box()
matplot(x, y3, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,400), yaxs = "i",
        xlab="N� de dise�os �nicos 3� medida",
        ylab="N� de participantes")
box()
```

De modo similar se imputan los datos faltantes para el n� de errores perseverantes en cada una de las 3 mediciones.  

##### Figura 48. Imputaci�n datos faltantes por regresi�n (MICE): N� de errores perseverantes (30%)   
```{r echo=FALSE, warning=FALSE, message=FALSE}
## Utilizamos la opci�n "norm.predict" en la funci�n "mice" para imputar datos faltantes por regresi�n simple.
library("mice")
RFFT_wide_perseverative_RS_30 <- mice(RFFT_wide_perseverative_30[,2:7], method="norm.predict", m=1)
# RFFT_wide_perseverative_RS_30_imp <- complete(RFFT_wide_perseverative_RS_30,1)
# save(RFFT_wide_perseverative_RS_30_imp,file="I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_perseverative_RS_30_imp.Rda")
load("I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_perseverative_RS_30_imp.Rda")

fit1 <- lm(Perseverative.mcar1 ~ Age + Gender + Education + Perseverative.mcar2 + Perseverative.mcar3, data=RFFT_wide_perseverative_30)
fit2 <- lm(Perseverative.mcar2 ~ Age + Gender + Education + Perseverative.mcar1 + Perseverative.mcar3, data=RFFT_wide_perseverative_30)
fit3 <- lm(Perseverative.mcar3 ~ Age + Gender + Education + Perseverative.mcar1 + Perseverative.mcar2, data=RFFT_wide_perseverative_30)

pred1 <- predict(fit1, newdata=ic(RFFT_wide_perseverative_30))
pred2 <- predict(fit2, newdata=ic(RFFT_wide_perseverative_30))
pred3 <- predict(fit3, newdata=ic(RFFT_wide_perseverative_30))
breaks <- seq(-20, 200, 10)
obs1 <- RFFT_wide_perseverative_30[,"Perseverative.mcar1"]
obs2 <- RFFT_wide_perseverative_30[,"Perseverative.mcar2"]
obs3 <- RFFT_wide_perseverative_30[,"Perseverative.mcar3"]
fobs1 <- c(hist(obs1, breaks, plot=FALSE)$counts, 0)
fobs2 <- c(hist(obs2, breaks, plot=FALSE)$counts, 0)
fobs3 <- c(hist(obs3, breaks, plot=FALSE)$counts, 0)
fmis1 <- c(hist(pred1, breaks, plot=FALSE)$counts, 0)
fmis2 <- c(hist(pred2, breaks, plot=FALSE)$counts, 0)
fmis3 <- c(hist(pred3, breaks, plot=FALSE)$counts, 0)
nudge <- 1
x <- matrix(c(breaks-nudge, breaks+nudge), ncol=2)
y1 <- matrix(c(fobs1, fmis1), ncol=2)
y2 <- matrix(c(fobs2, fmis2), ncol=2)
y3 <- matrix(c(fobs3, fmis3), ncol=2)

par(mfrow = c(1,3))
matplot(x, y1, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,1500), yaxs = "i",
        xlab="N� de errores perseverantes 1�",
        ylab="N� de participantes")
box()
matplot(x, y2, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,1500), yaxs = "i",
        xlab="N� de errores perseverantes 2�",
        ylab="N� de participantes")
box()
matplot(x, y3, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,1500), yaxs = "i",
        xlab="N� de errores perseverantes 3�",
        ylab="N� de participantes")
box()
```

****

#         #
  

### 6.10	 Imputaci�n m�ltiple (m�todo PMM) (10%)   

Se generan dos dataframes (por separado para los _N� de dise�os �nicos_ y _Errores perseverantes_) utilizando el algoritmo de *M�ltiple Imputaci�n utilizando el m�todo PMM (Predictive mean matching)*, en el caso con 10% de datos faltantes.. Este m�todo obtiene buenos resultados tanto para variables continuas como categ�ricas (binarias o m�s categor�as) sin necesidad de calcular los errores (residuals) ni ajustar por m�xima verosimilitud.

PMM es por defecto el algoritmo que utiliza la funci�n _"mice"_ para imputar datos faltantes, por lo que en la opci�n _meth_ no ser�a necesario especificar que el m�todo a utilizar es _pmm_. Se recomienda que la imputaci�n m�ltiple (IM) se efectue con al menos 5 imputaciones (tambi�n es el n� que _mice_ emplea por defecto) y el n� de iteraciones tambi�n por defecto es de 5. Una vez imputados, mediante la funci�n _pool_ se obtiene el valor medio para todas las imputaciones Y se representa gr�ficamente la distribuci�n de los datos imputados en cada una de las 3 variables de la medici�n del n� de dise�os �nicos.  

##### Figura 49. Imputaci�n datos faltantes por IM (MICE-PMM): N� de dise�os �nicos (10%)     
```{r echo=FALSE, warning=FALSE, message=FALSE}
## Utilizamos la opci�n "pmm" en la funci�n "mice" para imputar datos faltantes por imputaci�n m�ltiple.
## install.packages("SparseM")
## install.packages("mice")
library("mice")
# Mediante el m�todo PMM se imputan los valores en las 3 variables de dise�os �nicos.
RFFT_wide_unique_im5 <- mice(RFFT_wide_unique[,2:7], seed = 123456, print=FALSE)
# el c�digo anterior es similar a:
# RFFT_wide_unique_im5 <- mice(RFFT_wide_unique[,2:7], m=5, maxit=5, seed = 123456, print=FALSE)
summary(RFFT_wide_unique_im5)
#RFFT_wide_unique_im5_imp<-complete(RFFT_wide_unique_im5)
#save(RFFT_wide_unique_im5_imp,file="I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_unique_im5_imp.Rda")
load("I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_unique_im5_imp.Rda")


mis1 <- RFFT_wide_unique_im5$imp$Unique.mcar1[,1]
mis2 <- RFFT_wide_unique_im5$imp$Unique.mcar2[,1]
mis3 <- RFFT_wide_unique_im5$imp$Unique.mcar3[,1]
obs1 <- RFFT_wide_unique[,"Unique.mcar1"]
obs2 <- RFFT_wide_unique[,"Unique.mcar2"]
obs3 <- RFFT_wide_unique[,"Unique.mcar3"]
fobs1 <- c(hist(obs1, breaks, plot=FALSE)$counts, 0)
fobs2 <- c(hist(obs2, breaks, plot=FALSE)$counts, 0)
fobs3 <- c(hist(obs3, breaks, plot=FALSE)$counts, 0)
breaks <- seq(-20, 200, 10)
nudge <- 1
fmis1 <- c(hist(mis1, breaks, plot=FALSE)$counts, 0)
fmis2 <- c(hist(mis2, breaks, plot=FALSE)$counts, 0)
fmis3 <- c(hist(mis3, breaks, plot=FALSE)$counts, 0)
x <- matrix(c(breaks-nudge, breaks+nudge), ncol=2)
y1 <- matrix(c(fobs1, fmis1), ncol=2)
y2 <- matrix(c(fobs2, fmis2), ncol=2)
y3 <- matrix(c(fobs3, fmis3), ncol=2)

par(mfrow = c(1,3))
matplot(x, y1, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,400), yaxs = "i",
        xlab="N� de dise�os �nicos 1� medida",
        ylab="N� de participantes")
box()
matplot(x, y2, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,400), yaxs = "i",
        xlab="N� de dise�os �nicos 2� medida",
        ylab="N� de participantes")
box()
matplot(x, y3, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,400), yaxs = "i",
        xlab="N� de dise�os �nicos 3� medida",
        ylab="N� de participantes")
box()
```

Se puede utilizar la funci�n _xyplot_ para representar los valores reales frente a los imputados en las variables de medici�n del n� de dise�os �nicos (dos a dos).   

##### Figura 50. Valores reales vs imputados IM (MICE-PMM): N� de dise�os �nicos (10%)    
```{r echo=FALSE, warning=FALSE, message=FALSE}

lwd<-1.5
xyplot(RFFT_wide_unique_im5,Unique.mcar1~Unique.mcar2+Unique.mcar3, subset = .imp==1,
        ylab="N� de dise�os �nicos 1� medida", xlab="N� de dise�os �nicos 2� y 3� medida",
        cex = 0.75, lex=lwd,ylim = c(0, 170), xlim = c(0,180))
```

Para evaluar visualmente la eficacia de la imputaci�n mediante el algoritmo PMM, utilizando la funci�n **_densityplot_** existe la opci�n de obtener una figura comparativa de los gr�ficos de densidad de los datos contenidos en una variable determinada antes y en cada una de las imputaciones de los datos faltantes. 

##### Figura 51. Densidad. Imputaciones IM (MICE-PMM) frente a datos reales: N� de dise�os �nicos (10%)   
```{r echo=FALSE, warning=FALSE, message=FALSE}
# A la hora de generar algunos gr�ficso _rStudio_ tiene algunos problemas por lo que hay que  a�adir el siguiente c�digo.
dir.create("C:/Rtmp")
cat("TMPDIR = C:/Rtmp", file = "~/.Renviron", sep = "\n", append = TRUE)

densityplot(RFFT_wide_unique_im5, ylab="Densidad", xlab="N� de dise�os �nicos 1�, 2� y 3� medida. Reales (azul) vs datos tras 5 imputaciones (magenta)")

```


****  


De modo similar se imputan los datos faltantes para el n� de errores perseverantes en cada una de las 3 mediciones, utilizando el m�todo de imputaci�n m�ltiple (IM).  

##### Figura 52. Imputaci�n datos faltantes por IM (MICE-PMM): N� de errores perseverantes (10%)  
```{r echo=FALSE, warning=FALSE, message=FALSE}
## Utilizamos la opci�n "pmm" en la funci�n "mice" para imputar datos faltantes por imputaci�n m�ltiple.
## install.packages("SparseM")
## install.packages("mice")
setwd("I:/UOC/TFM/PEC3/SINTAXIS")
library("mice")
# Mediante el m�todo PMM se imputan los valores en las 3 variables de errores perseverantes.
RFFT_wide_perseverative_im5 <- mice(RFFT_wide_perseverative[,2:7], seed = 123456, print=FALSE)
# el c�digo anterior es similar a:
# RFFT_wide_perseverative_im5 <- mice(RFFT_wide_perseverative[,2:7], m=5, maxit=5, seed = 123456, print=FALSE)
summary(RFFT_wide_perseverative_im5)
#RFFT_wide_perseverative_im5_imp<-complete(RFFT_wide_perseverative_im5)
#save(RFFT_wide_perseverative_im5_imp,file="I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_perseverative_im5_imp.Rda")
load("I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_perseverative_im5_imp.Rda")


mis1 <- RFFT_wide_perseverative_im5$imp$Perseverative.mcar1[,1]
mis2 <- RFFT_wide_perseverative_im5$imp$Perseverative.mcar2[,1]
mis3 <- RFFT_wide_perseverative_im5$imp$Perseverative.mcar3[,1]
obs1 <- RFFT_wide_perseverative[,"Perseverative.mcar1"]
obs2 <- RFFT_wide_perseverative[,"Perseverative.mcar2"]
obs3 <- RFFT_wide_perseverative[,"Perseverative.mcar3"]
fobs1 <- c(hist(obs1, breaks, plot=FALSE)$counts, 0)
fobs2 <- c(hist(obs2, breaks, plot=FALSE)$counts, 0)
fobs3 <- c(hist(obs3, breaks, plot=FALSE)$counts, 0)
breaks <- seq(-20, 200, 10)
nudge <- 1
fmis1 <- c(hist(mis1, breaks, plot=FALSE)$counts, 0)
fmis2 <- c(hist(mis2, breaks, plot=FALSE)$counts, 0)
fmis3 <- c(hist(mis3, breaks, plot=FALSE)$counts, 0)
x <- matrix(c(breaks-nudge, breaks+nudge), ncol=2)
y1 <- matrix(c(fobs1, fmis1), ncol=2)
y2 <- matrix(c(fobs2, fmis2), ncol=2)
y3 <- matrix(c(fobs3, fmis3), ncol=2)

par(mfrow = c(1,3))
matplot(x, y1, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,1500), yaxs = "i",
        xlab="N� de errores perseverantes 1� medida",
        ylab="N� de participantes")
box()
matplot(x, y2, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,1500), yaxs = "i",
        xlab="N� de errores perseverantes 2� medida",
        ylab="N� de participantes")
box()
matplot(x, y3, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,1500), yaxs = "i",
        xlab="N� de errores perseverantes 3� medida",
        ylab="N� de participantes")
box()
```

Se puede utilizar la funci�n _xyplot_ para representar los valores reales frente a los imputados en las variables de medici�n del n� de errores perseverantes (dos a dos).   

##### Figura 53. Valores reales vs imputados IM (MICE-PMM): N� de errores perseverantes (10%)   
```{r echo=FALSE, warning=FALSE, message=FALSE}

lwd<-1.5
xyplot(RFFT_wide_perseverative_im5,Perseverative.mcar1~Perseverative.mcar2+Perseverative.mcar3, subset = .imp==1,
        ylab="N� de errores perseverantes 1� medida", xlab="N� de errores perseverantes 2� y 3� medida",
        cex = 0.75, lex=lwd,ylim = c(0, 170), xlim = c(0,180))
```

Para evaluar visualmente la eficacia de la imputaci�n mediante el algoritmo PMM, utilizando la funci�n **_densityplot_** existe la opci�n de obtener una figura comparativa de los gr�ficos de densidad de los datos contenidos en una variable determinada antes y en cada una de las imputaciones de los datos faltantes. 

##### Figura 54. Densidad. Imputaciones IM (MICE-PMM) frente a datos reales: N� de errores perseverantes (10%)   
```{r echo=FALSE, warning=FALSE, message=FALSE}
# A la hora de generar algunos gr�ficos RStudio tiene algunos problemas por lo que hay que  a�adir el siguiente c�digo.
# dir.create("C:/Rtmp")
# cat("TMPDIR = C:/Rtmp", file = "~/.Renviron", sep = "\n", append = TRUE)

densityplot(RFFT_wide_perseverative_im5, ylab="Densidad", xlab="N� de errores perseverantes 1�, 2� y 3� medida. Reales (azul) vs datos tras 5 imputaciones (magenta)")

```

****

#         #
  

### 6.11	 Imputaci�n m�ltiple (m�todo PMM) (20%)   

Se generan dos dataframes (por separado para los _N� de dise�os �nicos_ y _Errores perseverantes_) utilizando el algoritmo de *M�ltiple Imputaci�n utilizando el m�todo PMM (Predictive mean matching)*, en el caso con 20% de datos faltantes.. Este m�todo obtiene buenos resultados tanto para variables continuas como categ�ricas (binarias o m�s categor�as) sin necesidad de calcular los errores (residuals) ni ajustar por m�xima verosimilitud.

PMM es por defecto el algoritmo que utiliza la funci�n _"mice"_ para imputar datos faltantes, por lo que en la opci�n _meth_ no ser�a necesario especificar que el m�todo a utilizar es _pmm_. Se recomienda que la imputaci�n m�ltiple (IM) se efectue con al menos 5 imputaciones (tambi�n es el n� que _mice_ emplea por defecto) y el n� de iteraciones tambi�n por defecto es de 5. Una vez imputados, mediante la funci�n _pool_ se obtiene el valor medio para todas las imputaciones Y se representa gr�ficamente la distribuci�n de los datos imputados en cada una de las 3 variables de la medici�n del n� de dise�os �nicos.  

##### Figura 55. Imputaci�n datos faltantes por IM (MICE-PMM): N� de dise�os �nicos (20%)     
```{r echo=FALSE, warning=FALSE, message=FALSE}
## Utilizamos la opci�n "pmm" en la funci�n "mice" para imputar datos faltantes por imputaci�n m�ltiple.
## install.packages("SparseM")
## install.packages("mice")
library("mice")
# Mediante el m�todo PMM se imputan los valores en las 3 variables de dise�os �nicos.
RFFT_wide_unique_im5_20 <- mice(RFFT_wide_unique_20[,2:7], seed = 123456, print=FALSE)
# el c�digo anterior es similar a:
# RFFT_wide_unique_im5_20 <- mice(RFFT_wide_unique_20[,2:7], m=5, maxit=5, seed = 123456, print=FALSE)
summary(RFFT_wide_unique_im5_20)
#RFFT_wide_unique_im5_20_imp<-complete(RFFT_wide_unique_im5_20)
#save(RFFT_wide_unique_im5_20_imp,file="I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_unique_im5_20_imp.Rda")
load("I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_unique_im5_20_imp.Rda")


mis1 <- RFFT_wide_unique_im5_20$imp$Unique.mcar1[,1]
mis2 <- RFFT_wide_unique_im5_20$imp$Unique.mcar2[,1]
mis3 <- RFFT_wide_unique_im5_20$imp$Unique.mcar3[,1]
obs1 <- RFFT_wide_unique_20[,"Unique.mcar1"]
obs2 <- RFFT_wide_unique_20[,"Unique.mcar2"]
obs3 <- RFFT_wide_unique_20[,"Unique.mcar3"]
fobs1 <- c(hist(obs1, breaks, plot=FALSE)$counts, 0)
fobs2 <- c(hist(obs2, breaks, plot=FALSE)$counts, 0)
fobs3 <- c(hist(obs3, breaks, plot=FALSE)$counts, 0)
breaks <- seq(-20, 200, 10)
nudge <- 1
fmis1 <- c(hist(mis1, breaks, plot=FALSE)$counts, 0)
fmis2 <- c(hist(mis2, breaks, plot=FALSE)$counts, 0)
fmis3 <- c(hist(mis3, breaks, plot=FALSE)$counts, 0)
x <- matrix(c(breaks-nudge, breaks+nudge), ncol=2)
y1 <- matrix(c(fobs1, fmis1), ncol=2)
y2 <- matrix(c(fobs2, fmis2), ncol=2)
y3 <- matrix(c(fobs3, fmis3), ncol=2)

par(mfrow = c(1,3))
matplot(x, y1, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,400), yaxs = "i",
        xlab="N� de dise�os �nicos 1� medida",
        ylab="N� de participantes")
box()
matplot(x, y2, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,400), yaxs = "i",
        xlab="N� de dise�os �nicos 2� medida",
        ylab="N� de participantes")
box()
matplot(x, y3, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,400), yaxs = "i",
        xlab="N� de dise�os �nicos 3� medida",
        ylab="N� de participantes")
box()
```

Se puede utilizar la funci�n _xyplot_ para representar los valores reales frente a los imputados en las variables de medici�n del n� de dise�os �nicos (dos a dos).   

##### Figura 56. Valores reales vs imputados IM (MICE-PMM): N� de dise�os �nicos (20%)    
```{r echo=FALSE, warning=FALSE, message=FALSE}

lwd<-1.5
xyplot(RFFT_wide_unique_im5_20,Unique.mcar1~Unique.mcar2+Unique.mcar3, subset = .imp==1,
        ylab="N� de dise�os �nicos 1� medida", xlab="N� de dise�os �nicos 2� y 3� medida",
        cex = 0.75, lex=lwd,ylim = c(0, 170), xlim = c(0,180))
```

Para evaluar visualmente la eficacia de la imputaci�n mediante el algoritmo PMM, utilizando la funci�n **_densityplot_** existe la opci�n de obtener una figura comparativa de los gr�ficos de densidad de los datos contenidos en una variable determinada antes y en cada una de las imputaciones de los datos faltantes. 

##### Figura 57. Densidad. Imputaciones IM (MICE-PMM) frente a datos reales: N� de dise�os �nicos (20%)   
```{r echo=FALSE, warning=FALSE, message=FALSE}
# A la hora de generar algunos gr�ficso _rStudio_ tiene algunos problemas por lo que hay que  a�adir el siguiente c�digo.
dir.create("C:/Rtmp")
cat("TMPDIR = C:/Rtmp", file = "~/.Renviron", sep = "\n", append = TRUE)

densityplot(RFFT_wide_unique_im5_20, ylab="Densidad", xlab="N� de dise�os �nicos 1�, 2� y 3� medida. Reales (azul) vs datos tras 5 imputaciones (magenta)")

```


****  


De modo similar se imputan los datos faltantes para el n� de errores perseverantes en cada una de las 3 mediciones, utilizando el m�todo de imputaci�n m�ltiple (IM).  

##### Figura 58. Imputaci�n datos faltantes por IM (MICE-PMM): N� de errores perseverantes (20%)  
```{r echo=FALSE, warning=FALSE, message=FALSE}
## Utilizamos la opci�n "pmm" en la funci�n "mice" para imputar datos faltantes por imputaci�n m�ltiple.
## install.packages("SparseM")
## install.packages("mice")
setwd("I:/UOC/TFM/PEC3/SINTAXIS")
library("mice")
# Mediante el m�todo PMM se imputan los valores en las 3 variables de errores perseverantes.
RFFT_wide_perseverative_im5_20 <- mice(RFFT_wide_perseverative_20[,2:7], seed = 123456, print=FALSE)
# el c�digo anterior es similar a:
# RFFT_wide_perseverative_im5_20 <- mice(RFFT_wide_perseverative_20[,2:7], m=5, maxit=5, seed = 123456, print=FALSE)
summary(RFFT_wide_perseverative_im5_20)
#RFFT_wide_perseverative_im5_20_imp<-complete(RFFT_wide_perseverative_im5_20)
#save(RFFT_wide_perseverative_im5_20_imp,file="I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_perseverative_im5_20_imp.Rda")
load("I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_perseverative_im5_20_imp.Rda")


mis1 <- RFFT_wide_perseverative_im5_20$imp$Perseverative.mcar1[,1]
mis2 <- RFFT_wide_perseverative_im5_20$imp$Perseverative.mcar2[,1]
mis3 <- RFFT_wide_perseverative_im5_20$imp$Perseverative.mcar3[,1]
obs1 <- RFFT_wide_perseverative_20[,"Perseverative.mcar1"]
obs2 <- RFFT_wide_perseverative_20[,"Perseverative.mcar2"]
obs3 <- RFFT_wide_perseverative_20[,"Perseverative.mcar3"]
fobs1 <- c(hist(obs1, breaks, plot=FALSE)$counts, 0)
fobs2 <- c(hist(obs2, breaks, plot=FALSE)$counts, 0)
fobs3 <- c(hist(obs3, breaks, plot=FALSE)$counts, 0)
breaks <- seq(-20, 200, 10)
nudge <- 1
fmis1 <- c(hist(mis1, breaks, plot=FALSE)$counts, 0)
fmis2 <- c(hist(mis2, breaks, plot=FALSE)$counts, 0)
fmis3 <- c(hist(mis3, breaks, plot=FALSE)$counts, 0)
x <- matrix(c(breaks-nudge, breaks+nudge), ncol=2)
y1 <- matrix(c(fobs1, fmis1), ncol=2)
y2 <- matrix(c(fobs2, fmis2), ncol=2)
y3 <- matrix(c(fobs3, fmis3), ncol=2)

par(mfrow = c(1,3))
matplot(x, y1, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,1500), yaxs = "i",
        xlab="N� de errores perseverantes 1� medida",
        ylab="N� de participantes")
box()
matplot(x, y2, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,1500), yaxs = "i",
        xlab="N� de errores perseverantes 2� medida",
        ylab="N� de participantes")
box()
matplot(x, y3, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,1500), yaxs = "i",
        xlab="N� de errores perseverantes 3� medida",
        ylab="N� de participantes")
box()
```

Se puede utilizar la funci�n _xyplot_ para representar los valores reales frente a los imputados en las variables de medici�n del n� de errores perseverantes (dos a dos).   

##### Figura 59. Valores reales vs imputados IM (MICE-PMM): N� de errores perseverantes (20%)   
```{r echo=FALSE, warning=FALSE, message=FALSE}

lwd<-1.5
xyplot(RFFT_wide_perseverative_im5_20,Perseverative.mcar1~Perseverative.mcar2+Perseverative.mcar3, subset = .imp==1,
        ylab="N� de errores perseverantes 1� medida", xlab="N� de errores perseverantes 2� y 3� medida",
        cex = 0.75, lex=lwd,ylim = c(0, 170), xlim = c(0,180))
```

Para evaluar visualmente la eficacia de la imputaci�n mediante el algoritmo PMM, utilizando la funci�n **_densityplot_** existe la opci�n de obtener una figura comparativa de los gr�ficos de densidad de los datos contenidos en una variable determinada antes y en cada una de las imputaciones de los datos faltantes. 

##### Figura 60. Densidad. Imputaciones IM (MICE-PMM) frente a datos reales: N� de errores perseverantes (20%)   
```{r echo=FALSE, warning=FALSE, message=FALSE}
# A la hora de generar algunos gr�ficos RStudio tiene algunos problemas por lo que hay que  a�adir el siguiente c�digo.
# dir.create("C:/Rtmp")
# cat("TMPDIR = C:/Rtmp", file = "~/.Renviron", sep = "\n", append = TRUE)

densityplot(RFFT_wide_perseverative_im5_20, ylab="Densidad", xlab="N� de errores perseverantes 1�, 2� y 3� medida. Reales (azul) vs datos tras 5 imputaciones (magenta)")

```


****

#         #
  

### 6.12	 Imputaci�n m�ltiple (m�todo PMM) (30%)   

Se generan dos dataframes (por separado para los _N� de dise�os �nicos_ y _Errores perseverantes_) utilizando el algoritmo de *M�ltiple Imputaci�n utilizando el m�todo PMM (Predictive mean matching)*, en el caso con 30% de datos faltantes.. Este m�todo obtiene buenos resultados tanto para variables continuas como categ�ricas (binarias o m�s categor�as) sin necesidad de calcular los errores (residuals) ni ajustar por m�xima verosimilitud.

PMM es por defecto el algoritmo que utiliza la funci�n _"mice"_ para imputar datos faltantes, por lo que en la opci�n _meth_ no ser�a necesario especificar que el m�todo a utilizar es _pmm_. Se recomienda que la imputaci�n m�ltiple (IM) se efectue con al menos 5 imputaciones (tambi�n es el n� que _mice_ emplea por defecto) y el n� de iteraciones tambi�n por defecto es de 5. Una vez imputados, mediante la funci�n _pool_ se obtiene el valor medio para todas las imputaciones Y se representa gr�ficamente la distribuci�n de los datos imputados en cada una de las 3 variables de la medici�n del n� de dise�os �nicos.  

##### Figura 61. Imputaci�n datos faltantes por IM (MICE-PMM): N� de dise�os �nicos (30%)     
```{r echo=FALSE, warning=FALSE, message=FALSE}
## Utilizamos la opci�n "pmm" en la funci�n "mice" para imputar datos faltantes por imputaci�n m�ltiple.
## install.packages("SparseM")
## install.packages("mice")
library("mice")
# Mediante el m�todo PMM se imputan los valores en las 3 variables de dise�os �nicos.
RFFT_wide_unique_im5_30 <- mice(RFFT_wide_unique_30[,2:7], seed = 123456, print=FALSE)
# el c�digo anterior es similar a:
# RFFT_wide_unique_im5_30 <- mice(RFFT_wide_unique_30[,2:7], m=5, maxit=5, seed = 123456, print=FALSE)
summary(RFFT_wide_unique_im5_30)
# RFFT_wide_unique_im5_30_imp<-complete(RFFT_wide_unique_im5_30)
# save(RFFT_wide_unique_im5_30_imp,file="I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_unique_im5_30_imp.Rda")
load("I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_unique_im5_30_imp.Rda")


mis1 <- RFFT_wide_unique_im5_30$imp$Unique.mcar1[,1]
mis2 <- RFFT_wide_unique_im5_30$imp$Unique.mcar2[,1]
mis3 <- RFFT_wide_unique_im5_30$imp$Unique.mcar3[,1]
obs1 <- RFFT_wide_unique_30[,"Unique.mcar1"]
obs2 <- RFFT_wide_unique_30[,"Unique.mcar2"]
obs3 <- RFFT_wide_unique_30[,"Unique.mcar3"]
fobs1 <- c(hist(obs1, breaks, plot=FALSE)$counts, 0)
fobs2 <- c(hist(obs2, breaks, plot=FALSE)$counts, 0)
fobs3 <- c(hist(obs3, breaks, plot=FALSE)$counts, 0)
breaks <- seq(-20, 200, 10)
nudge <- 1
fmis1 <- c(hist(mis1, breaks, plot=FALSE)$counts, 0)
fmis2 <- c(hist(mis2, breaks, plot=FALSE)$counts, 0)
fmis3 <- c(hist(mis3, breaks, plot=FALSE)$counts, 0)
x <- matrix(c(breaks-nudge, breaks+nudge), ncol=2)
y1 <- matrix(c(fobs1, fmis1), ncol=2)
y2 <- matrix(c(fobs2, fmis2), ncol=2)
y3 <- matrix(c(fobs3, fmis3), ncol=2)

par(mfrow = c(1,3))
matplot(x, y1, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,400), yaxs = "i",
        xlab="N� de dise�os �nicos 1� medida",
        ylab="N� de participantes")
box()
matplot(x, y2, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,400), yaxs = "i",
        xlab="N� de dise�os �nicos 2� medida",
        ylab="N� de participantes")
box()
matplot(x, y3, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,400), yaxs = "i",
        xlab="N� de dise�os �nicos 3� medida",
        ylab="N� de participantes")
box()
```

Se puede utilizar la funci�n _xyplot_ para representar los valores reales frente a los imputados en las variables de medici�n del n� de dise�os �nicos (dos a dos).   

##### Figura 62. Valores reales vs imputados IM (MICE-PMM): N� de dise�os �nicos (30%)    
```{r echo=FALSE, warning=FALSE, message=FALSE}

lwd<-1.5
xyplot(RFFT_wide_unique_im5_30,Unique.mcar1~Unique.mcar2+Unique.mcar3, subset = .imp==1,
        ylab="N� de dise�os �nicos 1� medida", xlab="N� de dise�os �nicos 2� y 3� medida",
        cex = 0.75, lex=lwd,ylim = c(0, 170), xlim = c(0,180))
```

Para evaluar visualmente la eficacia de la imputaci�n mediante el algoritmo PMM, utilizando la funci�n **_densityplot_** existe la opci�n de obtener una figura comparativa de los gr�ficos de densidad de los datos contenidos en una variable determinada antes y en cada una de las imputaciones de los datos faltantes. 

##### Figura 63. Densidad. Imputaciones IM (MICE-PMM) frente a datos reales: N� de dise�os �nicos (30%)   
```{r echo=FALSE, warning=FALSE, message=FALSE}
# A la hora de generar algunos gr�ficso _rStudio_ tiene algunos problemas por lo que hay que  a�adir el siguiente c�digo.
dir.create("C:/Rtmp")
cat("TMPDIR = C:/Rtmp", file = "~/.Renviron", sep = "\n", append = TRUE)

densityplot(RFFT_wide_unique_im5_30, ylab="Densidad", xlab="N� de dise�os �nicos 1�, 2� y 3� medida. Reales (azul) vs datos tras 5 imputaciones (magenta)")

```


****  


De modo similar se imputan los datos faltantes para el n� de errores perseverantes en cada una de las 3 mediciones, utilizando el m�todo de imputaci�n m�ltiple (IM).  

##### Figura 64. Imputaci�n datos faltantes por IM (MICE-PMM): N� de errores perseverantes (30%)  
```{r echo=FALSE, warning=FALSE, message=FALSE}
## Utilizamos la opci�n "pmm" en la funci�n "mice" para imputar datos faltantes por imputaci�n m�ltiple.
## install.packages("SparseM")
## install.packages("mice")
setwd("I:/UOC/TFM/PEC3/SINTAXIS")
library("mice")
# Mediante el m�todo PMM se imputan los valores en las 3 variables de errores perseverantes.
RFFT_wide_perseverative_im5_30 <- mice(RFFT_wide_perseverative_30[,2:7], seed = 123456, print=FALSE)
# el c�digo anterior es similar a:
# RFFT_wide_perseverative_im5_30 <- mice(RFFT_wide_perseverative_30[,2:7], m=5, maxit=5, seed = 123456, print=FALSE)
summary(RFFT_wide_perseverative_im5_30)
# RFFT_wide_perseverative_im5_30_imp<-complete(RFFT_wide_perseverative_im5_30)
# save(RFFT_wide_perseverative_im5_30_imp,file="I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_perseverative_im5_30_imp.Rda")
load("I:/UOC/TFM/PEC3/SINTAXIS/RFFT_wide_perseverative_im5_30_imp.Rda")


mis1 <- RFFT_wide_perseverative_im5_30$imp$Perseverative.mcar1[,1]
mis2 <- RFFT_wide_perseverative_im5_30$imp$Perseverative.mcar2[,1]
mis3 <- RFFT_wide_perseverative_im5_30$imp$Perseverative.mcar3[,1]
obs1 <- RFFT_wide_perseverative_30[,"Perseverative.mcar1"]
obs2 <- RFFT_wide_perseverative_30[,"Perseverative.mcar2"]
obs3 <- RFFT_wide_perseverative_30[,"Perseverative.mcar3"]
fobs1 <- c(hist(obs1, breaks, plot=FALSE)$counts, 0)
fobs2 <- c(hist(obs2, breaks, plot=FALSE)$counts, 0)
fobs3 <- c(hist(obs3, breaks, plot=FALSE)$counts, 0)
breaks <- seq(-20, 200, 10)
nudge <- 1
fmis1 <- c(hist(mis1, breaks, plot=FALSE)$counts, 0)
fmis2 <- c(hist(mis2, breaks, plot=FALSE)$counts, 0)
fmis3 <- c(hist(mis3, breaks, plot=FALSE)$counts, 0)
x <- matrix(c(breaks-nudge, breaks+nudge), ncol=2)
y1 <- matrix(c(fobs1, fmis1), ncol=2)
y2 <- matrix(c(fobs2, fmis2), ncol=2)
y3 <- matrix(c(fobs3, fmis3), ncol=2)

par(mfrow = c(1,3))
matplot(x, y1, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,1500), yaxs = "i",
        xlab="N� de errores perseverantes 1� medida",
        ylab="N� de participantes")
box()
matplot(x, y2, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,1500), yaxs = "i",
        xlab="N� de errores perseverantes 2� medida",
        ylab="N� de participantes")
box()
matplot(x, y3, type="s",
        col=c(mdc(4),mdc(5)), lwd=2, lty=1,
        xlim = c(0, 170), ylim = c(0,1500), yaxs = "i",
        xlab="N� de errores perseverantes 3� medida",
        ylab="N� de participantes")
box()
```

Se puede utilizar la funci�n _xyplot_ para representar los valores reales frente a los imputados en las variables de medici�n del n� de errores perseverantes (dos a dos).   

##### Figura 65. Valores reales vs imputados IM (MICE-PMM): N� de errores perseverantes (30%)   
```{r echo=FALSE, warning=FALSE, message=FALSE}

lwd<-1.5
xyplot(RFFT_wide_perseverative_im5_30,Perseverative.mcar1~Perseverative.mcar2+Perseverative.mcar3, subset = .imp==1,
        ylab="N� de errores perseverantes 1� medida", xlab="N� de errores perseverantes 2� y 3� medida",
        cex = 0.75, lex=lwd,ylim = c(0, 170), xlim = c(0,180))
```

Para evaluar visualmente la eficacia de la imputaci�n mediante el algoritmo PMM, utilizando la funci�n **_densityplot_** existe la opci�n de obtener una figura comparativa de los gr�ficos de densidad de los datos contenidos en una variable determinada antes y en cada una de las imputaciones de los datos faltantes. 

##### Figura 66. Densidad. Imputaciones IM (MICE-PMM) frente a datos reales: N� de errores perseverantes (30%)   
```{r echo=FALSE, warning=FALSE, message=FALSE}
# A la hora de generar algunos gr�ficos RStudio tiene algunos problemas por lo que hay que  a�adir el siguiente c�digo.
# dir.create("C:/Rtmp")
# cat("TMPDIR = C:/Rtmp", file = "~/.Renviron", sep = "\n", append = TRUE)

densityplot(RFFT_wide_perseverative_im5_30, ylab="Densidad", xlab="N� de errores perseverantes 1�, 2� y 3� medida. Reales (azul) vs datos tras 5 imputaciones (magenta)")

```



****

#         #


## 7.	 REPRODUCCI�N DE LOS AN�LISIS ORIGINALES

### 7.1	 Reproducci�n de los an�lisis con datos originales   

Los autores reportaron un aumento significativo $(p_{tendencia}<0.001)$ en el n�mero medio (SD) de dise�os �nicos en el RFFT increment�ndose de 73 (26) en la primera medici�n, a 79 (27) en la segunda medici�n y a 83 (26) en la tercera. Adem�s dicho aumento se asoci� negativamente con la edad (disminuy� con 0,23 por incremento de un a�o) y no se hall� relaci�n con el nivel educativo. Resultados similares se obtuvieron para los errores perseverantes: la mediana (IQR) en la primera medici�n fue 7 (3-13), en la segunda medici�n 7 (4-14)  y  aumentando en la tercera medici�n 8 (4-15) $(p_{tendencia}=0.002)$(43).  
  
```{r echo=FALSE, warning=FALSE, message=FALSE}
# RFFT[1:10,]
# Se genera la variable Measurement como num�rica.
RFFT$Measurement2<-Recode(RFFT$Measurement,'"1� medida (2003-06)"=1; "2� medida (2006-08)"=2;"3� medida (2008-12)"=3',as.factor.result=FALSE)
RFFT$Measurement2<-as.numeric(RFFT$Measurement2)

```

A partir de la base de datos original se reproducen los resultados publicados:   

**Perfiles de los valores medios**  
Para esta secci�n se utiliza la BBDD en formato long original. Se analizan los valores medios y medianos de _dise�os �nicos_ y de _errores perseverantes_ en cada visita y se presentan junto con el n� de participantes analizables en cada visita. Para reproducir los an�lisis del art�culo original ( _Marlise E. A. van Eersel et al._), se utilizan el an�lisis de varianza (ANOVA) y el test de Kruskal Wallis, para analizar el cambio a lo largo de las 3 mediciones en el _n� de dise�os �nicos_ y el _n� de errores perseverantes_.   
  
```{r echo=FALSE, warning=FALSE, message=FALSE}
stats_unique <- numSummary(RFFT[,"Unique", drop=FALSE], groups=RFFT$Measurement, statistics=c("mean", "sd", "IQR", "quantiles"), quantiles=c(0,.25,.5,.75,1))
stats_unique
stats_perseverative <- numSummary(RFFT[,"Perseverative", drop=FALSE], groups=RFFT$Measurement, statistics=c("mean", "sd", "IQR", "quantiles"), quantiles=c(0,.25,.5,.75,1))
## Se utiliza la funci�n aov para obtener el an�lis de varianza que permite comparar las medias entre los 3 tiempos para el N� de dise�os �nicos.
aov_unique <- summary(aov(Unique ~ Measurement_r, data=RFFT))
aov_unique
kw_perseverative<-kruskal.test(Perseverative ~ Measurement, data=RFFT)
kw_perseverative
## se utiliza el test de Kruskal Wallis para que permite comparar las medianas entre los 3 tiempos para el N� de errores perseverantes.
```

Se utilizan los resultados obtenidos para generar una tabla resumen de los resultados en las medidas consecutivas.   

##### Tabla 1. Resumen resultados medidas consecutivas (datos originales)
**N� de dise�os �nicos, media(DE)**         | **1� (2003-06)** | **2� (2006-08)** | **3� (2008-12)** | **p-valor (anova)**  
----------------------------------------|--------------|--------------|--------------|--------------
Todos los participantes                     | `r round(stats_unique$table[1],digits=0)` (`r round(stats_unique$table[4],digits=0)`) | `r round(stats_unique$table[2],digits=0)` (`r round(stats_unique$table[5],digits=0)`) | `r round(stats_unique$table[3],digits=0)` (`r round(stats_unique$table[6],digits=0)`) | p<0.001  
**N� errores perseverantes, mediana(RIQ)** | **1� (2003-06)** | **2� (2006-08)** | **3� (2008-12)** | **p-valor (K-W)**  
Todos los participantes                     | `r round(stats_perseverative$table[16],digits=0)` (`r round(stats_perseverative$table[13],digits=0)`-`r round(stats_perseverative$table[19],digits=0)`) | `r round(stats_perseverative$table[17],digits=0)` (`r round(stats_perseverative$table[14],digits=0)`-`r round(stats_perseverative$table[20],digits=0)`) | `r round(stats_perseverative$table[18],digits=0)` (`r round(stats_perseverative$table[15],digits=0)`-`r round(stats_perseverative$table[21],digits=0)`) | `r round(kw_perseverative$p.value,digits=3)`  
_DE: Desviaci�n est�ndard; RIQ: rango inter-cuart�lico; K-W: Kruskal-Wallis_


Para reproducir los resultados obtenidos por los autores se utiliza la funci�n _lme_ (paquete _nlme_) que permite ajustar los efectos de modelos lineales mixtos y analizar los datos longitudinales. Los resultados obtenidos son muy similares a los que se presentan en el art�culo (diferencias m�nimas en algunos estimadores).  

****

#         #

#### 7.1.1	Reproducci�n del an�lisis original: Dise�os �nicos  

Se ajustan los 3 modelos especificados en el art�culo: En el primer modelo se incluyen _Edad_, _G�nero_, _Nivel de educaci�n_, en el 2� se a�ade _Medida (n� consecutivo)_ y en el 3� la _interacci�n entre edad y medida (n�   consecutivo)_.  

```{r echo=FALSE, warning=FALSE, message=FALSE}


## Se ajustan los modelos especificados en el art�culo.
model1_unique<-lme(Unique~Age+Gender+Education,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT,control=list(opt="optim"))
model2_unique<-lme(Unique~Age+Gender+Education+Measurement2,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT,control=list(opt="optim"))
model3_unique<-lme(Unique~Age+Gender+Education+Measurement2+Age*Measurement2,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT,control=list(opt="optim"))
model1_unique_tab<-round(summary(model1_unique)$tTable,dig=3)
model2_unique_tab<-round(summary(model2_unique)$tTable,dig=3)
model3_unique_tab<-round(summary(model3_unique)$tTable,dig=3)

# estimadores y p-valores en cada modelo:
model1_unique_tab26<-as.character(ifelse(model1_unique_tab[26]<0.001, "<0.001",model1_unique_tab[26]))
model1_unique_tab27<-as.character(ifelse(model1_unique_tab[27]<0.001, "<0.001",model1_unique_tab[27]))
model1_unique_tab28<-as.character(ifelse(model1_unique_tab[28]<0.001, "<0.001",model1_unique_tab[28]))
model1_unique_tab29<-as.character(ifelse(model1_unique_tab[29]<0.001, "<0.001",model1_unique_tab[29]))
model1_unique_tab30<-as.character(ifelse(model1_unique_tab[30]<0.001, "<0.001",model1_unique_tab[30]))

model2_unique_tab30<-as.character(ifelse(model2_unique_tab[30]<0.001, "<0.001",model2_unique_tab[30]))
model2_unique_tab31<-as.character(ifelse(model2_unique_tab[31]<0.001, "<0.001",model2_unique_tab[31]))
model2_unique_tab32<-as.character(ifelse(model2_unique_tab[32]<0.001, "<0.001",model2_unique_tab[32]))
model2_unique_tab33<-as.character(ifelse(model2_unique_tab[33]<0.001, "<0.001",model2_unique_tab[33]))
model2_unique_tab34<-as.character(ifelse(model2_unique_tab[34]<0.001, "<0.001",model2_unique_tab[34]))
model2_unique_tab35<-as.character(ifelse(model2_unique_tab[35]<0.001, "<0.001",model2_unique_tab[35]))

model3_unique_tab34<-as.character(ifelse(model3_unique_tab[34]<0.001, "<0.001",model3_unique_tab[34]))
model3_unique_tab35<-as.character(ifelse(model3_unique_tab[35]<0.001, "<0.001",model3_unique_tab[35]))
model3_unique_tab36<-as.character(ifelse(model3_unique_tab[36]<0.001, "<0.001",model3_unique_tab[36]))
model3_unique_tab37<-as.character(ifelse(model3_unique_tab[37]<0.001, "<0.001",model3_unique_tab[37]))
model3_unique_tab38<-as.character(ifelse(model3_unique_tab[38]<0.001, "<0.001",model3_unique_tab[38]))
model3_unique_tab39<-as.character(ifelse(model3_unique_tab[39]<0.001, "<0.001",model3_unique_tab[39]))
model3_unique_tab40<-as.character(ifelse(model3_unique_tab[40]<0.001, "<0.001",model3_unique_tab[40]))

# coeficientes con sus IC al 95%:
model1_unique_int<-round(intervals(model1_unique)$fixed,digits=2)
model2_unique_int<-round(intervals(model2_unique)$fixed,digits=2)
model3_unique_int<-round(intervals(model3_unique)$fixed,digits=2)

model1_unique_AIC<-summary(model1_unique)$AIC
model1_unique_sigma<-summary(model1_unique)$sigma
model2_unique_AIC<-summary(model2_unique)$AIC
model2_unique_sigma<-summary(model2_unique)$sigma
model3_unique_AIC<-summary(model3_unique)$AIC
model3_unique_sigma<-summary(model3_unique)$sigma

## Se genera una tabla resumen.

```

Con los resultados obtenidos se genera una tabla resumen de las medidas consecutivas del *N� de dise�os �nicos*.

##### Tabla 2. Modelos lineales mixtos de los resultados RFFT: n� de dise�os �nicos
**Variables**       |   **Modelo 1**   |    **Modelo 2**  |    **Modelo 3** 
----------------|--------------|--------------|--------------  
----------------|**_B_, IC 95%  (p-valor)** |**_B_, IC 95%  (p-valor)**  |**_B_, IC 95%  (p-valor)**    
**Edad**            | `r model1_unique_int[8]`, `r model1_unique_int[2]` to `r model1_unique_int[14]` (`r model1_unique_tab26`) | `r model2_unique_int[9]`, `r model2_unique_int[2]` to `r model2_unique_int[16]` (`r model2_unique_tab30`) | `r model3_unique_int[10]`, `r model3_unique_int[2]` to `r model3_unique_int[18]` (`r model3_unique_tab34`)   
**Sexo: Hombre**          | Ref. | Ref. | Ref.   
**Sexo: Mujer**           | `r model1_unique_int[9]`, `r model1_unique_int[3]` to `r model1_unique_int[15]` (`r model1_unique_tab27`) | `r model2_unique_int[10]`, `r model2_unique_int[3]` to `r model2_unique_int[17]` (`r model2_unique_tab31`) | `r model3_unique_int[11]`, `r model3_unique_int[3]` to `r model3_unique_int[19]` (`r model3_unique_tab35`)   
**NE: Escuela primaria**  | Ref. | Ref. | Ref.  
**NE: Secundaria inicial**   | `r model1_unique_int[10]`, `r model1_unique_int[4]` to `r model1_unique_int[16]` (`r model1_unique_tab28`) | `r model2_unique_int[11]`, `r model2_unique_int[4]` to `r model2_unique_int[18]` (`r model2_unique_tab32`) | `r model3_unique_int[12]`, `r model3_unique_int[4]` to `r model3_unique_int[20]` (`r model3_unique_tab36`)     
**NE: Secundaria superior** | `r model1_unique_int[11]`, `r model1_unique_int[5]` to `r model1_unique_int[17]` (`r model1_unique_tab29`) | `r model2_unique_int[12]`, `r model2_unique_int[5]` to `r model2_unique_int[19]` (`r model2_unique_tab33`) | `r model3_unique_int[13]`, `r model3_unique_int[5]` to `r model3_unique_int[21]` (`r model3_unique_tab37`)  
**NE: Universitaria** | `r model1_unique_int[12]`, `r model1_unique_int[6]` to `r model1_unique_int[18]` (`r model1_unique_tab30`) | `r model2_unique_int[13]`, `r model2_unique_int[6]` to `r model2_unique_int[20]` (`r model2_unique_tab34`) | `r model3_unique_int[6]`, `r model3_unique_int[14]` to `r model3_unique_int[22]` (`r model3_unique_tab38`)  
**Medida (n� consecutivo)**|           | `r model2_unique_int[14]`, `r model2_unique_int[7]` to `r model2_unique_int[21]` (`r model2_unique_tab35`) | `r model3_unique_int[15]`, `r model3_unique_int[7]` to `r model3_unique_int[23]` (`r model3_unique_tab39`) 
**Edad x Medida (n� consecutivo)**|          |  | `r model3_unique_int[16]`, `r model3_unique_int[8]` to `r model3_unique_int[24]` (`r model3_unique_tab40`)  

_B: Coeficiente no estandarizado;  IC 95: Intervalo de confianza al 95% del coeficiente B; Ref.: Categor�a de referencia; NE: Nivel de educaci�n_


Se comparan los 3 modelos utilizando el criterio de Akaike (AIC) que se puede obtener mediante la funci�n _anova_:

```{r echo=FALSE, warning=FALSE, message=FALSE}

comp_mod1_2_unique<-anova(model1_unique,model2_unique)
comp_mod1_2_unique
comp_mod1_2_unique$AIC[1]
comp_mod1_2_unique$AIC[2]
comp_mod1_2_unique$`p-value`[2]
comp_mod1_2_unique_pv<-as.character(ifelse(comp_mod1_2_unique$`p-value`[2]<0.001, "<0.001",round(comp_mod1_2_unique$`p-value`[2],digits=3)))

comp_mod2_3_unique<-anova(model2_unique,model3_unique)
comp_mod2_3_unique
comp_mod2_3_unique$AIC[1]
comp_mod2_3_unique$AIC[2]
comp_mod2_3_unique$`p-value`[2]
comp_mod2_3_unique_pv<-as.character(ifelse(comp_mod2_3_unique$`p-value`[2]<0.001, "<0.001",round(comp_mod2_3_unique$`p-value`[2],digits=3)))
```

Se inspeccionan la informaci�n num�rica que aporta _summary_ acerca de estos modelos:    

- El AIC del modelo 1 es `r as.character(round(model1_unique_AIC,digit=1))`.
- El AIC del modelo 2 es `r as.character(round(model2_unique_AIC,digit=1))`.
- El AIC del modelo 3 es `r as.character(round(model3_unique_AIC,digit=1))`.
- la varianza residual del modelo 1 es `r as.character(round(model1_unique_sigma,digit=3))` (la salida da 'sigma'), que es la estimaci�n de la varianza de los residuos (como std.dev), por lo tanto reporta la variabilidad entre observaciones (_"within-participante variability"_), para el modelo 2 toma el valor  `r as.character(round(model2_unique_sigma,digit=3))` y para el modelo 3:  `r as.character(round(model3_unique_sigma,digit=3))`.  

Al comparar el modelo 1 con el 2, mediante los valores del criterio Akaike (AIC) se obtiene una diferencia de `r round(comp_mod1_2_unique$AIC[1]-comp_mod1_2_unique$AIC[2],digits=2)`, que resulta estad�sticamente significativa en beneficio del modelo 2, (`r comp_mod1_2_unique_pv`).
Al comparar el modelo 2 con el 3, mediante los valores del criterio Akaike (AIC) se obtiene una diferencia de `r round(comp_mod2_3_unique$AIC[1]-comp_mod2_3_unique$AIC[2],digits=2)`, que resulta estad�sticamente significativa en beneficio del modelo 3, (`r comp_mod2_3_unique_pv`).

En este caso el modelo que se selecciona para comparar con las bases de datos generadas con datos faltantes es el modelo 3.

****

#         #

#### 7.1.2	Reproducci�n de los an�lisis: Errores perseverantes

Se ajustan los 3 modelos especificados en el art�culo: En el primer modelo se incluyen _Edad_, _G�nero_, _Nivel de educaci�n_, en el 2� se a�ade _Medida (n� consecutivo)_ y en el 3� la _interacci�n entre edad y medida (n� consecutivo)_.  
  

```{r echo=FALSE, warning=FALSE, message=FALSE}

model1_perseverative<-lme(Perseverative~Age+Gender+Education,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT,control=list(opt="optim"))
model2_perseverative<-lme(Perseverative~Age+Gender+Education+Measurement2,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT,control=list(opt="optim"))
model3_perseverative<-lme(Perseverative~Age+Gender+Education+Measurement2+Age*Measurement2,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT,control=list(opt="optim"))
model1_perseverative_tab<-round(summary(model1_perseverative)$tTable,dig=3)
model2_perseverative_tab<-round(summary(model2_perseverative)$tTable,dig=3)
model3_perseverative_tab<-round(summary(model3_perseverative)$tTable,dig=3)

# estimadores y p-valores en cada modelo:
model1_perseverative_tab26<-as.character(ifelse(model1_perseverative_tab[26]<0.001, "<0.001",model1_perseverative_tab[26]))
model1_perseverative_tab27<-as.character(ifelse(model1_perseverative_tab[27]<0.001, "<0.001",model1_perseverative_tab[27]))
model1_perseverative_tab28<-as.character(ifelse(model1_perseverative_tab[28]<0.001, "<0.001",model1_perseverative_tab[28]))
model1_perseverative_tab29<-as.character(ifelse(model1_perseverative_tab[29]<0.001, "<0.001",model1_perseverative_tab[29]))
model1_perseverative_tab30<-as.character(ifelse(model1_perseverative_tab[30]<0.001, "<0.001",model1_perseverative_tab[30]))

model2_perseverative_tab30<-as.character(ifelse(model2_perseverative_tab[30]<0.001, "<0.001",model2_perseverative_tab[30]))
model2_perseverative_tab31<-as.character(ifelse(model2_perseverative_tab[31]<0.001, "<0.001",model2_perseverative_tab[31]))
model2_perseverative_tab32<-as.character(ifelse(model2_perseverative_tab[32]<0.001, "<0.001",model2_perseverative_tab[32]))
model2_perseverative_tab33<-as.character(ifelse(model2_perseverative_tab[33]<0.001, "<0.001",model2_perseverative_tab[33]))
model2_perseverative_tab34<-as.character(ifelse(model2_perseverative_tab[34]<0.001, "<0.001",model2_perseverative_tab[34]))
model2_perseverative_tab35<-as.character(ifelse(model2_perseverative_tab[35]<0.001, "<0.001",model2_perseverative_tab[35]))

model3_perseverative_tab34<-as.character(ifelse(model3_perseverative_tab[34]<0.001, "<0.001",model3_perseverative_tab[34]))
model3_perseverative_tab35<-as.character(ifelse(model3_perseverative_tab[35]<0.001, "<0.001",model3_perseverative_tab[35]))
model3_perseverative_tab36<-as.character(ifelse(model3_perseverative_tab[36]<0.001, "<0.001",model3_perseverative_tab[36]))
model3_perseverative_tab37<-as.character(ifelse(model3_perseverative_tab[37]<0.001, "<0.001",model3_perseverative_tab[37]))
model3_perseverative_tab38<-as.character(ifelse(model3_perseverative_tab[38]<0.001, "<0.001",model3_perseverative_tab[38]))
model3_perseverative_tab39<-as.character(ifelse(model3_perseverative_tab[39]<0.001, "<0.001",model3_perseverative_tab[39]))
model3_perseverative_tab40<-as.character(ifelse(model3_perseverative_tab[40]<0.001, "<0.001",model3_perseverative_tab[40]))

# coeficientes con sus IC al 95%:
model1_perseverative_int<-round(intervals(model1_perseverative)$fixed,digits=2)
model2_perseverative_int<-round(intervals(model2_perseverative)$fixed,digits=2)
model3_perseverative_int<-round(intervals(model3_perseverative)$fixed,digits=2)


model1_perseverative_AIC<-summary(model1_perseverative)$AIC
model1_perseverative_sigma<-summary(model1_perseverative)$sigma
model2_perseverative_AIC<-summary(model2_perseverative)$AIC
model2_perseverative_sigma<-summary(model2_perseverative)$sigma
model3_perseverative_AIC<-summary(model3_perseverative)$AIC
model3_perseverative_sigma<-summary(model3_perseverative)$sigma

## Se genera una tabla resumen.

```

Se utilizan los resultados obtenidos para generar una tabla resumen de los resultados en las medidas consecutivas del *N� de errores perseverantes*.  

##### Tabla 3. Modelos lineales mixtos de los resultados RFFT: n� de errores perseverantes  
**Variables**       |   **Modelo 1**   |    **Modelo 2**  |    **Modelo 3** 
----------------|--------------|--------------|--------------  
__                 |**_B_, IC 95%  (p-valor)** |**_B_, IC 95%  (p-valor)**  |**_B_, IC 95%  (p-valor)**    
**Edad**            | `r model1_perseverative_int[8]`, `r model1_perseverative_int[2]` to `r model1_perseverative_int[14]` (`r model1_perseverative_tab26`) | `r model2_perseverative_int[9]`, `r model2_perseverative_int[2]` to `r model2_perseverative_int[16]` (`r model2_perseverative_tab30`) | `r model3_perseverative_int[10]`, `r model3_perseverative_int[2]` to `r model3_perseverative_int[18]` (`r model3_perseverative_tab34`)   
**Sexo: Hombre**          | Ref. | Ref. | Ref.   
**Sexo: Mujer**           | `r model1_perseverative_int[9]`, `r model1_perseverative_int[3]` to `r model1_perseverative_int[15]` (`r model1_perseverative_tab27`) | `r model2_perseverative_int[10]`, `r model2_perseverative_int[3]` to `r model2_perseverative_int[17]` (`r model2_perseverative_tab31`) | `r model3_perseverative_int[11]`, `r model3_perseverative_int[3]` to `r model3_perseverative_int[19]` (`r model3_perseverative_tab35`)   
**NE: Escuela primaria**  | Ref. | Ref. | Ref.  
**NE: Secundaria inicial**   | `r model1_perseverative_int[10]`, `r model1_perseverative_int[4]` to `r model1_perseverative_int[16]` (`r model1_perseverative_tab28`) | `r model2_perseverative_int[11]`, `r model2_perseverative_int[4]` to `r model2_perseverative_int[18]` (`r model2_perseverative_tab32`) | `r model3_perseverative_int[12]`, `r model3_perseverative_int[4]` to `r model3_perseverative_int[20]` (`r model3_perseverative_tab36`)     
**NE: Secundaria superior** | `r model1_perseverative_int[11]`, `r model1_perseverative_int[5]` to `r model1_perseverative_int[17]` (`r model1_perseverative_tab29`) | `r model2_perseverative_int[12]`, `r model2_perseverative_int[5]` to `r model2_perseverative_int[19]` (`r model2_perseverative_tab33`) | `r model3_perseverative_int[13]`, `r model3_perseverative_int[5]` to `r model3_perseverative_int[21]` (`r model3_perseverative_tab37`)  
**NE: Universitaria** | `r model1_perseverative_int[12]`, `r model1_perseverative_int[6]` to `r model1_perseverative_int[18]` (`r model1_perseverative_tab30`) | `r model2_perseverative_int[13]`, `r model2_perseverative_int[6]` to `r model2_perseverative_int[20]` (`r model2_perseverative_tab34`) | `r model3_perseverative_int[6]`, `r model3_perseverative_int[14]` to `r model3_perseverative_int[22]` (`r model3_perseverative_tab38`)  
**Medida (n� consecutivo)**|           | `r model2_perseverative_int[14]`, `r model2_perseverative_int[7]` to `r model2_perseverative_int[21]` (`r model2_perseverative_tab35`) | `r model3_perseverative_int[15]`, `r model3_perseverative_int[7]` to `r model3_perseverative_int[23]` (`r model3_perseverative_tab39`) 
**Edad x Medida (n� consecutivo)**|          |  | `r model3_perseverative_int[16]`, `r model3_perseverative_int[8]` to `r model3_perseverative_int[24]` (`r model3_perseverative_tab40`)   
_B: Coeficiente no estandarizado;  IC 95: Intervalo de confianza al 95% del coeficiente B; Ref.: Categor�a de referencia; NE: Nivel de educaci�n_  


Se comparan los 3 modelos utilizando el criterio de Akaike (AIC) que se puede obtener mediante la funci�n _anova_:  
  
```{r echo=FALSE, warning=FALSE, message=FALSE}

comp_mod1_2_perseverative<-anova(model1_perseverative,model2_perseverative)
comp_mod1_2_perseverative
comp_mod1_2_perseverative$AIC[1]
comp_mod1_2_perseverative$AIC[2]
comp_mod1_2_perseverative$`p-value`[2]
comp_mod1_2_perseverative_pv<-as.character(ifelse(comp_mod1_2_perseverative$`p-value`[2]<0.001, "<0.001",round(comp_mod1_2_perseverative$`p-value`[2],digits=3)))

comp_mod2_3_perseverative<-anova(model2_perseverative,model3_perseverative)
comp_mod2_3_perseverative
comp_mod2_3_perseverative$AIC[1]
comp_mod2_3_perseverative$AIC[2]
comp_mod2_3_perseverative$`p-value`[2]
comp_mod2_3_perseverative_pv<-as.character(ifelse(comp_mod2_3_perseverative$`p-value`[2]<0.001, "<0.001",round(comp_mod2_3_perseverative$`p-value`[2],digits=3)))

comp_mod1_3_perseverative<-anova(model1_perseverative,model3_perseverative)
comp_mod1_3_perseverative
comp_mod1_3_perseverative$AIC[1]
comp_mod1_3_perseverative$AIC[2]
comp_mod1_3_perseverative$`p-value`[2]
comp_mod1_3_perseverative_pv<-as.character(ifelse(comp_mod1_3_perseverative$`p-value`[2]<0.001, "<0.001",round(comp_mod1_3_perseverative$`p-value`[2],digits=3)))

```
Se inspeccionan la informaci�n num�rica que aporta _summary_ acerca de estos modelos:    

- El AIC del modelo 1 es `r as.character(round(model1_perseverative_AIC,digit=1))`.
- El AIC del modelo 2 es `r as.character(round(model2_perseverative_AIC,digit=1))`.
- El AIC del modelo 3 es `r as.character(round(model3_perseverative_AIC,digit=1))`.
- la varianza residual del modelo 1 es `r as.character(round(model1_perseverative_sigma,digit=3))` (la salida da 'sigma'), que es la estimaci�n de la varianza de los residuos (como std.dev), por lo tanto reporta la variabilidad entre observaciones (_"within-participante variability"_), para el modelo 2 toma el valor  `r as.character(round(model2_perseverative_sigma,digit=3))` y para el modelo 3:  `r as.character(round(model3_perseverative_sigma,digit=3))`.   

Al comparar el modelo 1 con el 2, mediante los valores del criterio Akaike (AIC) se obtiene una diferencia de `r round(comp_mod1_2_perseverative$AIC[1]-comp_mod1_2_perseverative$AIC[2],digits=2)`, que no resulta estad�sticamente significativa en beneficio del modelo 2, `r comp_mod1_2_perseverative_pv`.  
Al comparar el modelo 2 con el 3, mediante los valores del criterio Akaike (AIC) se obtiene una diferencia de `r round(comp_mod2_3_perseverative$AIC[1]-comp_mod2_3_perseverative$AIC[2],digits=2)`, que no resulta estad�sticamente significativa en beneficio del modelo 3, `r comp_mod2_3_perseverative_pv`.  
Al comparar el modelo 1 con el 3, mediante los valores del criterio Akaike (AIC) se obtiene una diferencia de `r round(comp_mod1_3_perseverative$AIC[1]-comp_mod1_3_perseverative$AIC[2],digits=2)`, que no resulta estad�sticamente significativa en beneficio del modelo 3, `r comp_mod1_3_perseverative_pv`.  
  
En este caso el modelo que se selecciona para comparar con las bases de datos generadas con datos faltantes es el modelo 1.  


****

## 8.	 REPRODUCCI�N DE LOS AN�LISIS CON 10% DE DATOS FALTANTES   

#         #

### 8.2	 Reproducci�n de los an�lisis: Eliminaci�n de los casos (listwise) (10%)   

Se utilizan los dataframes generados anteriormente mediante el m�todo de _eliminaci�n de los casos con datos faltantes (listwise)_ para reprodcucir el an�lisis original, en el caso de 10% de datos faltantes.     

**Perfiles de los valores medios**  
Para esta secci�n se utiliza la BBDD en formato long original con datos faltantes. Se analizan los valores medios y medianos de _dise�os �nicos_ y de _errores perseverantes_ en cada visita y se presentan junto con el n� de participantes analizables en cada visita. Para reproducir los an�lisis del art�culo original ( _Marlise E. A. van Eersel et al._), se utilizan el an�lisis de varianza (ANOVA) y el test de Kruskal Wallis, para analizar el cambio a lo largo de las 3 mediciones en el _n� de dise�os �nicos_ y el _n� de errores perseverantes_.   

```{r echo=FALSE, warning=FALSE, message=FALSE}
stats_unique_sinNA <- numSummary(RFFT_unique_sinNA[,"Unique", drop=FALSE], groups=RFFT_unique_sinNA$Measurement, statistics=c("mean", "sd", "IQR", "quantiles"), quantiles=c(0,.25,.5,.75,1))
stats_unique_sinNA
stats_perseverative_sinNA <- numSummary(RFFT_perseverative_sinNA[,"Perseverative", drop=FALSE], groups=RFFT_perseverative_sinNA$Measurement, statistics=c("mean", "sd", "IQR", "quantiles"), quantiles=c(0,.25,.5,.75,1))
## Se utiliza la funci�n aov para obtener el an�lis de varianza que permite comparar las medias entre los 3 tiempos para el N� de dise�os �nicos.
aov_unique_sinNA <- summary(aov(Unique ~ Measurement2, data=RFFT_unique_sinNA))
aov_unique_sinNA
kw_perseverative_sinNA<-kruskal.test(Perseverative ~ Measurement2, data=RFFT_perseverative_sinNA)
kw_perseverative_sinNA
## se utiliza el test de Kruskal Wallis para que permite comparar las medianas entre los 3 tiempos para el N� de errores perseverantes.
```

Se utilizan los resultados obtenidos para generar una tabla resumen de los resultados en las medidas consecutivas.

##### Tabla 4. Resumen resultados medidas consecutivas (Eliminaci�n de los casos (listwise))   
**N� de dise�os �nicos, media(DE)**         | **1� (2003-06)** | **2� (2006-08)** | **3� (2008-12)** | **p-valor (anova)**  
----------------------------------------|--------------|--------------|--------------|--------------
  Todos los participantes                     | `r round(stats_unique_sinNA$table[1],digits=0)` (`r round(stats_unique_sinNA$table[4],digits=0)`) | `r round(stats_unique_sinNA$table[2],digits=0)` (`r round(stats_unique_sinNA$table[5],digits=0)`) | `r round(stats_unique_sinNA$table[3],digits=0)` (`r round(stats_unique_sinNA$table[6],digits=0)`) | p<0.001  
  **N� errores perseverantes, mediana(RIQ)** | **1� (2003-06)** | **2� (2006-08)** | **3� (2008-12)** | **p-valor (K-W)**  
  Todos los participantes                     | `r round(stats_perseverative_sinNA$table[16],digits=0)` (`r round(stats_perseverative_sinNA$table[13],digits=0)`-`r round(stats_perseverative_sinNA$table[19],digits=0)`) | `r round(stats_perseverative_sinNA$table[17],digits=0)` (`r round(stats_perseverative_sinNA$table[14],digits=0)`-`r round(stats_perseverative_sinNA$table[20],digits=0)`) | `r round(stats_perseverative_sinNA$table[18],digits=0)` (`r round(stats_perseverative_sinNA$table[15],digits=0)`-`r round(stats_perseverative_sinNA$table[21],digits=0)`) | `r round(kw_perseverative_sinNA$p.value,digits=3)`    
_DE: Desviaci�n est�ndard; RIQ: rango inter-cuart�lico; K-W: Kruskal-Wallis_


Para reproducir los resultados obtenidos por los autores se utiliza la funci�n _lme_ (paquete _nlme_) que permite ajustar los efectos de modelos lineales mixtos y analizar los datos longitudinales. Los resultados obtenidos son muy similares a los que se presentan en el art�culo (diferencias m�nimas en algunos estimadores).  






#### 8.2.1	 Reproducci�n de los an�lisis. Modelo n� dise�os �nicos: Eliminaci�n de los casos (listwise) (10%)
  
  
  Se ajusta el modelo 3 especificado en el art�culo: se incluyen _Edad_, _G�nero_, _Nivel de educaci�n_, _Medida (n� consecutivo)_ y la _interacci�n entre edad y medida (n� consecutivo)_.    

```{r echo=FALSE, warning=FALSE, message=FALSE}

## Se ajusta el modelo especificado en el art�culo.
model3_unique_sinNA<-lme(Unique~Age+Gender+Education+Measurement2+Age*Measurement2,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_unique_sinNA,control=list(opt="optim"))
model3_unique_sinNA_tab<-round(summary(model3_unique_sinNA)$tTable,dig=3)
model3_unique_sinNA_AIC<-summary(model3_unique_sinNA)$AIC
model3_unique_sinNA_sigma<-summary(model3_unique_sinNA)$sigma
# estimadores y p-valores en el modelo:
model3_unique_sinNA_tab34<-as.character(ifelse(model3_unique_sinNA_tab[34]<0.001, "<0.001",model3_unique_sinNA_tab[34]))
model3_unique_sinNA_tab35<-as.character(ifelse(model3_unique_sinNA_tab[35]<0.001, "<0.001",model3_unique_sinNA_tab[35]))
model3_unique_sinNA_tab36<-as.character(ifelse(model3_unique_sinNA_tab[36]<0.001, "<0.001",model3_unique_sinNA_tab[36]))
model3_unique_sinNA_tab37<-as.character(ifelse(model3_unique_sinNA_tab[37]<0.001, "<0.001",model3_unique_sinNA_tab[37]))
model3_unique_sinNA_tab38<-as.character(ifelse(model3_unique_sinNA_tab[38]<0.001, "<0.001",model3_unique_sinNA_tab[38]))
model3_unique_sinNA_tab39<-as.character(ifelse(model3_unique_sinNA_tab[39]<0.001, "<0.001",model3_unique_sinNA_tab[39]))
model3_unique_sinNA_tab40<-as.character(ifelse(model3_unique_sinNA_tab[40]<0.001, "<0.001",model3_unique_sinNA_tab[40]))

# coeficientes con sus IC al 95%:
model3_unique_sinNA_int<-round(intervals(model3_unique_sinNA)$fixed,digits=2)

## Se genera una tabla resumen.

```

Se utilizan los resultados obtenidos para generar una tabla resumen de los resultados en las medidas consecutivas del *N� de dise�os �nicos*.

##### Tabla 5. Modelos lineales mixtos de los resultados RFFT: n� de dise�os �nicos (Eliminaci�n de los casos (listwise))   
**Variables**       |            **Modelo 3** 
----------------|------------------------------------  
__              |**_B_ (DE), IC 95%  (p-valor)**    
**Edad**            |  `r model3_unique_sinNA_int[10]` (`r model3_unique_sinNA_tab[10]`), `r model3_unique_sinNA_int[2]` to `r model3_unique_sinNA_int[18]` (`r model3_unique_sinNA_tab34`)   
  **Sexo: Hombre**          | Ref.   
**Sexo: Mujer**           |  `r model3_unique_sinNA_int[11]` (`r model3_unique_sinNA_tab[11]`), `r model3_unique_sinNA_int[3]` to `r model3_unique_sinNA_int[19]` (`r model3_unique_sinNA_tab35`)   
  **NE: Escuela primaria**  | Ref.  
**NE: Secundaria inicial**   |  `r model3_unique_sinNA_int[12]` (`r model3_unique_sinNA_tab[12]`), `r model3_unique_sinNA_int[4]` to `r model3_unique_sinNA_int[20]` (`r model3_unique_sinNA_tab36`)     
**NE: Secundaria superior** |  `r model3_unique_sinNA_int[13]` (`r model3_unique_sinNA_tab[13]`), `r model3_unique_sinNA_int[5]` to `r model3_unique_sinNA_int[21]` (`r model3_unique_sinNA_tab37`)  
**NE: Universitaria** | `r model3_unique_sinNA_int[6]` (`r model3_unique_sinNA_tab[14]`), `r model3_unique_sinNA_int[14]` to `r model3_unique_sinNA_int[22]` (`r model3_unique_sinNA_tab38`)  
  **Medida (n� consecutivo)** | `r model3_unique_sinNA_int[15]` (`r model3_unique_sinNA_tab[15]`), `r model3_unique_sinNA_int[7]` to `r model3_unique_sinNA_int[23]` (`r model3_unique_sinNA_tab39`) 
  **Edad x Medida (n� consecutivo)** | `r model3_unique_sinNA_int[16]` (`r model3_unique_sinNA_tab[16]`), `r model3_unique_sinNA_int[8]` to `r model3_unique_sinNA_int[24]` (`r model3_unique_sinNA_tab40`)   
_B: Coeficiente no estandarizado; DE: Desviaci�n est�ndard; IC 95: Intervalo de confianza al 95% del coeficiente B; Ref.: Categor�a de referencia; NE: Nivel de educaci�n_


Se inspecciona la informaci�n num�rica que aporta _summary_ acerca de este modelo:    

- El AIC del modelo es `r as.character(round(model3_unique_sinNA_AIC,digit=1))`.   
- la varianza residual es `r as.character(round(model3_unique_sinNA_sigma,digit=3))` (la salida da 'sigma'), que es la estimaci�n de la varianza de los residuos (como std.dev), por lo tanto reporta la variabilidad entre observaciones (_"within-participante variability"_).  


****

  #         #
  

#### 8.2.2	 Reproducci�n de los an�lisis. Modelos n� de errores perseverantes: Eliminaci�n de los casos (listwise) (10%)      

Se ajusta el 1� modelo especificado en el art�culo, se incluyen: _Edad_, _G�nero_ y _Nivel de educaci�n_.  


```{r echo=FALSE, warning=FALSE, message=FALSE}

model1_perseverative_sinNA<-lme(Perseverative~Age+Gender+Education,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_perseverative_sinNA,control=list(opt="optim"))
model1_perseverative_sinNA_tab<-round(summary(model1_perseverative_sinNA)$tTable,dig=3)
model1_perseverative_sinNA_AIC<-summary(model1_perseverative_sinNA)$AIC
model1_perseverative_sinNA_sigma<-summary(model1_perseverative_sinNA)$sigma

# estimadores y p-valores en el modelo:
model1_perseverative_sinNA_tab26<-as.character(ifelse(model1_perseverative_sinNA_tab[26]<0.001, "<0.001",model1_perseverative_sinNA_tab[26]))
model1_perseverative_sinNA_tab27<-as.character(ifelse(model1_perseverative_sinNA_tab[27]<0.001, "<0.001",model1_perseverative_sinNA_tab[27]))
model1_perseverative_sinNA_tab28<-as.character(ifelse(model1_perseverative_sinNA_tab[28]<0.001, "<0.001",model1_perseverative_sinNA_tab[28]))
model1_perseverative_sinNA_tab29<-as.character(ifelse(model1_perseverative_sinNA_tab[29]<0.001, "<0.001",model1_perseverative_sinNA_tab[29]))
model1_perseverative_sinNA_tab30<-as.character(ifelse(model1_perseverative_sinNA_tab[30]<0.001, "<0.001",model1_perseverative_sinNA_tab[30]))



# coeficientes con sus IC al 95%:
model1_perseverative_sinNA_int<-round(intervals(model1_perseverative_sinNA)$fixed,digits=2)


## Se genera una tabla resumen.

```

Se utilizan los resultados obtenidos para generar una tabla resumen de los resultados en las medidas consecutivas del *N� de errores perseverantes*.  

##### Tabla 6. Modelos lineales mixtos de los resultados RFFT: n� de errores perseverantes (Eliminaci�n de los casos (listwise))   
**Variables**       |      **Modelo 1**   
--------------------|--------------------------------------- 
__ |   **_B_ (DE), IC 95%  (p-valor)**    
**Edad**            |  `r model1_perseverative_sinNA_int[8]` (`r model1_perseverative_sinNA_tab[8]`), `r model1_perseverative_sinNA_int[2]` to `r model1_perseverative_sinNA_int[18]` (`r model1_perseverative_sinNA_tab26`)   
  **Sexo: Hombre**  | Ref.   
**Sexo: Mujer**     | `r model1_perseverative_sinNA_int[9]` (`r model1_perseverative_sinNA_tab[9]`), `r model1_perseverative_sinNA_int[3]` to `r model1_perseverative_sinNA_int[15]` (`r model1_perseverative_sinNA_tab27`)  
**NE: Escuela primaria**  | Ref.  
**NE: Secundaria inicial**   | `r model1_perseverative_sinNA_int[10]` (`r model1_perseverative_sinNA_tab[10]`), `r model1_perseverative_sinNA_int[4]` to `r model1_perseverative_sinNA_int[16]` (`r model1_perseverative_sinNA_tab28`)     
**NE: Secundaria superior** | `r model1_perseverative_sinNA_int[11]`(`r model1_perseverative_sinNA_tab[11]`), `r model1_perseverative_sinNA_int[5]` to `r model1_perseverative_sinNA_int[17]` (`r model1_perseverative_sinNA_tab29`) 
**NE: Universitaria** | `r model1_perseverative_sinNA_int[12]` (`r model1_perseverative_sinNA_tab[12]`), `r model1_perseverative_sinNA_int[6]` to `r model1_perseverative_sinNA_int[18]` (`r model1_perseverative_sinNA_tab30`)  
_B: Coeficiente no estandarizado;  IC 95: Intervalo de confianza al 95% del coeficiente B; Ref.: Categor�a de referencia; NE: Nivel de educaci�n_  
 

Se inspecciona la informaci�n num�rica que aporta _summary_ acerca de este modelo:    

- El AIC del modelo es `r as.character(round(model1_perseverative_sinNA_AIC,digit=1))`.   
- la varianza residual es `r as.character(round(model1_perseverative_sinNA_sigma,digit=3))` (la salida da 'sigma'), que es la estimaci�n de la varianza de los residuos (como std.dev), por lo tanto reporta la variabilidad entre observaciones (_"within-participante variability"_).   


****

#         #

### 8.3	 Reproducci�n de los an�lisis: Media  (10%)   

Se utilizan los dataframes generados anteriormente mediante el m�todo de *Imputaci�n por media *, que reemplaza los datos faltantes por el valor medio del resto de datos conocidos en de la variable. Y con los nuevos dataframes se reproducen los _mejores_ modelos del an�lisis original. En primer lugar se transponen los datos de formato _wide_ a formato _long_.    


```{r echo=FALSE, warning=FALSE, message=FALSE}

## Se transpone el data frame: de wide a long para los dise�os �nicos.
## se a�ade el casenr y se transpone
Casenr<-1:2515
RFFT_wide_unique_MD_imp2<-data.frame(Casenr,RFFT_wide_unique_MD_imp)
RFFT_long_unique_MD_imp <- melt(RFFT_wide_unique_MD_imp2, id.vars = c("Casenr","Age","Gender","Education"))
# RFFT_long_unique_MD_imp[1:10,]
names(RFFT_long_unique_MD_imp)<-(c("Casenr", "Age","Gender","Education","Measurement","Unique"))

# Se ordena por sujeto y visita (time.f)

RFFT_long_unique_MD_imp <- with(RFFT_long_unique_MD_imp, RFFT_long_unique_MD_imp[order(Casenr, Measurement, decreasing=FALSE), ])
# RFFT_long_unique_MD_imp[1:12,]

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

# RFFT_long_unique_MD_imp$Gender <- factor(RFFT_long_unique_MD_imp$Gender,
#                                 levels = c(1,2),
#                                 labels = c("Hombre", "Mujer")) 

# RFFT_long_unique_MD_imp$Education <- factor(RFFT_long_unique_MD_imp$Education,
#                                    levels = c(1,2,3,4),
#                                    labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))


# Se recodifica los valores de la variable Measurement

RFFT_long_unique_MD_imp$Measurement<-as.character(RFFT_long_unique_MD_imp$Measurement)
RFFT_long_unique_MD_imp$Measurement[RFFT_long_unique_MD_imp$Measurement=="Unique.mcar1"] <- "Measurement 1"
RFFT_long_unique_MD_imp$Measurement[RFFT_long_unique_MD_imp$Measurement=="Unique.mcar2"] <- "Measurement 2"
RFFT_long_unique_MD_imp$Measurement[RFFT_long_unique_MD_imp$Measurement=="Unique.mcar3"] <- "Measurement 3"


# Se genera la variable Measurement como num�rica.
RFFT_long_unique_MD_imp$Measurement2<-Recode(RFFT_long_unique_MD_imp$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_long_unique_MD_imp$Measurement2<-as.numeric(RFFT_long_unique_MD_imp$Measurement2)


## Se transpone el data frame: de wide a long  para los errores perseverantes.
## se a�ade el casenr y se transpone
Casenr<-1:2515
RFFT_wide_unique_MD_imp2<-data.frame(Casenr,RFFT_wide_unique_MD_imp)
RFFT_long_unique_MD_imp <- melt(RFFT_wide_unique_MD_imp2, id.vars = c("Casenr","Age","Gender","Education"))
#RFFT_long_unique_MD_imp[1:10,]
names(RFFT_long_unique_MD_imp)<-(c("Casenr", "Age","Gender","Education","Measurement","Unique"))

# Se ordena por sujeto y visita (time.f)

RFFT_long_unique_MD_imp <- with(RFFT_long_unique_MD_imp, RFFT_long_unique_MD_imp[order(Casenr, Measurement, decreasing=FALSE), ])

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

# RFFT_long_unique_MD_imp$Gender <- factor(RFFT_long_unique_MD_imp$Gender,
#                                 levels = c(1,2),
#                                 labels = c("Hombre", "Mujer")) 

# RFFT_long_unique_MD_imp$Education <- factor(RFFT_long_unique_MD_imp$Education,
#                                    levels = c(1,2,3,4),
#                                    labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))


# Se recodifica los valores de la variable Measurement

RFFT_long_unique_MD_imp$Measurement<-as.character(RFFT_long_unique_MD_imp$Measurement)
RFFT_long_unique_MD_imp$Measurement[RFFT_long_unique_MD_imp$Measurement=="Unique.mcar1"] <- "Measurement 1"
RFFT_long_unique_MD_imp$Measurement[RFFT_long_unique_MD_imp$Measurement=="Unique.mcar2"] <- "Measurement 2"
RFFT_long_unique_MD_imp$Measurement[RFFT_long_unique_MD_imp$Measurement=="Unique.mcar3"] <- "Measurement 3"


# Se genera la variable Measurement como num�rica.
RFFT_long_unique_MD_imp$Measurement2<-Recode(RFFT_long_unique_MD_imp$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_long_unique_MD_imp$Measurement2<-as.numeric(RFFT_long_unique_MD_imp$Measurement2)
# RFFT_long_unique_MD_imp[1:12,]


## Se transpone el data frame: de wide a long  para los errores perseverantes.
## se a�ade el casenr y se transpone
Casenr<-1:2515
RFFT_wide_perseverative_MD_imp2<-data.frame(Casenr,RFFT_wide_perseverative_MD_imp)
RFFT_long_perseverative_MD_imp <- melt(RFFT_wide_perseverative_MD_imp2, id.vars = c("Casenr","Age","Gender","Education"))
#RFFT_long_perseverative_MD_imp[1:10,]
names(RFFT_long_perseverative_MD_imp)<-(c("Casenr", "Age","Gender","Education","Measurement","Perseverative"))

# Se ordena por sujeto y visita (time.f)

RFFT_long_perseverative_MD_imp <- with(RFFT_long_perseverative_MD_imp, RFFT_long_perseverative_MD_imp[order(Casenr, Measurement, decreasing=FALSE), ])

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

# RFFT_long_perseverative_MD_imp$Gender <- factor(RFFT_long_perseverative_MD_imp$Gender,
#                                 levels = c(1,2),
#                                 labels = c("Hombre", "Mujer")) 

# RFFT_long_perseverative_MD_imp$Education <- factor(RFFT_long_perseverative_MD_imp$Education,
#                                    levels = c(1,2,3,4),
#                                    labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))


# Se recodifica los valores de la variable Measurement

RFFT_long_perseverative_MD_imp$Measurement<-as.character(RFFT_long_perseverative_MD_imp$Measurement)
RFFT_long_perseverative_MD_imp$Measurement[RFFT_long_perseverative_MD_imp$Measurement=="Perseverative.mcar1"] <- "Measurement 1"
RFFT_long_perseverative_MD_imp$Measurement[RFFT_long_perseverative_MD_imp$Measurement=="Perseverative.mcar2"] <- "Measurement 2"
RFFT_long_perseverative_MD_imp$Measurement[RFFT_long_perseverative_MD_imp$Measurement=="Perseverative.mcar3"] <- "Measurement 3"


# Se genera la variable Measurement como num�rica.
RFFT_long_perseverative_MD_imp$Measurement2<-Recode(RFFT_long_perseverative_MD_imp$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_long_perseverative_MD_imp$Measurement2<-as.numeric(RFFT_long_perseverative_MD_imp$Measurement2)
# RFFT_long_perseverative_MD_imp[1:12,]

```

**Perfiles de los valores medios**    
Para esta secci�n se utiliza la BBDD en formato long con datos imputados. Se analizan los valores medios y medianos de _dise�os �nicos_ y de _errores perseverantes_ en cada visita y se presentan junto con el n� de participantes analizables en cada visita. Para reproducir los an�lisis del art�culo original ( _Marlise E. A. van Eersel et al._), se utilizan el an�lisis de varianza (ANOVA) y el test de Kruskal Wallis, para analizar el cambio a lo largo de las 3 mediciones en el _n� de dise�os �nicos_ y el _n� de errores persevarentes_.   

```{r echo=FALSE, warning=FALSE, message=FALSE}
stats_unique_MD <- numSummary(RFFT_long_unique_MD_imp[,"Unique", drop=FALSE], groups=RFFT_long_unique_MD_imp$Measurement, statistics=c("mean", "sd", "IQR", "quantiles"), quantiles=c(0,.25,.5,.75,1))
stats_unique_MD
stats_perseverative_MD <- numSummary(RFFT_long_perseverative_MD_imp[,"Perseverative", drop=FALSE], groups=RFFT_long_perseverative_MD_imp$Measurement, statistics=c("mean", "sd", "IQR", "quantiles"), quantiles=c(0,.25,.5,.75,1))
stats_perseverative_MD
## Se utiliza la funci�n aov para obtener el an�lis de varianza que permite comparar las medias entre los 3 tiempos para el N� de dise�os �nicos.
aov_unique_MD <- summary(aov(Unique ~ Measurement2, data=RFFT_long_unique_MD_imp))
aov_unique_MD
kw_perseverative_MD<-kruskal.test(Perseverative ~ Measurement2, data=RFFT_long_perseverative_MD_imp)
kw_perseverative_MD

## se utiliza el test de Kruskal Wallis para que permite comparar las medianas entre los 3 tiempos para el N� de errores perseverantes.
```

Se utilizan los resultados obtenidos para generar una tabla resumen de los resultados en las medidas consecutivas.   

##### Tabla 7. Resumen resultados medidas consecutivas (reemplazamiento por la media)   
**N� de dise�os �nicos, media(DE)**         | **1� (2003-06)** | **2� (2006-08)** | **3� (2008-12)** | **p-valor (anova)**  
----------------------------------------|--------------|--------------|--------------|--------------
  Todos los participantes                     | `r round(stats_unique_MD$table[1],digits=0)` (`r round(stats_unique_MD$table[4],digits=0)`) | `r round(stats_unique_MD$table[2],digits=0)` (`r round(stats_unique_MD$table[5],digits=0)`) | `r round(stats_unique_MD$table[3],digits=0)` (`r round(stats_unique_MD$table[6],digits=0)`) | p<0.001  
  **N� errores perseverantes, mediana(RIQ)** | **1� (2003-06)** | **2� (2006-08)** | **3� (2008-12)** | **p-valor (K-W)**  
  Todos los participantes                     | `r round(stats_perseverative_MD$table[16],digits=0)` (`r round(stats_perseverative_MD$table[13],digits=0)`-`r round(stats_perseverative_MD$table[19],digits=0)`) | `r round(stats_perseverative_MD$table[17],digits=0)` (`r round(stats_perseverative_MD$table[14],digits=0)`-`r round(stats_perseverative_MD$table[20],digits=0)`) | `r round(stats_perseverative_MD$table[18],digits=0)` (`r round(stats_perseverative_MD$table[15],digits=0)`-`r round(stats_perseverative_MD$table[21],digits=0)`) | `r round(kw_perseverative_MD$p.value,digits=3)`   
_DE: Desviaci�n est�ndard; RIQ: rango inter-cuart�lico; K-W: Kruskal-Wallis_


Para reproducir los resultados obtenidos por los autores se utiliza la funci�n _lme_ (paquete _nlme_) que permite ajustar los efectos de modelos lineales mixtos y analizar los datos longitudinales. Los resultados obtenidos son muy similares a los que se presentan en el art�culo (diferencias m�nimas en algunos estimadores).   


****
  
#         #

#### 8.3.1	 Reproducci�n de los an�lisis. Modelo n� dise�os �nicos: Media (10%)
  

Se ajusta el modelo 3 especificado en el art�culo: se incluyen _Edad_, _G�nero_, _Nivel de educaci�n_, _Medida (n� consecutivo)_ y la _interacci�n entre edad y medida (n� consecutivo)_.    

```{r echo=FALSE, warning=FALSE, message=FALSE}

## Se genera una nueva variable con los datos de los medidas pero como factor
RFFT_long_unique_MD_imp$Measurement2<-as.numeric(RFFT_long_unique_MD_imp$Measurement2)
# RFFT_long_unique_MD_imp[1:10,]
## Se ajusta el modelo especificado en el art�culo.
model3_unique_MD<-lme(Unique~Age+Gender+Education+Measurement2+Age*Measurement2,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_long_unique_MD_imp,control=list(opt="optim"))
model3_unique_MD<-lme(Unique~Age+Gender+Education+Measurement2+Age*Measurement2,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_long_unique_MD_imp,control=list(opt="optim"))
model3_unique_MD_tab<-round(summary(model3_unique_MD)$tTable,dig=3)
model3_unique_MD_AIC<-summary(model3_unique_MD)$AIC
model3_unique_MD_sigma<-summary(model3_unique_MD)$sigma
# estimadores y p-valores en el modelo:
model3_unique_MD_tab34<-as.character(ifelse(model3_unique_MD_tab[34]<0.001, "<0.001",model3_unique_MD_tab[34]))
model3_unique_MD_tab35<-as.character(ifelse(model3_unique_MD_tab[35]<0.001, "<0.001",model3_unique_MD_tab[35]))
model3_unique_MD_tab36<-as.character(ifelse(model3_unique_MD_tab[36]<0.001, "<0.001",model3_unique_MD_tab[36]))
model3_unique_MD_tab37<-as.character(ifelse(model3_unique_MD_tab[37]<0.001, "<0.001",model3_unique_MD_tab[37]))
model3_unique_MD_tab38<-as.character(ifelse(model3_unique_MD_tab[38]<0.001, "<0.001",model3_unique_MD_tab[38]))
model3_unique_MD_tab39<-as.character(ifelse(model3_unique_MD_tab[39]<0.001, "<0.001",model3_unique_MD_tab[39]))
model3_unique_MD_tab40<-as.character(ifelse(model3_unique_MD_tab[40]<0.001, "<0.001",model3_unique_MD_tab[40]))

# coeficientes con sus IC al 95%:
model3_unique_MD_int<-round(intervals(model3_unique_MD)$fixed,digits=2)

## Se genera una tabla resumen.

```

Se utilizan los resultados obtenidos para generar una tabla resumen de los resultados en las medidas consecutivas del *N� de dise�os �nicos*.

##### Tabla 8. Modelos lineales mixtos de los resultados RFFT: n� de dise�os �nicos (Media)   
**Variables**       |            **Modelo 3** 
----------------|------------------------------------  
__              |**_B_ (DE), IC 95%  (p-valor)**    
**Edad**            |  `r model3_unique_MD_int[10]` (`r model3_unique_MD_tab[10]`), `r model3_unique_MD_int[2]` to `r model3_unique_MD_int[18]` (`r model3_unique_MD_tab34`)   
  **Sexo: Hombre**          | Ref.   
**Sexo: Mujer**           |  `r model3_unique_MD_int[11]` (`r model3_unique_MD_tab[11]`), `r model3_unique_MD_int[3]` to `r model3_unique_MD_int[19]` (`r model3_unique_MD_tab35`)   
  **NE: Escuela primaria**  | Ref.  
**NE: Secundaria inicial**   |  `r model3_unique_MD_int[12]` (`r model3_unique_MD_tab[12]`), `r model3_unique_MD_int[4]` to `r model3_unique_MD_int[20]` (`r model3_unique_MD_tab36`)     
**NE: Secundaria superior** |  `r model3_unique_MD_int[13]` (`r model3_unique_MD_tab[13]`), `r model3_unique_MD_int[5]` to `r model3_unique_MD_int[21]` (`r model3_unique_MD_tab37`)  
**NE: Universitaria** | `r model3_unique_MD_int[6]` (`r model3_unique_MD_tab[14]`), `r model3_unique_MD_int[14]` to `r model3_unique_MD_int[22]` (`r model3_unique_MD_tab38`)  
  **Medida (n� consecutivo)** | `r model3_unique_MD_int[15]` (`r model3_unique_MD_tab[15]`), `r model3_unique_MD_int[7]` to `r model3_unique_MD_int[23]` (`r model3_unique_MD_tab39`) 
  **Edad x Medida (n� consecutivo)** | `r model3_unique_MD_int[16]` (`r model3_unique_MD_tab[16]`), `r model3_unique_MD_int[8]` to `r model3_unique_MD_int[24]` (`r model3_unique_MD_tab40`)   
_B: Coeficiente no estandarizado; DE: Desviaci�n est�ndard; IC 95: Intervalo de confianza al 95% del coeficiente B; Ref.: Categor�a de referencia; NE: Nivel de educaci�n_


Se inspecciona la informaci�n num�rica que aporta _summary_ acerca de este modelo:    

- El AIC del modelo es `r as.character(round(model3_unique_MD_AIC,digit=1))`.   
- la varianza residual es `r as.character(round(model3_unique_MD_sigma,digit=3))` (la salida da 'sigma'), que es la estimaci�n de la varianza de los residuos (como std.dev), por lo tanto reporta la variabilidad entre observaciones (_"within-participante variability"_).  


****

  #         #
  

#### 8.3.2	 Reproducci�n de los an�lisis. Modelos n� de errores perseverantes: Media (10%)   

Se ajusta el 1� modelo especificado en el art�culo, se incluyen: _Edad_, _G�nero_ y _Nivel de educaci�n_.     

```{r echo=FALSE, warning=FALSE, message=FALSE}

model1_perseverative_MD<-lme(Perseverative~Age+Gender+Education,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_long_perseverative_MD_imp,control=list(opt="optim"))
model1_perseverative_MD_tab<-round(summary(model1_perseverative_MD)$tTable,dig=3)
model1_perseverative_MD_AIC<-summary(model1_perseverative_MD)$AIC
model1_perseverative_MD_sigma<-summary(model1_perseverative_MD)$sigma

# estimadores y p-valores en el modelo:
model1_perseverative_MD_tab26<-as.character(ifelse(model1_perseverative_MD_tab[26]<0.001, "<0.001",model1_perseverative_MD_tab[26]))
model1_perseverative_MD_tab27<-as.character(ifelse(model1_perseverative_MD_tab[27]<0.001, "<0.001",model1_perseverative_MD_tab[27]))
model1_perseverative_MD_tab28<-as.character(ifelse(model1_perseverative_MD_tab[28]<0.001, "<0.001",model1_perseverative_MD_tab[28]))
model1_perseverative_MD_tab29<-as.character(ifelse(model1_perseverative_MD_tab[29]<0.001, "<0.001",model1_perseverative_MD_tab[29]))
model1_perseverative_MD_tab30<-as.character(ifelse(model1_perseverative_MD_tab[30]<0.001, "<0.001",model1_perseverative_MD_tab[30]))



# coeficientes con sus IC al 95%:
# model1_perseverative_MD_int<-round(intervals(model1_perseverative_MD)$fixed,digits=2)


## Se genera una tabla resumen.

```

Se utilizan los resultados obtenidos para generar una tabla resumen de los resultados en las medidas consecutivas del *N� de errores perseverantes*.  

##### Tabla 9. Modelos lineales mixtos de los resultados RFFT: n� de errores perseverantes (Media)   
**Variables**       |      **Modelo 1**   
--------------------|--------------------------------------- 
__ |   **_B_ (DE), (p-valor)**    
**Edad**            |  `r model1_perseverative_MD_tab[2]` (`r model1_perseverative_MD_tab[8]`), (`r model1_perseverative_MD_tab26`)   
  **Sexo: Hombre**  | Ref.   
**Sexo: Mujer**     | `r model1_perseverative_MD_tab[3]` (`r model1_perseverative_MD_tab[9]`), (`r model1_perseverative_MD_tab27`)  
**NE: Escuela primaria**  | Ref.  
**NE: Secundaria inicial**   | `r model1_perseverative_MD_tab[4]` (`r model1_perseverative_MD_tab[10]`), (`r model1_perseverative_MD_tab28`)     
**NE: Secundaria superior** | `r model1_perseverative_MD_tab[5]`(`r model1_perseverative_MD_tab[11]`), (`r model1_perseverative_MD_tab29`) 
**NE: Universitaria** | `r model1_perseverative_MD_tab[6]` (`r model1_perseverative_MD_tab[12]`), (`r model1_perseverative_MD_tab30`)  
_B: Coeficiente no estandarizado;  IC 95: Intervalo de confianza al 95% del coeficiente B; Ref.: Categor�a de referencia; NE: Nivel de educaci�n_  
_Para este modelo no se pudieron calcular los IC al 95% por \"Non-positive definite approximate variance-covariance\"_ 

Se inspecciona la informaci�n num�rica que aporta _summary_ acerca de este modelo:    

- El AIC del modelo es `r as.character(round(model1_perseverative_MD_AIC,digit=1))`.   
- la varianza residual es `r as.character(round(model1_perseverative_MD_sigma,digit=3))` (la salida da 'sigma'), que es la estimaci�n de la varianza de los residuos (como std.dev), por lo tanto reporta la variabilidad entre observaciones (_"within-participante variability"_).   
 

****


#         #
  
  
### 8.4	 Reproducci�n de los an�lisis: Regresi�n (10%)

Se utilizan los dataframes generados anteriormente mediante el m�todo de *Imputaci�n por regresi�n simple (media condicional)*, que reemplaza los datos faltantes por el valor predicho a partir de la aplicaci�n de la regresi�n simple sobre el resto de datos conocidos en el sujeto. Con los nuevos dataframes se reproducen los _mejores_ modelos del an�lisis original. En primer lugar se transponen los datos de formato _wide_ a formato _long_.    


```{r echo=FALSE, warning=FALSE, message=FALSE}

## Se transpone el data frame: de wide a long para los dise�os �nicos.
## se a�ade el casenr y se transpone
Casenr<-1:2515
RFFT_wide_unique_RS_imp2<-data.frame(Casenr,RFFT_wide_unique_RS_imp)
RFFT_long_unique_RS_imp <- melt(RFFT_wide_unique_RS_imp2, id.vars = c("Casenr","Age","Gender","Education"))
# RFFT_long_unique_RS_imp[1:10,]
names(RFFT_long_unique_RS_imp)<-(c("Casenr", "Age","Gender","Education","Measurement","Unique"))

# Se ordena por sujeto y visita (time.f)

RFFT_long_unique_RS_imp <- with(RFFT_long_unique_RS_imp, RFFT_long_unique_RS_imp[order(Casenr, Measurement, decreasing=FALSE), ])
# RFFT_long_unique_RS_imp[1:12,]

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

# RFFT_long_unique_RS_imp$Gender <- factor(RFFT_long_unique_RS_imp$Gender,
#                                 levels = c(1,2),
#                                 labels = c("Hombre", "Mujer")) 

# RFFT_long_unique_RS_imp$Education <- factor(RFFT_long_unique_RS_imp$Education,
#                                    levels = c(1,2,3,4),
#                                    labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))


# Se recodifica los valores de la variable Measurement

RFFT_long_unique_RS_imp$Measurement<-as.character(RFFT_long_unique_RS_imp$Measurement)
RFFT_long_unique_RS_imp$Measurement[RFFT_long_unique_RS_imp$Measurement=="Unique.mcar1"] <- "Measurement 1"
RFFT_long_unique_RS_imp$Measurement[RFFT_long_unique_RS_imp$Measurement=="Unique.mcar2"] <- "Measurement 2"
RFFT_long_unique_RS_imp$Measurement[RFFT_long_unique_RS_imp$Measurement=="Unique.mcar3"] <- "Measurement 3"


# Se genera la variable Measurement como num�rica.
RFFT_long_unique_RS_imp$Measurement2<-Recode(RFFT_long_unique_RS_imp$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_long_unique_RS_imp$Measurement2<-as.numeric(RFFT_long_unique_RS_imp$Measurement2)


## Se transpone el data frame: de wide a long  para los errores perseverantes.
## se a�ade el casenr y se transpone
Casenr<-1:2515
RFFT_wide_unique_RS_imp2<-data.frame(Casenr,RFFT_wide_unique_RS_imp)
RFFT_long_unique_RS_imp <- melt(RFFT_wide_unique_RS_imp2, id.vars = c("Casenr","Age","Gender","Education"))
#RFFT_long_unique_RS_imp[1:10,]
names(RFFT_long_unique_RS_imp)<-(c("Casenr", "Age","Gender","Education","Measurement","Unique"))

# Se ordena por sujeto y visita (time.f)

RFFT_long_unique_RS_imp <- with(RFFT_long_unique_RS_imp, RFFT_long_unique_RS_imp[order(Casenr, Measurement, decreasing=FALSE), ])

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

# RFFT_long_unique_RS_imp$Gender <- factor(RFFT_long_unique_RS_imp$Gender,
#                                 levels = c(1,2),
#                                 labels = c("Hombre", "Mujer")) 

# RFFT_long_unique_RS_imp$Education <- factor(RFFT_long_unique_RS_imp$Education,
#                                    levels = c(1,2,3,4),
#                                    labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))


# Se recodifica los valores de la variable Measurement

RFFT_long_unique_RS_imp$Measurement<-as.character(RFFT_long_unique_RS_imp$Measurement)
RFFT_long_unique_RS_imp$Measurement[RFFT_long_unique_RS_imp$Measurement=="Unique.mcar1"] <- "Measurement 1"
RFFT_long_unique_RS_imp$Measurement[RFFT_long_unique_RS_imp$Measurement=="Unique.mcar2"] <- "Measurement 2"
RFFT_long_unique_RS_imp$Measurement[RFFT_long_unique_RS_imp$Measurement=="Unique.mcar3"] <- "Measurement 3"


# Se genera la variable Measurement como num�rica.
RFFT_long_unique_RS_imp$Measurement2<-Recode(RFFT_long_unique_RS_imp$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_long_unique_RS_imp$Measurement2<-as.numeric(RFFT_long_unique_RS_imp$Measurement2)
# RFFT_long_unique_RS_imp[1:12,]


## Se transpone el data frame: de wide a long  para los errores perseverantes.
## se a�ade el casenr y se transpone
Casenr<-1:2515
RFFT_wide_perseverative_RS_imp2<-data.frame(Casenr,RFFT_wide_perseverative_RS_imp)
RFFT_long_perseverative_RS_imp <- melt(RFFT_wide_perseverative_RS_imp2, id.vars = c("Casenr","Age","Gender","Education"))
#RFFT_long_perseverative_RS_imp[1:10,]
names(RFFT_long_perseverative_RS_imp)<-(c("Casenr", "Age","Gender","Education","Measurement","Perseverative"))

# Se ordena por sujeto y visita (time.f)

RFFT_long_perseverative_RS_imp <- with(RFFT_long_perseverative_RS_imp, RFFT_long_perseverative_RS_imp[order(Casenr, Measurement, decreasing=FALSE), ])

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

# RFFT_long_perseverative_RS_imp$Gender <- factor(RFFT_long_perseverative_RS_imp$Gender,
#                                 levels = c(1,2),
#                                 labels = c("Hombre", "Mujer")) 

# RFFT_long_perseverative_RS_imp$Education <- factor(RFFT_long_perseverative_RS_imp$Education,
#                                    levels = c(1,2,3,4),
#                                    labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))


# Se recodifica los valores de la variable Measurement

RFFT_long_perseverative_RS_imp$Measurement<-as.character(RFFT_long_perseverative_RS_imp$Measurement)
RFFT_long_perseverative_RS_imp$Measurement[RFFT_long_perseverative_RS_imp$Measurement=="Perseverative.mcar1"] <- "Measurement 1"
RFFT_long_perseverative_RS_imp$Measurement[RFFT_long_perseverative_RS_imp$Measurement=="Perseverative.mcar2"] <- "Measurement 2"
RFFT_long_perseverative_RS_imp$Measurement[RFFT_long_perseverative_RS_imp$Measurement=="Perseverative.mcar3"] <- "Measurement 3"


# Se genera la variable Measurement como num�rica.
RFFT_long_perseverative_RS_imp$Measurement2<-Recode(RFFT_long_perseverative_RS_imp$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_long_perseverative_RS_imp$Measurement2<-as.numeric(RFFT_long_perseverative_RS_imp$Measurement2)
# RFFT_long_perseverative_RS_imp[1:12,]

```

**Perfiles de los valores medios**   
Para esta secci�n se utiliza la BBDD en formato long con datos imputados. Se analizan los valores medios y medianos de _dise�os �nicos_ y de _errores perseverantes_ en cada visita y se presentan junto con el n� de participantes analizables en cada visita. Para reproducir los an�lisis del art�culo original ( _Marlise E. A. van Eersel et al._), se utilizan el an�lisis de varianza (ANOVA) y el test de Kruskal Wallis, para analizar el cambio a lo largo de las 3 mediciones en el _n� de dise�os �nicos_ y el _n� de errores persevarentes_.   

```{r echo=FALSE, warning=FALSE, message=FALSE}
stats_unique_RS <- numSummary(RFFT_long_unique_RS_imp[,"Unique", drop=FALSE], groups=RFFT_long_unique_RS_imp$Measurement, statistics=c("mean", "sd", "IQR", "quantiles"), quantiles=c(0,.25,.5,.75,1))
stats_unique_RS
stats_perseverative_RS <- numSummary(RFFT_long_perseverative_RS_imp[,"Perseverative", drop=FALSE], groups=RFFT_long_perseverative_RS_imp$Measurement, statistics=c("mean", "sd", "IQR", "quantiles"), quantiles=c(0,.25,.5,.75,1))
stats_perseverative_RS
## Se utiliza la funci�n aov para obtener el an�lis de varianza que permite comparar las medias entre los 3 tiempos para el N� de dise�os �nicos.
aov_unique_RS <- summary(aov(Unique ~ Measurement2, data=RFFT_long_unique_RS_imp))
aov_unique_RS
kw_perseverative_RS<-kruskal.test(Perseverative ~ Measurement2, data=RFFT_long_perseverative_RS_imp)
kw_perseverative_RS
## se utiliza el test de Kruskal Wallis para que permite comparar las medianas entre los 3 tiempos para el N� de errores perseverantes.
```

Se utilizan los resultados obtenidos para generar una tabla resumen de los resultados en las medidas consecutivas.   
   
##### Tabla 10. Resumen resultados medidas consecutivas (Regresi�n)   
**N� de dise�os �nicos, media(DE)**         | **1� (2003-06)** | **2� (2006-08)** | **3� (2008-12)** | **p-valor (anova)**  
----------------------------------------|--------------|--------------|--------------|--------------
  Todos los participantes                     | `r round(stats_unique_RS$table[1],digits=0)` (`r round(stats_unique_RS$table[4],digits=0)`) | `r round(stats_unique_RS$table[2],digits=0)` (`r round(stats_unique_RS$table[5],digits=0)`) | `r round(stats_unique_RS$table[3],digits=0)` (`r round(stats_unique_RS$table[6],digits=0)`) | p<0.001  
  **N� errores perseverantes, mediana(RIQ)** | **1� (2003-06)** | **2� (2006-08)** | **3� (2008-12)** | **p-valor (K-W)**  
  Todos los participantes                     | `r round(stats_perseverative_RS$table[16],digits=0)` (`r round(stats_perseverative_RS$table[13],digits=0)`-`r round(stats_perseverative_RS$table[19],digits=0)`) | `r round(stats_perseverative_RS$table[17],digits=0)` (`r round(stats_perseverative_RS$table[14],digits=0)`-`r round(stats_perseverative_RS$table[20],digits=0)`) | `r round(stats_perseverative_RS$table[18],digits=0)` (`r round(stats_perseverative_RS$table[15],digits=0)`-`r round(stats_perseverative_RS$table[21],digits=0)`) | `r round(kw_perseverative_RS$p.value,digits=3)`   
_DE: Desviaci�n est�ndard; RIQ: rango inter-cuart�lico; K-W: Kruskal-Wallis_


Para reproducir los resultados obtenidos por los autores se utiliza la funci�n _lme_ (paquete _nlme_) que permite ajustar los efectos de modelos lineales mixtos y analizar los datos longitudinales. Los resultados obtenidos son muy similares a los que se presentan en el art�culo (diferencias m�nimas en algunos estimadores).  

****
  
#         #

#### 8.4.1	 Reproducci�n de los an�lisis. Modelo n� dise�os �nicos: Regresi�n (10%)
  
  
  Se ajusta el modelo 3 especificado en el art�culo: se incluyen _Edad_, _G�nero_, _Nivel de educaci�n_, _Medida (n� consecutivo)_ y la _interacci�n entre edad y medida (n� consecutivo)_.    

```{r echo=FALSE, warning=FALSE, message=FALSE}

## Se genera una nueva variable con los datos de los medidas pero como factor
RFFT_long_unique_RS_imp$Measurement2<-as.numeric(RFFT_long_unique_RS_imp$Measurement2)
# RFFT_long_unique_RS_imp[1:10,]
## Se ajusta el modelo especificado en el art�culo.
model3_unique_RS<-lme(Unique~Age+Gender+Education+Measurement2+Age*Measurement2,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_long_unique_RS_imp,control=list(opt="optim"))
model3_unique_RS<-lme(Unique~Age+Gender+Education+Measurement2+Age*Measurement2,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_long_unique_RS_imp,control=list(opt="optim"))
model3_unique_RS_tab<-round(summary(model3_unique_RS)$tTable,dig=3)
model3_unique_RS_AIC<-summary(model3_unique_RS)$AIC
model3_unique_RS_sigma<-summary(model3_unique_RS)$sigma
# estimadores y p-valores en el modelo:
model3_unique_RS_tab34<-as.character(ifelse(model3_unique_RS_tab[34]<0.001, "<0.001",model3_unique_RS_tab[34]))
model3_unique_RS_tab35<-as.character(ifelse(model3_unique_RS_tab[35]<0.001, "<0.001",model3_unique_RS_tab[35]))
model3_unique_RS_tab36<-as.character(ifelse(model3_unique_RS_tab[36]<0.001, "<0.001",model3_unique_RS_tab[36]))
model3_unique_RS_tab37<-as.character(ifelse(model3_unique_RS_tab[37]<0.001, "<0.001",model3_unique_RS_tab[37]))
model3_unique_RS_tab38<-as.character(ifelse(model3_unique_RS_tab[38]<0.001, "<0.001",model3_unique_RS_tab[38]))
model3_unique_RS_tab39<-as.character(ifelse(model3_unique_RS_tab[39]<0.001, "<0.001",model3_unique_RS_tab[39]))
model3_unique_RS_tab40<-as.character(ifelse(model3_unique_RS_tab[40]<0.001, "<0.001",model3_unique_RS_tab[40]))

# coeficientes con sus IC al 95%:
model3_unique_RS_int<-round(intervals(model3_unique_RS)$fixed,digits=2)

## Se genera una tabla resumen.

```

Se utilizan los resultados obtenidos para generar una tabla resumen de los resultados en las medidas consecutivas del *N� de dise�os �nicos*.

##### Tabla 11. Modelos lineales mixtos de los resultados RFFT: n� de dise�os �nicos (Regresi�n)   
**Variables**       |            **Modelo 3** 
----------------|------------------------------------  
__              |**_B_ (DE), IC 95%  (p-valor)**    
**Edad**            |  `r model3_unique_RS_int[10]` (`r model3_unique_RS_tab[10]`), `r model3_unique_RS_int[2]` to `r model3_unique_RS_int[18]` (`r model3_unique_RS_tab34`)   
  **Sexo: Hombre**          | Ref.   
**Sexo: Mujer**           |  `r model3_unique_RS_int[11]` (`r model3_unique_RS_tab[11]`), `r model3_unique_RS_int[3]` to `r model3_unique_RS_int[19]` (`r model3_unique_RS_tab35`)   
  **NE: Escuela primaria**  | Ref.  
**NE: Secundaria inicial**   |  `r model3_unique_RS_int[12]` (`r model3_unique_RS_tab[12]`), `r model3_unique_RS_int[4]` to `r model3_unique_RS_int[20]` (`r model3_unique_RS_tab36`)     
**NE: Secundaria superior** |  `r model3_unique_RS_int[13]` (`r model3_unique_RS_tab[13]`), `r model3_unique_RS_int[5]` to `r model3_unique_RS_int[21]` (`r model3_unique_RS_tab37`)  
**NE: Universitaria** | `r model3_unique_RS_int[6]` (`r model3_unique_RS_tab[14]`), `r model3_unique_RS_int[14]` to `r model3_unique_RS_int[22]` (`r model3_unique_RS_tab38`)  
  **Medida (n� consecutivo)** | `r model3_unique_RS_int[15]` (`r model3_unique_RS_tab[15]`), `r model3_unique_RS_int[7]` to `r model3_unique_RS_int[23]` (`r model3_unique_RS_tab39`) 
  **Edad x Medida (n� consecutivo)** | `r model3_unique_RS_int[16]` (`r model3_unique_RS_tab[16]`), `r model3_unique_RS_int[8]` to `r model3_unique_RS_int[24]` (`r model3_unique_RS_tab40`)   
_B: Coeficiente no estandarizado; DE: Desviaci�n est�ndard; IC 95: Intervalo de confianza al 95% del coeficiente B; Ref.: Categor�a de referencia; NE: Nivel de educaci�n_


Se inspecciona la informaci�n num�rica que aporta _summary_ acerca de este modelo:    

- El AIC del modelo es `r as.character(round(model3_unique_RS_AIC,digit=1))`.   
- la varianza residual es `r as.character(round(model3_unique_RS_sigma,digit=3))` (la salida da 'sigma'), que es la estimaci�n de la varianza de los residuos (como std.dev), por lo tanto reporta la variabilidad entre observaciones (_"within-participante variability"_).  


****

  #         #
  

#### 8.4.2	 Reproducci�n de los an�lisis. Modelos n� de errores perseverantes: Regresi�n (10%)   

Se ajusta el 1� modelo especificado en el art�culo, se incluyen: _Edad_, _G�nero_ y _Nivel de educaci�n_.       


```{r echo=FALSE, warning=FALSE, message=FALSE}

model1_perseverative_RS<-lme(Perseverative~Age+Gender+Education,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_long_perseverative_RS_imp,control=list(opt="optim"))
model1_perseverative_RS_tab<-round(summary(model1_perseverative_RS)$tTable,dig=3)
model1_perseverative_RS_AIC<-summary(model1_perseverative_RS)$AIC
model1_perseverative_RS_sigma<-summary(model1_perseverative_RS)$sigma

# estimadores y p-valores en el modelo:
model1_perseverative_RS_tab26<-as.character(ifelse(model1_perseverative_RS_tab[26]<0.001, "<0.001",model1_perseverative_RS_tab[26]))
model1_perseverative_RS_tab27<-as.character(ifelse(model1_perseverative_RS_tab[27]<0.001, "<0.001",model1_perseverative_RS_tab[27]))
model1_perseverative_RS_tab28<-as.character(ifelse(model1_perseverative_RS_tab[28]<0.001, "<0.001",model1_perseverative_RS_tab[28]))
model1_perseverative_RS_tab29<-as.character(ifelse(model1_perseverative_RS_tab[29]<0.001, "<0.001",model1_perseverative_RS_tab[29]))
model1_perseverative_RS_tab30<-as.character(ifelse(model1_perseverative_RS_tab[30]<0.001, "<0.001",model1_perseverative_RS_tab[30]))



# coeficientes con sus IC al 95%:
model1_perseverative_RS_int<-round(intervals(model1_perseverative_RS)$fixed,digits=2)


## Se genera una tabla resumen.

```

Se utilizan los resultados obtenidos para generar una tabla resumen de los resultados en las medidas consecutivas del *N� de errores perseverantes*.  

##### Tabla 12. Modelos lineales mixtos de los resultados RFFT: n� de errores perseverantes (Regresi�n)   
**Variables**       |      **Modelo 1**   
--------------------|--------------------------------------- 
__ |   **_B_ (DE), IC 95%  (p-valor)**    
**Edad**            |  `r model1_perseverative_RS_int[8]` (`r model1_perseverative_RS_tab[8]`), `r model1_perseverative_RS_int[2]` to `r model1_perseverative_RS_int[18]` (`r model1_perseverative_RS_tab26`)   
  **Sexo: Hombre**  | Ref.   
**Sexo: Mujer**     | `r model1_perseverative_RS_int[9]` (`r model1_perseverative_RS_tab[9]`), `r model1_perseverative_RS_int[3]` to `r model1_perseverative_RS_int[15]` (`r model1_perseverative_RS_tab27`)  
**NE: Escuela primaria**  | Ref.  
**NE: Secundaria inicial**   | `r model1_perseverative_RS_int[10]` (`r model1_perseverative_RS_tab[10]`), `r model1_perseverative_RS_int[4]` to `r model1_perseverative_RS_int[16]` (`r model1_perseverative_RS_tab28`)     
**NE: Secundaria superior** | `r model1_perseverative_RS_int[11]`(`r model1_perseverative_RS_tab[11]`), `r model1_perseverative_RS_int[5]` to `r model1_perseverative_RS_int[17]` (`r model1_perseverative_RS_tab29`) 
**NE: Universitaria** | `r model1_perseverative_RS_int[12]` (`r model1_perseverative_RS_tab[12]`), `r model1_perseverative_RS_int[6]` to `r model1_perseverative_RS_int[18]` (`r model1_perseverative_RS_tab30`)  
_B: Coeficiente no estandarizado;  IC 95: Intervalo de confianza al 95% del coeficiente B; Ref.: Categor�a de referencia; NE: Nivel de educaci�n_  


Se inspecciona la informaci�n num�rica que aporta _summary_ acerca de este modelo:    

- El AIC del modelo es `r as.character(round(model1_perseverative_RS_AIC,digit=1))`.   
- la varianza residual es `r as.character(round(model1_perseverative_RS_sigma,digit=3))` (la salida da 'sigma'), que es la estimaci�n de la varianza de los residuos (como std.dev), por lo tanto reporta la variabilidad entre observaciones (_"within-participante variability"_).   
 

****

#         #
  
  
### 8.5	 Reproducci�n de los an�lisis: MI (PMM) (10%)

Se utilizan los dataframes generados anteriormente utilizando el algoritmo de *M�ltiple Imputaci�n utilizando el m�todo PMM (Predictive mean matching)*. Con los nuevos dataframes se reproducen los _mejores_ modelos del an�lisis original. En primer lugar se transponen los datos de formato _wide_ a formato _long_.    


```{r echo=FALSE, warning=FALSE, message=FALSE}

## Se transpone el data frame: de wide a long para los dise�os �nicos.
## se a�ade el casenr y se transpone
Casenr<-1:2515
RFFT_wide_unique_im5_imp2<-data.frame(Casenr,RFFT_wide_unique_im5_imp)
RFFT_long_unique_im5_imp <- melt(RFFT_wide_unique_im5_imp2, id.vars = c("Casenr","Age","Gender","Education"))
# RFFT_long_unique_im5_imp[1:10,]
names(RFFT_long_unique_im5_imp)<-(c("Casenr", "Age","Gender","Education","Measurement","Unique"))

# Se ordena por sujeto y visita (time.f)

RFFT_long_unique_im5_imp <- with(RFFT_long_unique_im5_imp, RFFT_long_unique_im5_imp[order(Casenr, Measurement, decreasing=FALSE), ])
# RFFT_long_unique_im5_imp[1:12,]

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

# RFFT_long_unique_im5_imp$Gender <- factor(RFFT_long_unique_im5_imp$Gender,
#                                 levels = c(1,2),
#                                 labels = c("Hombre", "Mujer")) 

# RFFT_long_unique_im5_imp$Education <- factor(RFFT_long_unique_im5_imp$Education,
#                                    levels = c(1,2,3,4),
#                                    labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))


# Se recodifica los valores de la variable Measurement

RFFT_long_unique_im5_imp$Measurement<-as.character(RFFT_long_unique_im5_imp$Measurement)
RFFT_long_unique_im5_imp$Measurement[RFFT_long_unique_im5_imp$Measurement=="Unique.mcar1"] <- "Measurement 1"
RFFT_long_unique_im5_imp$Measurement[RFFT_long_unique_im5_imp$Measurement=="Unique.mcar2"] <- "Measurement 2"
RFFT_long_unique_im5_imp$Measurement[RFFT_long_unique_im5_imp$Measurement=="Unique.mcar3"] <- "Measurement 3"


# Se genera la variable Measurement como num�rica.
RFFT_long_unique_im5_imp$Measurement2<-Recode(RFFT_long_unique_im5_imp$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_long_unique_im5_imp$Measurement2<-as.numeric(RFFT_long_unique_im5_imp$Measurement2)


## Se transpone el data frame: de wide a long  para los errores perseverantes.
## se a�ade el casenr y se transpone
Casenr<-1:2515
RFFT_wide_unique_im5_imp2<-data.frame(Casenr,RFFT_wide_unique_im5_imp)
RFFT_long_unique_im5_imp <- melt(RFFT_wide_unique_im5_imp2, id.vars = c("Casenr","Age","Gender","Education"))
#RFFT_long_unique_im5_imp[1:10,]
names(RFFT_long_unique_im5_imp)<-(c("Casenr", "Age","Gender","Education","Measurement","Unique"))

# Se ordena por sujeto y visita (time.f)

RFFT_long_unique_im5_imp <- with(RFFT_long_unique_im5_imp, RFFT_long_unique_im5_imp[order(Casenr, Measurement, decreasing=FALSE), ])

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

# RFFT_long_unique_im5_imp$Gender <- factor(RFFT_long_unique_im5_imp$Gender,
#                                 levels = c(1,2),
#                                 labels = c("Hombre", "Mujer")) 

# RFFT_long_unique_im5_imp$Education <- factor(RFFT_long_unique_im5_imp$Education,
#                                    levels = c(1,2,3,4),
#                                    labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))


# Se recodifica los valores de la variable Measurement

RFFT_long_unique_im5_imp$Measurement<-as.character(RFFT_long_unique_im5_imp$Measurement)
RFFT_long_unique_im5_imp$Measurement[RFFT_long_unique_im5_imp$Measurement=="Unique.mcar1"] <- "Measurement 1"
RFFT_long_unique_im5_imp$Measurement[RFFT_long_unique_im5_imp$Measurement=="Unique.mcar2"] <- "Measurement 2"
RFFT_long_unique_im5_imp$Measurement[RFFT_long_unique_im5_imp$Measurement=="Unique.mcar3"] <- "Measurement 3"


# Se genera la variable Measurement como num�rica.
RFFT_long_unique_im5_imp$Measurement2<-Recode(RFFT_long_unique_im5_imp$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_long_unique_im5_imp$Measurement2<-as.numeric(RFFT_long_unique_im5_imp$Measurement2)
# RFFT_long_unique_im5_imp[1:12,]


## Se transpone el data frame: de wide a long  para los errores perseverantes.
## se a�ade el casenr y se transpone
Casenr<-1:2515
RFFT_wide_perseverative_im5_imp2<-data.frame(Casenr,RFFT_wide_perseverative_im5_imp)
RFFT_long_perseverative_im5_imp <- melt(RFFT_wide_perseverative_im5_imp2, id.vars = c("Casenr","Age","Gender","Education"))
#RFFT_long_perseverative_im5_imp[1:10,]
names(RFFT_long_perseverative_im5_imp)<-(c("Casenr", "Age","Gender","Education","Measurement","Perseverative"))

# Se ordena por sujeto y visita (time.f)

RFFT_long_perseverative_im5_imp <- with(RFFT_long_perseverative_im5_imp, RFFT_long_perseverative_im5_imp[order(Casenr, Measurement, decreasing=FALSE), ])

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

# RFFT_long_perseverative_im5_imp$Gender <- factor(RFFT_long_perseverative_im5_imp$Gender,
#                                 levels = c(1,2),
#                                 labels = c("Hombre", "Mujer")) 

# RFFT_long_perseverative_im5_imp$Education <- factor(RFFT_long_perseverative_im5_imp$Education,
#                                    levels = c(1,2,3,4),
#                                    labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))


# Se recodifica los valores de la variable Measurement

RFFT_long_perseverative_im5_imp$Measurement<-as.character(RFFT_long_perseverative_im5_imp$Measurement)
RFFT_long_perseverative_im5_imp$Measurement[RFFT_long_perseverative_im5_imp$Measurement=="Perseverative.mcar1"] <- "Measurement 1"
RFFT_long_perseverative_im5_imp$Measurement[RFFT_long_perseverative_im5_imp$Measurement=="Perseverative.mcar2"] <- "Measurement 2"
RFFT_long_perseverative_im5_imp$Measurement[RFFT_long_perseverative_im5_imp$Measurement=="Perseverative.mcar3"] <- "Measurement 3"


# Se genera la variable Measurement como num�rica.
RFFT_long_perseverative_im5_imp$Measurement2<-Recode(RFFT_long_perseverative_im5_imp$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_long_perseverative_im5_imp$Measurement2<-as.numeric(RFFT_long_perseverative_im5_imp$Measurement2)
# RFFT_long_perseverative_im5_imp[1:12,]

```

**Perfiles de los valores medios**   
Para esta secci�n se utiliza la BBDD en formato long con datos imputados. Se analizan los valores medios y medianos de _dise�os �nicos_ y de _errores perseverantes_ en cada visita y se presentan junto con el n� de participantes analizables en cada visita. Para reproducir los an�lisis del art�culo original ( _Marlise E. A. van Eersel et al._), se utilizan el an�lisis de varianza (ANOVA) y el test de Kruskal Wallis, para analizar el cambio a lo largo de las 3 mediciones en el _n� de dise�os �nicos_ y el _n� de errores persevarentes_.   

```{r echo=FALSE, warning=FALSE, message=FALSE}
stats_unique_im5 <- numSummary(RFFT_long_unique_im5_imp[,"Unique", drop=FALSE], groups=RFFT_long_unique_im5_imp$Measurement, statistics=c("mean", "sd", "IQR", "quantiles"), quantiles=c(0,.25,.5,.75,1))
stats_unique_im5
stats_perseverative_im5 <- numSummary(RFFT_long_perseverative_im5_imp[,"Perseverative", drop=FALSE], groups=RFFT_long_perseverative_im5_imp$Measurement, statistics=c("mean", "sd", "IQR", "quantiles"), quantiles=c(0,.25,.5,.75,1))
stats_perseverative_im5
## Se utiliza la funci�n aov para obtener el an�lis de varianza que permite comparar las medias entre los 3 tiempos para el N� de dise�os �nicos.
aov_unique_im5 <- summary(aov(Unique ~ Measurement2, data=RFFT_long_unique_im5_imp))
aov_unique_im5
kw_perseverative_im5<-kruskal.test(Perseverative ~ Measurement2, data=RFFT_long_perseverative_im5_imp)
kw_perseverative_im5
## se utiliza el test de Kruskal Wallis para que permite comparar las medianas entre los 3 tiempos para el N� de errores perseverantes.
```

Se utilizan los resultados obtenidos para generar una tabla resumen de los resultados en las medidas consecutivas.

##### Tabla 13. Resumen resultados medidas consecutivas (Imputaci�n m�ltiple (_PMM_))   
**N� de dise�os �nicos, media(DE)**         | **1� (2003-06)** | **2� (2006-08)** | **3� (2008-12)** | **p-valor (anova)**  
----------------------------------------|--------------|--------------|--------------|--------------
  Todos los participantes                     | `r round(stats_unique_im5$table[1],digits=0)` (`r round(stats_unique_im5$table[4],digits=0)`) | `r round(stats_unique_im5$table[2],digits=0)` (`r round(stats_unique_im5$table[5],digits=0)`) | `r round(stats_unique_im5$table[3],digits=0)` (`r round(stats_unique_im5$table[6],digits=0)`) | p<0.001  
  **N� errores perseverantes, mediana(RIQ)** | **1� (2003-06)** | **2� (2006-08)** | **3� (2008-12)** | **p-valor (K-W)**  
  Todos los participantes                     | `r round(stats_perseverative_im5$table[16],digits=0)` (`r round(stats_perseverative_im5$table[13],digits=0)`-`r round(stats_perseverative_im5$table[19],digits=0)`) | `r round(stats_perseverative_im5$table[17],digits=0)` (`r round(stats_perseverative_im5$table[14],digits=0)`-`r round(stats_perseverative_im5$table[20],digits=0)`) | `r round(stats_perseverative_im5$table[18],digits=0)` (`r round(stats_perseverative_im5$table[15],digits=0)`-`r round(stats_perseverative_im5$table[21],digits=0)`) | `r round(kw_perseverative_im5$p.value,digits=3)`  
_DE: Desviaci�n est�ndard; RIQ: rango inter-cuart�lico; K-W: Kruskal-Wallis_


Para reproducir los resultados obtenidos por los autores se utiliza la funci�n _lme_ (paquete _nlme_) que permite ajustar los efectos de modelos lineales mixtos y analizar los datos longitudinales. Los resultados obtenidos son muy similares a los que se presentan en el art�culo (diferencias m�nimas en algunos estimadores).  

****
  
#         #

#### 8.5.1	 Reproducci�n de los an�lisis. Modelo n� dise�os �nicos: MI (PMM) (10%)
  
  
  Se ajusta el modelo 3 especificado en el art�culo: se incluyen _Edad_, _G�nero_, _Nivel de educaci�n_, _Medida (n� consecutivo)_ y la _interacci�n entre edad y medida (n� consecutivo)_.    

```{r echo=FALSE, warning=FALSE, message=FALSE}

## Se genera una nueva variable con los datos de los medidas pero como factor
RFFT_long_unique_im5_imp$Measurement2<-as.numeric(RFFT_long_unique_im5_imp$Measurement2)
# RFFT_long_unique_im5_imp[1:10,]
## Se ajusta el modelo especificado en el art�culo.
model3_unique_im5<-lme(Unique~Age+Gender+Education+Measurement2+Age*Measurement2,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_long_unique_im5_imp,control=list(opt="optim"))
model3_unique_im5<-lme(Unique~Age+Gender+Education+Measurement2+Age*Measurement2,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_long_unique_im5_imp,control=list(opt="optim"))
model3_unique_im5_tab<-round(summary(model3_unique_im5)$tTable,dig=3)
model3_unique_im5_AIC<-summary(model3_unique_im5)$AIC
model3_unique_im5_sigma<-summary(model3_unique_im5)$sigma
# estimadores y p-valores en el modelo:
model3_unique_im5_tab34<-as.character(ifelse(model3_unique_im5_tab[34]<0.001, "<0.001",model3_unique_im5_tab[34]))
model3_unique_im5_tab35<-as.character(ifelse(model3_unique_im5_tab[35]<0.001, "<0.001",model3_unique_im5_tab[35]))
model3_unique_im5_tab36<-as.character(ifelse(model3_unique_im5_tab[36]<0.001, "<0.001",model3_unique_im5_tab[36]))
model3_unique_im5_tab37<-as.character(ifelse(model3_unique_im5_tab[37]<0.001, "<0.001",model3_unique_im5_tab[37]))
model3_unique_im5_tab38<-as.character(ifelse(model3_unique_im5_tab[38]<0.001, "<0.001",model3_unique_im5_tab[38]))
model3_unique_im5_tab39<-as.character(ifelse(model3_unique_im5_tab[39]<0.001, "<0.001",model3_unique_im5_tab[39]))
model3_unique_im5_tab40<-as.character(ifelse(model3_unique_im5_tab[40]<0.001, "<0.001",model3_unique_im5_tab[40]))

# coeficientes con sus IC al 95%:
model3_unique_im5_int<-round(intervals(model3_unique_im5)$fixed,digits=2)

## Se genera una tabla resumen.

```

Se utilizan los resultados obtenidos para generar una tabla resumen de los resultados en las medidas consecutivas del *N� de dise�os �nicos*.

##### Tabla 14. Modelos lineales mixtos de los resultados RFFT: n� de dise�os �nicos (MI (PMM))   
**Variables**       |            **Modelo 3** 
----------------|------------------------------------  
__              |**_B_ (DE), IC 95%  (p-valor)**    
**Edad**            |  `r model3_unique_im5_int[10]` (`r model3_unique_im5_tab[10]`), `r model3_unique_im5_int[2]` to `r model3_unique_im5_int[18]` (`r model3_unique_im5_tab34`)   
  **Sexo: Hombre**          | Ref.   
**Sexo: Mujer**           |  `r model3_unique_im5_int[11]` (`r model3_unique_im5_tab[11]`), `r model3_unique_im5_int[3]` to `r model3_unique_im5_int[19]` (`r model3_unique_im5_tab35`)   
  **NE: Escuela primaria**  | Ref.  
**NE: Secundaria inicial**   |  `r model3_unique_im5_int[12]` (`r model3_unique_im5_tab[12]`), `r model3_unique_im5_int[4]` to `r model3_unique_im5_int[20]` (`r model3_unique_im5_tab36`)     
**NE: Secundaria superior** |  `r model3_unique_im5_int[13]` (`r model3_unique_im5_tab[13]`), `r model3_unique_im5_int[5]` to `r model3_unique_im5_int[21]` (`r model3_unique_im5_tab37`)  
**NE: Universitaria** | `r model3_unique_im5_int[6]` (`r model3_unique_im5_tab[14]`), `r model3_unique_im5_int[14]` to `r model3_unique_im5_int[22]` (`r model3_unique_im5_tab38`)  
  **Medida (n� consecutivo)** | `r model3_unique_im5_int[15]` (`r model3_unique_im5_tab[15]`), `r model3_unique_im5_int[7]` to `r model3_unique_im5_int[23]` (`r model3_unique_im5_tab39`) 
  **Edad x Medida (n� consecutivo)** | `r model3_unique_im5_int[16]` (`r model3_unique_im5_tab[16]`), `r model3_unique_im5_int[8]` to `r model3_unique_im5_int[24]` (`r model3_unique_im5_tab40`)   
_B: Coeficiente no estandarizado; DE: Desviaci�n est�ndard; IC 95: Intervalo de confianza al 95% del coeficiente B; Ref.: Categor�a de referencia; NE: Nivel de educaci�n_


Se inspecciona la informaci�n num�rica que aporta _summary_ acerca de este modelo:    

- El AIC del modelo es `r as.character(round(model3_unique_im5_AIC,digit=1))`.   
- la varianza residual es `r as.character(round(model3_unique_im5_sigma,digit=3))` (la salida da 'sigma'), que es la estimaci�n de la varianza de los residuos (como std.dev), por lo tanto reporta la variabilidad entre observaciones (_"within-participante variability"_).  


****

  #         #
  

#### 8.5.2	 Reproducci�n de los an�lisis. Modelos n� de errores perseverantes: MI (PMM) (10%)   

Se ajusta el 1� modelo especificado en el art�culo, se incluyen: _Edad_, _G�nero_ y _Nivel de educaci�n_.      


```{r echo=FALSE, warning=FALSE, message=FALSE}

model1_perseverative_im5<-lme(Perseverative~Age+Gender+Education,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_long_perseverative_im5_imp,control=list(opt="optim"))
model1_perseverative_im5_tab<-round(summary(model1_perseverative_im5)$tTable,dig=3)
model1_perseverative_im5_AIC<-summary(model1_perseverative_im5)$AIC
model1_perseverative_im5_sigma<-summary(model1_perseverative_im5)$sigma

# estimadores y p-valores en el modelo:
model1_perseverative_im5_tab26<-as.character(ifelse(model1_perseverative_im5_tab[26]<0.001, "<0.001",model1_perseverative_im5_tab[26]))
model1_perseverative_im5_tab27<-as.character(ifelse(model1_perseverative_im5_tab[27]<0.001, "<0.001",model1_perseverative_im5_tab[27]))
model1_perseverative_im5_tab28<-as.character(ifelse(model1_perseverative_im5_tab[28]<0.001, "<0.001",model1_perseverative_im5_tab[28]))
model1_perseverative_im5_tab29<-as.character(ifelse(model1_perseverative_im5_tab[29]<0.001, "<0.001",model1_perseverative_im5_tab[29]))
model1_perseverative_im5_tab30<-as.character(ifelse(model1_perseverative_im5_tab[30]<0.001, "<0.001",model1_perseverative_im5_tab[30]))



# coeficientes con sus IC al 95%:
model1_perseverative_im5_int<-round(intervals(model1_perseverative_im5)$fixed,digits=2)


## Se genera una tabla resumen.

```

Se utilizan los resultados obtenidos para generar una tabla resumen de los resultados en las medidas consecutivas del *N� de errores perseverantes*.  

##### Tabla 15. Modelos lineales mixtos de los resultados RFFT: n� de errores perseverantes (MI (PMM))   
**Variables**       |      **Modelo 1**   
--------------------|--------------------------------------- 
__ |   **_B_ (DE), IC 95%  (p-valor)**    
**Edad**            |  `r model1_perseverative_im5_int[8]` (`r model1_perseverative_im5_tab[8]`), `r model1_perseverative_im5_int[2]` to `r model1_perseverative_im5_int[18]` (`r model1_perseverative_im5_tab26`)   
  **Sexo: Hombre**  | Ref.   
**Sexo: Mujer**     | `r model1_perseverative_im5_int[9]` (`r model1_perseverative_im5_tab[9]`), `r model1_perseverative_im5_int[3]` to `r model1_perseverative_im5_int[15]` (`r model1_perseverative_im5_tab27`)  
**NE: Escuela primaria**  | Ref.  
**NE: Secundaria inicial**   | `r model1_perseverative_im5_int[10]` (`r model1_perseverative_im5_tab[10]`), `r model1_perseverative_im5_int[4]` to `r model1_perseverative_im5_int[16]` (`r model1_perseverative_im5_tab28`)     
**NE: Secundaria superior** | `r model1_perseverative_im5_int[11]`(`r model1_perseverative_im5_tab[11]`), `r model1_perseverative_im5_int[5]` to `r model1_perseverative_im5_int[17]` (`r model1_perseverative_im5_tab29`) 
**NE: Universitaria** | `r model1_perseverative_im5_int[12]` (`r model1_perseverative_im5_tab[12]`), `r model1_perseverative_im5_int[6]` to `r model1_perseverative_im5_int[18]` (`r model1_perseverative_im5_tab30`)  
_B: Coeficiente no estandarizado;  IC 95: Intervalo de confianza al 95% del coeficiente B; Ref.: Categor�a de referencia; NE: Nivel de educaci�n_  


Se inspecciona la informaci�n num�rica que aporta _summary_ acerca de este modelo:    

- El AIC del modelo es `r as.character(round(model1_perseverative_im5_AIC,digit=1))`.   
- la varianza residual es `r as.character(round(model1_perseverative_im5_sigma,digit=3))` (la salida da 'sigma'), que es la estimaci�n de la varianza de los residuos (como std.dev), por lo tanto reporta la variabilidad entre observaciones (_"within-participante variability"_).   


****

#         #

## 9.   REPRODUCCI�N DE LOS AN�LISIS CON 20% DE DATOS FALTANTES
Se reproducen los modelos multivariados mediante los 4 m�todos de tratamiento de datos faltantes con los dataframes que contiene 20% de datos faltantes.   

### 9.1	 Reproducci�n de los an�lisis: Eliminaci�n de los casos (listwise) (20%)   

Se utilizan los dataframes generados anteriormente mediante el m�todo de _eliminaci�n de los casos con datos faltantes (listwise)_ para reprodcucir el an�lisis original, en el caso de 20% de datos faltantes. 

#### 9.1.1	 Reproducci�n de los an�lisis. Modelo n� dise�os �nicos: Eliminaci�n de los casos (listwise) (20%)
  
Se ajusta el modelo 3 especificado en el art�culo: se incluyen _Edad_, _G�nero_, _Nivel de educaci�n_, _Medida (n� consecutivo)_ y la _interacci�n entre edad y medida (n� consecutivo)_.    

```{r echo=FALSE, warning=FALSE, message=FALSE}

## Se ajusta el modelo especificado en el art�culo.
model3_unique_sinNA_20<-lme(Unique~Age+Gender+Education+Measurement2+Age*Measurement2,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_unique_sinNA_20,control=list(opt="optim"))
model3_unique_sinNA_20_tab<-round(summary(model3_unique_sinNA_20)$tTable,dig=3)
model3_unique_sinNA_20_AIC<-summary(model3_unique_sinNA_20)$AIC
model3_unique_sinNA_20_sigma<-summary(model3_unique_sinNA_20)$sigma
# estimadores y p-valores en el modelo:
model3_unique_sinNA_20_tab34<-as.character(ifelse(model3_unique_sinNA_20_tab[34]<0.001, "<0.001",model3_unique_sinNA_20_tab[34]))
model3_unique_sinNA_20_tab35<-as.character(ifelse(model3_unique_sinNA_20_tab[35]<0.001, "<0.001",model3_unique_sinNA_20_tab[35]))
model3_unique_sinNA_20_tab36<-as.character(ifelse(model3_unique_sinNA_20_tab[36]<0.001, "<0.001",model3_unique_sinNA_20_tab[36]))
model3_unique_sinNA_20_tab37<-as.character(ifelse(model3_unique_sinNA_20_tab[37]<0.001, "<0.001",model3_unique_sinNA_20_tab[37]))
model3_unique_sinNA_20_tab38<-as.character(ifelse(model3_unique_sinNA_20_tab[38]<0.001, "<0.001",model3_unique_sinNA_20_tab[38]))
model3_unique_sinNA_20_tab39<-as.character(ifelse(model3_unique_sinNA_20_tab[39]<0.001, "<0.001",model3_unique_sinNA_20_tab[39]))
model3_unique_sinNA_20_tab40<-as.character(ifelse(model3_unique_sinNA_20_tab[40]<0.001, "<0.001",model3_unique_sinNA_20_tab[40]))

# coeficientes con sus IC al 95%:
model3_unique_sinNA_20_int<-round(intervals(model3_unique_sinNA_20)$fixed,digits=2)

```


#### 9.1.2	 Reproducci�n de los an�lisis. Modelos n� de errores perseverantes: Eliminaci�n de los casos (listwise) (20%)      

Se ajusta el 1� modelo especificado en el art�culo, se incluyen: _Edad_, _G�nero_ y _Nivel de educaci�n_.  


```{r echo=FALSE, warning=FALSE, message=FALSE}

model1_perseverative_sinNA_20<-lme(Perseverative~Age+Gender+Education,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_perseverative_sinNA_20,control=list(opt="optim"))
model1_perseverative_sinNA_20_tab<-round(summary(model1_perseverative_sinNA_20)$tTable,dig=3)
model1_perseverative_sinNA_20_AIC<-summary(model1_perseverative_sinNA_20)$AIC
model1_perseverative_sinNA_20_sigma<-summary(model1_perseverative_sinNA_20)$sigma

# estimadores y p-valores en el modelo:
model1_perseverative_sinNA_20_tab26<-as.character(ifelse(model1_perseverative_sinNA_20_tab[26]<0.001, "<0.001",model1_perseverative_sinNA_20_tab[26]))
model1_perseverative_sinNA_20_tab27<-as.character(ifelse(model1_perseverative_sinNA_20_tab[27]<0.001, "<0.001",model1_perseverative_sinNA_20_tab[27]))
model1_perseverative_sinNA_20_tab28<-as.character(ifelse(model1_perseverative_sinNA_20_tab[28]<0.001, "<0.001",model1_perseverative_sinNA_20_tab[28]))
model1_perseverative_sinNA_20_tab29<-as.character(ifelse(model1_perseverative_sinNA_20_tab[29]<0.001, "<0.001",model1_perseverative_sinNA_20_tab[29]))
model1_perseverative_sinNA_20_tab30<-as.character(ifelse(model1_perseverative_sinNA_20_tab[30]<0.001, "<0.001",model1_perseverative_sinNA_20_tab[30]))


# coeficientes con sus IC al 95%:
model1_perseverative_sinNA_20_int<-round(intervals(model1_perseverative_sinNA_20)$fixed,digits=2)

```

****

#         #

### 9.2 Reproducci�n de los an�lisis: Media (20%)   

Se utilizan los dataframes generados anteriormente mediante el m�todo de *Imputaci�n por media *, que reemplaza los datos faltantes por el valor medio del resto de datos conocidos en de la variable. Y con los nuevos dataframes se reproducen los _mejores_ modelos del an�lisis original. En primer lugar se transponen los datos de formato _wide_ a formato _long_.    


```{r echo=FALSE, warning=FALSE, message=FALSE}

## Se transpone el data frame: de wide a long para los dise�os �nicos.
## se a�ade el casenr y se transpone
Casenr<-1:2515
RFFT_wide_unique_MD_20_imp2<-data.frame(Casenr,RFFT_wide_unique_MD_20_imp)
RFFT_long_unique_MD_20_imp <- melt(RFFT_wide_unique_MD_20_imp2, id.vars = c("Casenr","Age","Gender","Education"))
# RFFT_long_unique_MD_20_imp[1:10,]
names(RFFT_long_unique_MD_20_imp)<-(c("Casenr", "Age","Gender","Education","Measurement","Unique"))

# Se ordena por sujeto y visita (time.f)

RFFT_long_unique_MD_20_imp <- with(RFFT_long_unique_MD_20_imp, RFFT_long_unique_MD_20_imp[order(Casenr, Measurement, decreasing=FALSE), ])
# RFFT_long_unique_MD_20_imp[1:12,]

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

# RFFT_long_unique_MD_20_imp$Gender <- factor(RFFT_long_unique_MD_20_imp$Gender,
#                                 levels = c(1,2),
#                                 labels = c("Hombre", "Mujer")) 

# RFFT_long_unique_MD_20_imp$Education <- factor(RFFT_long_unique_MD_20_imp$Education,
#                                    levels = c(1,2,3,4),
#                                    labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))


# Se recodifica los valores de la variable Measurement

RFFT_long_unique_MD_20_imp$Measurement<-as.character(RFFT_long_unique_MD_20_imp$Measurement)
RFFT_long_unique_MD_20_imp$Measurement[RFFT_long_unique_MD_20_imp$Measurement=="Unique.mcar1"] <- "Measurement 1"
RFFT_long_unique_MD_20_imp$Measurement[RFFT_long_unique_MD_20_imp$Measurement=="Unique.mcar2"] <- "Measurement 2"
RFFT_long_unique_MD_20_imp$Measurement[RFFT_long_unique_MD_20_imp$Measurement=="Unique.mcar3"] <- "Measurement 3"


# Se genera la variable Measurement como num�rica.
RFFT_long_unique_MD_20_imp$Measurement2<-Recode(RFFT_long_unique_MD_20_imp$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_long_unique_MD_20_imp$Measurement2<-as.numeric(RFFT_long_unique_MD_20_imp$Measurement2)


## Se transpone el data frame: de wide a long  para los errores perseverantes.
## se a�ade el casenr y se transpone
Casenr<-1:2515
RFFT_wide_unique_MD_20_imp2<-data.frame(Casenr,RFFT_wide_unique_MD_20_imp)
RFFT_long_unique_MD_20_imp <- melt(RFFT_wide_unique_MD_20_imp2, id.vars = c("Casenr","Age","Gender","Education"))
#RFFT_long_unique_MD_20_imp[1:10,]
names(RFFT_long_unique_MD_20_imp)<-(c("Casenr", "Age","Gender","Education","Measurement","Unique"))

# Se ordena por sujeto y visita (time.f)

RFFT_long_unique_MD_20_imp <- with(RFFT_long_unique_MD_20_imp, RFFT_long_unique_MD_20_imp[order(Casenr, Measurement, decreasing=FALSE), ])

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

# RFFT_long_unique_MD_20_imp$Gender <- factor(RFFT_long_unique_MD_20_imp$Gender,
#                                 levels = c(1,2),
#                                 labels = c("Hombre", "Mujer")) 

# RFFT_long_unique_MD_20_imp$Education <- factor(RFFT_long_unique_MD_20_imp$Education,
#                                    levels = c(1,2,3,4),
#                                    labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))


# Se recodifica los valores de la variable Measurement

RFFT_long_unique_MD_20_imp$Measurement<-as.character(RFFT_long_unique_MD_20_imp$Measurement)
RFFT_long_unique_MD_20_imp$Measurement[RFFT_long_unique_MD_20_imp$Measurement=="Unique.mcar1"] <- "Measurement 1"
RFFT_long_unique_MD_20_imp$Measurement[RFFT_long_unique_MD_20_imp$Measurement=="Unique.mcar2"] <- "Measurement 2"
RFFT_long_unique_MD_20_imp$Measurement[RFFT_long_unique_MD_20_imp$Measurement=="Unique.mcar3"] <- "Measurement 3"


# Se genera la variable Measurement como num�rica.
RFFT_long_unique_MD_20_imp$Measurement2<-Recode(RFFT_long_unique_MD_20_imp$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_long_unique_MD_20_imp$Measurement2<-as.numeric(RFFT_long_unique_MD_20_imp$Measurement2)


## Se transpone el data frame: de wide a long  para los errores perseverantes.
## se a�ade el casenr y se transpone
Casenr<-1:2515
RFFT_wide_perseverative_MD_20_imp2<-data.frame(Casenr,RFFT_wide_perseverative_MD_20_imp)
RFFT_long_perseverative_MD_20_imp <- melt(RFFT_wide_perseverative_MD_20_imp2, id.vars = c("Casenr","Age","Gender","Education"))
#RFFT_long_perseverative_MD_20_imp[1:10,]
names(RFFT_long_perseverative_MD_20_imp)<-(c("Casenr", "Age","Gender","Education","Measurement","Perseverative"))

# Se ordena por sujeto y visita (time.f)

RFFT_long_perseverative_MD_20_imp <- with(RFFT_long_perseverative_MD_20_imp, RFFT_long_perseverative_MD_20_imp[order(Casenr, Measurement, decreasing=FALSE), ])

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

# RFFT_long_perseverative_MD_20_imp$Gender <- factor(RFFT_long_perseverative_MD_20_imp$Gender,
#                                 levels = c(1,2),
#                                 labels = c("Hombre", "Mujer")) 

# RFFT_long_perseverative_MD_20_imp$Education <- factor(RFFT_long_perseverative_MD_20_imp$Education,
#                                    levels = c(1,2,3,4),
#                                    labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))


# Se recodifica los valores de la variable Measurement

RFFT_long_perseverative_MD_20_imp$Measurement<-as.character(RFFT_long_perseverative_MD_20_imp$Measurement)
RFFT_long_perseverative_MD_20_imp$Measurement[RFFT_long_perseverative_MD_20_imp$Measurement=="Perseverative.mcar1"] <- "Measurement 1"
RFFT_long_perseverative_MD_20_imp$Measurement[RFFT_long_perseverative_MD_20_imp$Measurement=="Perseverative.mcar2"] <- "Measurement 2"
RFFT_long_perseverative_MD_20_imp$Measurement[RFFT_long_perseverative_MD_20_imp$Measurement=="Perseverative.mcar3"] <- "Measurement 3"


# Se genera la variable Measurement como num�rica.
RFFT_long_perseverative_MD_20_imp$Measurement2<-Recode(RFFT_long_perseverative_MD_20_imp$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_long_perseverative_MD_20_imp$Measurement2<-as.numeric(RFFT_long_perseverative_MD_20_imp$Measurement2)

```


#### 9.2.1	 Reproducci�n de los an�lisis. Modelo n� dise�os �nicos: Media (20%)
  

Se ajusta el modelo 3 especificado en el art�culo: se incluyen _Edad_, _G�nero_, _Nivel de educaci�n_, _Medida (n� consecutivo)_ y la _interacci�n entre edad y medida (n� consecutivo)_.    

```{r echo=FALSE, warning=FALSE, message=FALSE}

## Se genera una nueva variable con los datos de los medidas pero como factor
RFFT_long_unique_MD_20_imp$Measurement2<-as.numeric(RFFT_long_unique_MD_20_imp$Measurement2)
# RFFT_long_unique_MD_20_imp[1:10,]
## Se ajusta el modelo especificado en el art�culo.
model3_unique_MD_20<-lme(Unique~Age+Gender+Education+Measurement2+Age*Measurement2,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_long_unique_MD_20_imp,control=list(opt="optim"))
model3_unique_MD_20<-lme(Unique~Age+Gender+Education+Measurement2+Age*Measurement2,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_long_unique_MD_20_imp,control=list(opt="optim"))
model3_unique_MD_20_tab<-round(summary(model3_unique_MD_20)$tTable,dig=3)
model3_unique_MD_20_AIC<-summary(model3_unique_MD_20)$AIC
model3_unique_MD_20_sigma<-summary(model3_unique_MD_20)$sigma
# estimadores y p-valores en el modelo:
model3_unique_MD_20_tab34<-as.character(ifelse(model3_unique_MD_20_tab[34]<0.001, "<0.001",model3_unique_MD_20_tab[34]))
model3_unique_MD_20_tab35<-as.character(ifelse(model3_unique_MD_20_tab[35]<0.001, "<0.001",model3_unique_MD_20_tab[35]))
model3_unique_MD_20_tab36<-as.character(ifelse(model3_unique_MD_20_tab[36]<0.001, "<0.001",model3_unique_MD_20_tab[36]))
model3_unique_MD_20_tab37<-as.character(ifelse(model3_unique_MD_20_tab[37]<0.001, "<0.001",model3_unique_MD_20_tab[37]))
model3_unique_MD_20_tab38<-as.character(ifelse(model3_unique_MD_20_tab[38]<0.001, "<0.001",model3_unique_MD_20_tab[38]))
model3_unique_MD_20_tab39<-as.character(ifelse(model3_unique_MD_20_tab[39]<0.001, "<0.001",model3_unique_MD_20_tab[39]))
model3_unique_MD_20_tab40<-as.character(ifelse(model3_unique_MD_20_tab[40]<0.001, "<0.001",model3_unique_MD_20_tab[40]))

# coeficientes con sus IC al 95%:
model3_unique_MD_20_int<-round(intervals(model3_unique_MD_20)$fixed,digits=2)

```

#### 9.2.2	 Reproducci�n de los an�lisis. Modelos n� de errores perseverantes: Media (20%)   

Se ajusta el 1� modelo especificado en el art�culo, se incluyen: _Edad_, _G�nero_ y _Nivel de educaci�n_.     

```{r echo=FALSE, warning=FALSE, message=FALSE}

model1_perseverative_MD_20<-lme(Perseverative~Age+Gender+Education,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_long_perseverative_MD_20_imp,control=list(opt="optim"))
model1_perseverative_MD_20_tab<-round(summary(model1_perseverative_MD_20)$tTable,dig=3)
model1_perseverative_MD_20_AIC<-summary(model1_perseverative_MD_20)$AIC
model1_perseverative_MD_20_sigma<-summary(model1_perseverative_MD_20)$sigma

# estimadores y p-valores en el modelo:
model1_perseverative_MD_20_tab26<-as.character(ifelse(model1_perseverative_MD_20_tab[26]<0.001, "<0.001",model1_perseverative_MD_20_tab[26]))
model1_perseverative_MD_20_tab27<-as.character(ifelse(model1_perseverative_MD_20_tab[27]<0.001, "<0.001",model1_perseverative_MD_20_tab[27]))
model1_perseverative_MD_20_tab28<-as.character(ifelse(model1_perseverative_MD_20_tab[28]<0.001, "<0.001",model1_perseverative_MD_20_tab[28]))
model1_perseverative_MD_20_tab29<-as.character(ifelse(model1_perseverative_MD_20_tab[29]<0.001, "<0.001",model1_perseverative_MD_20_tab[29]))
model1_perseverative_MD_20_tab30<-as.character(ifelse(model1_perseverative_MD_20_tab[30]<0.001, "<0.001",model1_perseverative_MD_20_tab[30]))



# coeficientes con sus IC al 95%:
# model1_perseverative_MD_20_int<-round(intervals(model1_perseverative_MD_20)$fixed,digits=2)


```

****

#         #
  
  
### 9.3	 Reproducci�n de los an�lisis: Regresi�n (20%)

Se utilizan los dataframes generados anteriormente mediante el m�todo de *Imputaci�n por regresi�n simple (media condicional)*, que reemplaza los datos faltantes por el valor predicho a partir de la aplicaci�n de la regresi�n simple sobre el resto de datos conocidos en el sujeto. Con los nuevos dataframes se reproducen los _mejores_ modelos del an�lisis original. En primer lugar se transponen los datos de formato _wide_ a formato _long_.    


```{r echo=FALSE, warning=FALSE, message=FALSE}

## Se transpone el data frame: de wide a long para los dise�os �nicos.
## se a�ade el casenr y se transpone
Casenr<-1:2515
RFFT_wide_unique_RS_20_imp2<-data.frame(Casenr,RFFT_wide_unique_RS_20_imp)
RFFT_long_unique_RS_20_imp <- melt(RFFT_wide_unique_RS_20_imp2, id.vars = c("Casenr","Age","Gender","Education"))
names(RFFT_long_unique_RS_20_imp)<-(c("Casenr", "Age","Gender","Education","Measurement","Unique"))

# Se ordena por sujeto y visita (time.f)

RFFT_long_unique_RS_20_imp <- with(RFFT_long_unique_RS_20_imp, RFFT_long_unique_RS_20_imp[order(Casenr, Measurement, decreasing=FALSE), ])

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

# RFFT_long_unique_RS_20_imp$Gender <- factor(RFFT_long_unique_RS_20_imp$Gender,
#                                 levels = c(1,2),
#                                 labels = c("Hombre", "Mujer")) 

# RFFT_long_unique_RS_20_imp$Education <- factor(RFFT_long_unique_RS_20_imp$Education,
#                                    levels = c(1,2,3,4),
#                                    labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))


# Se recodifica los valores de la variable Measurement

RFFT_long_unique_RS_20_imp$Measurement<-as.character(RFFT_long_unique_RS_20_imp$Measurement)
RFFT_long_unique_RS_20_imp$Measurement[RFFT_long_unique_RS_20_imp$Measurement=="Unique.mcar1"] <- "Measurement 1"
RFFT_long_unique_RS_20_imp$Measurement[RFFT_long_unique_RS_20_imp$Measurement=="Unique.mcar2"] <- "Measurement 2"
RFFT_long_unique_RS_20_imp$Measurement[RFFT_long_unique_RS_20_imp$Measurement=="Unique.mcar3"] <- "Measurement 3"


# Se genera la variable Measurement como num�rica.
RFFT_long_unique_RS_20_imp$Measurement2<-Recode(RFFT_long_unique_RS_20_imp$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_long_unique_RS_20_imp$Measurement2<-as.numeric(RFFT_long_unique_RS_20_imp$Measurement2)


## Se transpone el data frame: de wide a long  para los errores perseverantes.
## se a�ade el casenr y se transpone
Casenr<-1:2515
RFFT_wide_unique_RS_20_imp2<-data.frame(Casenr,RFFT_wide_unique_RS_20_imp)
RFFT_long_unique_RS_20_imp <- melt(RFFT_wide_unique_RS_20_imp2, id.vars = c("Casenr","Age","Gender","Education"))
#RFFT_long_unique_RS_20_imp[1:10,]
names(RFFT_long_unique_RS_20_imp)<-(c("Casenr", "Age","Gender","Education","Measurement","Unique"))

# Se ordena por sujeto y visita (time.f)

RFFT_long_unique_RS_20_imp <- with(RFFT_long_unique_RS_20_imp, RFFT_long_unique_RS_20_imp[order(Casenr, Measurement, decreasing=FALSE), ])

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

# RFFT_long_unique_RS_20_imp$Gender <- factor(RFFT_long_unique_RS_20_imp$Gender,
#                                 levels = c(1,2),
#                                 labels = c("Hombre", "Mujer")) 

# RFFT_long_unique_RS_20_imp$Education <- factor(RFFT_long_unique_RS_20_imp$Education,
#                                    levels = c(1,2,3,4),
#                                    labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))


# Se recodifica los valores de la variable Measurement

RFFT_long_unique_RS_20_imp$Measurement<-as.character(RFFT_long_unique_RS_20_imp$Measurement)
RFFT_long_unique_RS_20_imp$Measurement[RFFT_long_unique_RS_20_imp$Measurement=="Unique.mcar1"] <- "Measurement 1"
RFFT_long_unique_RS_20_imp$Measurement[RFFT_long_unique_RS_20_imp$Measurement=="Unique.mcar2"] <- "Measurement 2"
RFFT_long_unique_RS_20_imp$Measurement[RFFT_long_unique_RS_20_imp$Measurement=="Unique.mcar3"] <- "Measurement 3"


# Se genera la variable Measurement como num�rica.
RFFT_long_unique_RS_20_imp$Measurement2<-Recode(RFFT_long_unique_RS_20_imp$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_long_unique_RS_20_imp$Measurement2<-as.numeric(RFFT_long_unique_RS_20_imp$Measurement2)

## Se transpone el data frame: de wide a long  para los errores perseverantes.
## se a�ade el casenr y se transpone
Casenr<-1:2515
RFFT_wide_perseverative_RS_20_imp2<-data.frame(Casenr,RFFT_wide_perseverative_RS_20_imp)
RFFT_long_perseverative_RS_20_imp <- melt(RFFT_wide_perseverative_RS_20_imp2, id.vars = c("Casenr","Age","Gender","Education"))
#RFFT_long_perseverative_RS_20_imp[1:10,]
names(RFFT_long_perseverative_RS_20_imp)<-(c("Casenr", "Age","Gender","Education","Measurement","Perseverative"))

# Se ordena por sujeto y visita (time.f)

RFFT_long_perseverative_RS_20_imp <- with(RFFT_long_perseverative_RS_20_imp, RFFT_long_perseverative_RS_20_imp[order(Casenr, Measurement, decreasing=FALSE), ])

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

# RFFT_long_perseverative_RS_20_imp$Gender <- factor(RFFT_long_perseverative_RS_20_imp$Gender,
#                                 levels = c(1,2),
#                                 labels = c("Hombre", "Mujer")) 

# RFFT_long_perseverative_RS_20_imp$Education <- factor(RFFT_long_perseverative_RS_20_imp$Education,
#                                    levels = c(1,2,3,4),
#                                    labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))


# Se recodifica los valores de la variable Measurement

RFFT_long_perseverative_RS_20_imp$Measurement<-as.character(RFFT_long_perseverative_RS_20_imp$Measurement)
RFFT_long_perseverative_RS_20_imp$Measurement[RFFT_long_perseverative_RS_20_imp$Measurement=="Perseverative.mcar1"] <- "Measurement 1"
RFFT_long_perseverative_RS_20_imp$Measurement[RFFT_long_perseverative_RS_20_imp$Measurement=="Perseverative.mcar2"] <- "Measurement 2"
RFFT_long_perseverative_RS_20_imp$Measurement[RFFT_long_perseverative_RS_20_imp$Measurement=="Perseverative.mcar3"] <- "Measurement 3"


# Se genera la variable Measurement como num�rica.
RFFT_long_perseverative_RS_20_imp$Measurement2<-Recode(RFFT_long_perseverative_RS_20_imp$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_long_perseverative_RS_20_imp$Measurement2<-as.numeric(RFFT_long_perseverative_RS_20_imp$Measurement2)

```


#### 9.3.1	 Reproducci�n de los an�lisis. Modelo n� dise�os �nicos: Regresi�n (20%)
  
Se ajusta el modelo 3 especificado en el art�culo: se incluyen _Edad_, _G�nero_, _Nivel de educaci�n_, _Medida (n� consecutivo)_ y la _interacci�n entre edad y medida (n� consecutivo)_.    

```{r echo=FALSE, warning=FALSE, message=FALSE}

## Se genera una nueva variable con los datos de los medidas pero como factor
RFFT_long_unique_RS_20_imp$Measurement2<-as.numeric(RFFT_long_unique_RS_20_imp$Measurement2)
## Se ajusta el modelo especificado en el art�culo.
model3_unique_RS_20<-lme(Unique~Age+Gender+Education+Measurement2+Age*Measurement2,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_long_unique_RS_20_imp,control=list(opt="optim"))
model3_unique_RS_20<-lme(Unique~Age+Gender+Education+Measurement2+Age*Measurement2,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_long_unique_RS_20_imp,control=list(opt="optim"))
model3_unique_RS_20_tab<-round(summary(model3_unique_RS_20)$tTable,dig=3)
model3_unique_RS_20_AIC<-summary(model3_unique_RS_20)$AIC
model3_unique_RS_20_sigma<-summary(model3_unique_RS_20)$sigma
# estimadores y p-valores en el modelo:
model3_unique_RS_20_tab34<-as.character(ifelse(model3_unique_RS_20_tab[34]<0.001, "<0.001",model3_unique_RS_20_tab[34]))
model3_unique_RS_20_tab35<-as.character(ifelse(model3_unique_RS_20_tab[35]<0.001, "<0.001",model3_unique_RS_20_tab[35]))
model3_unique_RS_20_tab36<-as.character(ifelse(model3_unique_RS_20_tab[36]<0.001, "<0.001",model3_unique_RS_20_tab[36]))
model3_unique_RS_20_tab37<-as.character(ifelse(model3_unique_RS_20_tab[37]<0.001, "<0.001",model3_unique_RS_20_tab[37]))
model3_unique_RS_20_tab38<-as.character(ifelse(model3_unique_RS_20_tab[38]<0.001, "<0.001",model3_unique_RS_20_tab[38]))
model3_unique_RS_20_tab39<-as.character(ifelse(model3_unique_RS_20_tab[39]<0.001, "<0.001",model3_unique_RS_20_tab[39]))
model3_unique_RS_20_tab40<-as.character(ifelse(model3_unique_RS_20_tab[40]<0.001, "<0.001",model3_unique_RS_20_tab[40]))

# coeficientes con sus IC al 95%:
model3_unique_RS_20_int<-round(intervals(model3_unique_RS_20)$fixed,digits=2)

```


#### 9.3.2	 Reproducci�n de los an�lisis. Modelos n� de errores perseverantes: Regresi�n (20%)   

Se ajusta el 1� modelo especificado en el art�culo, se incluyen: _Edad_, _G�nero_ y _Nivel de educaci�n_.       


```{r echo=FALSE, warning=FALSE, message=FALSE}

model1_perseverative_RS_20<-lme(Perseverative~Age+Gender+Education,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_long_perseverative_RS_20_imp,control=list(opt="optim"))
model1_perseverative_RS_20_tab<-round(summary(model1_perseverative_RS_20)$tTable,dig=3)
model1_perseverative_RS_20_AIC<-summary(model1_perseverative_RS_20)$AIC
model1_perseverative_RS_20_sigma<-summary(model1_perseverative_RS_20)$sigma

# estimadores y p-valores en el modelo:
model1_perseverative_RS_20_tab26<-as.character(ifelse(model1_perseverative_RS_20_tab[26]<0.001, "<0.001",model1_perseverative_RS_20_tab[26]))
model1_perseverative_RS_20_tab27<-as.character(ifelse(model1_perseverative_RS_20_tab[27]<0.001, "<0.001",model1_perseverative_RS_20_tab[27]))
model1_perseverative_RS_20_tab28<-as.character(ifelse(model1_perseverative_RS_20_tab[28]<0.001, "<0.001",model1_perseverative_RS_20_tab[28]))
model1_perseverative_RS_20_tab29<-as.character(ifelse(model1_perseverative_RS_20_tab[29]<0.001, "<0.001",model1_perseverative_RS_20_tab[29]))
model1_perseverative_RS_20_tab30<-as.character(ifelse(model1_perseverative_RS_20_tab[30]<0.001, "<0.001",model1_perseverative_RS_20_tab[30]))

# coeficientes con sus IC al 95%:
model1_perseverative_RS_20_int<-round(intervals(model1_perseverative_RS_20)$fixed,digits=2)


```


****

#         #
  
  
### 9.4	 Reproducci�n de los an�lisis: MI (PMM) (20%)

Se utilizan los dataframes generados anteriormente utilizando el algoritmo de *M�ltiple Imputaci�n utilizando el m�todo PMM (Predictive mean matching)*. Con los nuevos dataframes se reproducen los _mejores_ modelos del an�lisis original. En primer lugar se transponen los datos de formato _wide_ a formato _long_.    


```{r echo=FALSE, warning=FALSE, message=FALSE}

## Se transpone el data frame: de wide a long para los dise�os �nicos.
## se a�ade el casenr y se transpone
Casenr<-1:2515
RFFT_wide_unique_im5_20_imp2<-data.frame(Casenr,RFFT_wide_unique_im5_20_imp)
RFFT_long_unique_im5_20_imp <- melt(RFFT_wide_unique_im5_20_imp2, id.vars = c("Casenr","Age","Gender","Education"))
names(RFFT_long_unique_im5_20_imp)<-(c("Casenr", "Age","Gender","Education","Measurement","Unique"))

# Se ordena por sujeto y visita (time.f)

RFFT_long_unique_im5_20_imp <- with(RFFT_long_unique_im5_20_imp, RFFT_long_unique_im5_20_imp[order(Casenr, Measurement, decreasing=FALSE), ])

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

# RFFT_long_unique_im5_20_imp$Gender <- factor(RFFT_long_unique_im5_20_imp$Gender,
#                                 levels = c(1,2),
#                                 labels = c("Hombre", "Mujer")) 

# RFFT_long_unique_im5_20_imp$Education <- factor(RFFT_long_unique_im5_20_imp$Education,
#                                    levels = c(1,2,3,4),
#                                    labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))


# Se recodifica los valores de la variable Measurement

RFFT_long_unique_im5_20_imp$Measurement<-as.character(RFFT_long_unique_im5_20_imp$Measurement)
RFFT_long_unique_im5_20_imp$Measurement[RFFT_long_unique_im5_20_imp$Measurement=="Unique.mcar1"] <- "Measurement 1"
RFFT_long_unique_im5_20_imp$Measurement[RFFT_long_unique_im5_20_imp$Measurement=="Unique.mcar2"] <- "Measurement 2"
RFFT_long_unique_im5_20_imp$Measurement[RFFT_long_unique_im5_20_imp$Measurement=="Unique.mcar3"] <- "Measurement 3"


# Se genera la variable Measurement como num�rica.
RFFT_long_unique_im5_20_imp$Measurement2<-Recode(RFFT_long_unique_im5_20_imp$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_long_unique_im5_20_imp$Measurement2<-as.numeric(RFFT_long_unique_im5_20_imp$Measurement2)


## Se transpone el data frame: de wide a long  para los errores perseverantes.
## se a�ade el casenr y se transpone
Casenr<-1:2515
RFFT_wide_unique_im5_20_imp2<-data.frame(Casenr,RFFT_wide_unique_im5_20_imp)
RFFT_long_unique_im5_20_imp <- melt(RFFT_wide_unique_im5_20_imp2, id.vars = c("Casenr","Age","Gender","Education"))
#RFFT_long_unique_im5_20_imp[1:10,]
names(RFFT_long_unique_im5_20_imp)<-(c("Casenr", "Age","Gender","Education","Measurement","Unique"))

# Se ordena por sujeto y visita (time.f)

RFFT_long_unique_im5_20_imp <- with(RFFT_long_unique_im5_20_imp, RFFT_long_unique_im5_20_imp[order(Casenr, Measurement, decreasing=FALSE), ])

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

# RFFT_long_unique_im5_20_imp$Gender <- factor(RFFT_long_unique_im5_20_imp$Gender,
#                                 levels = c(1,2),
#                                 labels = c("Hombre", "Mujer")) 

# RFFT_long_unique_im5_20_imp$Education <- factor(RFFT_long_unique_im5_20_imp$Education,
#                                    levels = c(1,2,3,4),
#                                    labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))


# Se recodifica los valores de la variable Measurement

RFFT_long_unique_im5_20_imp$Measurement<-as.character(RFFT_long_unique_im5_20_imp$Measurement)
RFFT_long_unique_im5_20_imp$Measurement[RFFT_long_unique_im5_20_imp$Measurement=="Unique.mcar1"] <- "Measurement 1"
RFFT_long_unique_im5_20_imp$Measurement[RFFT_long_unique_im5_20_imp$Measurement=="Unique.mcar2"] <- "Measurement 2"
RFFT_long_unique_im5_20_imp$Measurement[RFFT_long_unique_im5_20_imp$Measurement=="Unique.mcar3"] <- "Measurement 3"


# Se genera la variable Measurement como num�rica.
RFFT_long_unique_im5_20_imp$Measurement2<-Recode(RFFT_long_unique_im5_20_imp$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_long_unique_im5_20_imp$Measurement2<-as.numeric(RFFT_long_unique_im5_20_imp$Measurement2)

## Se transpone el data frame: de wide a long  para los errores perseverantes.
## se a�ade el casenr y se transpone
Casenr<-1:2515
RFFT_wide_perseverative_im5_20_imp2<-data.frame(Casenr,RFFT_wide_perseverative_im5_20_imp)
RFFT_long_perseverative_im5_20_imp <- melt(RFFT_wide_perseverative_im5_20_imp2, id.vars = c("Casenr","Age","Gender","Education"))
#RFFT_long_perseverative_im5_20_imp[1:10,]
names(RFFT_long_perseverative_im5_20_imp)<-(c("Casenr", "Age","Gender","Education","Measurement","Perseverative"))

# Se ordena por sujeto y visita (time.f)

RFFT_long_perseverative_im5_20_imp <- with(RFFT_long_perseverative_im5_20_imp, RFFT_long_perseverative_im5_20_imp[order(Casenr, Measurement, decreasing=FALSE), ])

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

# RFFT_long_perseverative_im5_20_imp$Gender <- factor(RFFT_long_perseverative_im5_20_imp$Gender,
#                                 levels = c(1,2),
#                                 labels = c("Hombre", "Mujer")) 

# RFFT_long_perseverative_im5_20_imp$Education <- factor(RFFT_long_perseverative_im5_20_imp$Education,
#                                    levels = c(1,2,3,4),
#                                    labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))


# Se recodifica los valores de la variable Measurement

RFFT_long_perseverative_im5_20_imp$Measurement<-as.character(RFFT_long_perseverative_im5_20_imp$Measurement)
RFFT_long_perseverative_im5_20_imp$Measurement[RFFT_long_perseverative_im5_20_imp$Measurement=="Perseverative.mcar1"] <- "Measurement 1"
RFFT_long_perseverative_im5_20_imp$Measurement[RFFT_long_perseverative_im5_20_imp$Measurement=="Perseverative.mcar2"] <- "Measurement 2"
RFFT_long_perseverative_im5_20_imp$Measurement[RFFT_long_perseverative_im5_20_imp$Measurement=="Perseverative.mcar3"] <- "Measurement 3"


# Se genera la variable Measurement como num�rica.
RFFT_long_perseverative_im5_20_imp$Measurement2<-Recode(RFFT_long_perseverative_im5_20_imp$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_long_perseverative_im5_20_imp$Measurement2<-as.numeric(RFFT_long_perseverative_im5_20_imp$Measurement2)

```

****
  
#         #

#### 9.4.1	 Reproducci�n de los an�lisis. Modelo n� dise�os �nicos: MI (PMM) (20%)
  
  
  Se ajusta el modelo 3 especificado en el art�culo: se incluyen _Edad_, _G�nero_, _Nivel de educaci�n_, _Medida (n� consecutivo)_ y la _interacci�n entre edad y medida (n� consecutivo)_.    

```{r echo=FALSE, warning=FALSE, message=FALSE}

## Se genera una nueva variable con los datos de los medidas pero como factor
RFFT_long_unique_im5_20_imp$Measurement2<-as.numeric(RFFT_long_unique_im5_20_imp$Measurement2)
## Se ajusta el modelo especificado en el art�culo.
model3_unique_im5_20<-lme(Unique~Age+Gender+Education+Measurement2+Age*Measurement2,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_long_unique_im5_20_imp,control=list(opt="optim"))
model3_unique_im5_20<-lme(Unique~Age+Gender+Education+Measurement2+Age*Measurement2,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_long_unique_im5_20_imp,control=list(opt="optim"))
model3_unique_im5_20_tab<-round(summary(model3_unique_im5_20)$tTable,dig=3)
model3_unique_im5_20_AIC<-summary(model3_unique_im5_20)$AIC
model3_unique_im5_20_sigma<-summary(model3_unique_im5_20)$sigma
# estimadores y p-valores en el modelo:
model3_unique_im5_20_tab34<-as.character(ifelse(model3_unique_im5_20_tab[34]<0.001, "<0.001",model3_unique_im5_20_tab[34]))
model3_unique_im5_20_tab35<-as.character(ifelse(model3_unique_im5_20_tab[35]<0.001, "<0.001",model3_unique_im5_20_tab[35]))
model3_unique_im5_20_tab36<-as.character(ifelse(model3_unique_im5_20_tab[36]<0.001, "<0.001",model3_unique_im5_20_tab[36]))
model3_unique_im5_20_tab37<-as.character(ifelse(model3_unique_im5_20_tab[37]<0.001, "<0.001",model3_unique_im5_20_tab[37]))
model3_unique_im5_20_tab38<-as.character(ifelse(model3_unique_im5_20_tab[38]<0.001, "<0.001",model3_unique_im5_20_tab[38]))
model3_unique_im5_20_tab39<-as.character(ifelse(model3_unique_im5_20_tab[39]<0.001, "<0.001",model3_unique_im5_20_tab[39]))
model3_unique_im5_20_tab40<-as.character(ifelse(model3_unique_im5_20_tab[40]<0.001, "<0.001",model3_unique_im5_20_tab[40]))

# coeficientes con sus IC al 95%:
model3_unique_im5_20_int<-round(intervals(model3_unique_im5_20)$fixed,digits=2)

```

#### 9.4.2	 Reproducci�n de los an�lisis. Modelos n� de errores perseverantes: MI (PMM) (20%)   

Se ajusta el 1� modelo especificado en el art�culo, se incluyen: _Edad_, _G�nero_ y _Nivel de educaci�n_.      


```{r echo=FALSE, warning=FALSE, message=FALSE}

model1_perseverative_im5_20<-lme(Perseverative~Age+Gender+Education,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_long_perseverative_im5_20_imp,control=list(opt="optim"))
model1_perseverative_im5_20_tab<-round(summary(model1_perseverative_im5_20)$tTable,dig=3)
model1_perseverative_im5_20_AIC<-summary(model1_perseverative_im5_20)$AIC
model1_perseverative_im5_20_sigma<-summary(model1_perseverative_im5_20)$sigma

# estimadores y p-valores en el modelo:
model1_perseverative_im5_20_tab26<-as.character(ifelse(model1_perseverative_im5_20_tab[26]<0.001, "<0.001",model1_perseverative_im5_20_tab[26]))
model1_perseverative_im5_20_tab27<-as.character(ifelse(model1_perseverative_im5_20_tab[27]<0.001, "<0.001",model1_perseverative_im5_20_tab[27]))
model1_perseverative_im5_20_tab28<-as.character(ifelse(model1_perseverative_im5_20_tab[28]<0.001, "<0.001",model1_perseverative_im5_20_tab[28]))
model1_perseverative_im5_20_tab29<-as.character(ifelse(model1_perseverative_im5_20_tab[29]<0.001, "<0.001",model1_perseverative_im5_20_tab[29]))
model1_perseverative_im5_20_tab30<-as.character(ifelse(model1_perseverative_im5_20_tab[30]<0.001, "<0.001",model1_perseverative_im5_20_tab[30]))



# coeficientes con sus IC al 95%:
model1_perseverative_im5_20_int<-round(intervals(model1_perseverative_im5_20)$fixed,digits=2)


```


****

#         #

## 10.   REPRODUCCI�N DE LOS AN�LISIS CON 30% DE DATOS FALTANTES
Se reproducen los modelos multivariados mediante los 4 m�todos de tratamiento de datos faltantes con los dataframes que contiene 30% de datos faltantes.   

### 10.1	 Reproducci�n de los an�lisis: Eliminaci�n de los casos (listwise) (30%)   

Se utilizan los dataframes generados anteriormente mediante el m�todo de _eliminaci�n de los casos con datos faltantes (listwise)_ para reprodcucir el an�lisis original, en el caso de 30% de datos faltantes. 

#### 10.1.1	 Reproducci�n de los an�lisis. Modelo n� dise�os �nicos: Eliminaci�n de los casos (listwise) (30%)
  
Se ajusta el modelo 3 especificado en el art�culo: se incluyen _Edad_, _G�nero_, _Nivel de educaci�n_, _Medida (n� consecutivo)_ y la _interacci�n entre edad y medida (n� consecutivo)_.    

```{r echo=FALSE, warning=FALSE, message=FALSE}

## Se ajusta el modelo especificado en el art�culo.
model3_unique_sinNA_30<-lme(Unique~Age+Gender+Education+Measurement2+Age*Measurement2,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_unique_sinNA_30,control=list(opt="optim"))
model3_unique_sinNA_30_tab<-round(summary(model3_unique_sinNA_30)$tTable,dig=3)
model3_unique_sinNA_30_AIC<-summary(model3_unique_sinNA_30)$AIC
model3_unique_sinNA_30_sigma<-summary(model3_unique_sinNA_30)$sigma
# estimadores y p-valores en el modelo:
model3_unique_sinNA_30_tab34<-as.character(ifelse(model3_unique_sinNA_30_tab[34]<0.001, "<0.001",model3_unique_sinNA_30_tab[34]))
model3_unique_sinNA_30_tab35<-as.character(ifelse(model3_unique_sinNA_30_tab[35]<0.001, "<0.001",model3_unique_sinNA_30_tab[35]))
model3_unique_sinNA_30_tab36<-as.character(ifelse(model3_unique_sinNA_30_tab[36]<0.001, "<0.001",model3_unique_sinNA_30_tab[36]))
model3_unique_sinNA_30_tab37<-as.character(ifelse(model3_unique_sinNA_30_tab[37]<0.001, "<0.001",model3_unique_sinNA_30_tab[37]))
model3_unique_sinNA_30_tab38<-as.character(ifelse(model3_unique_sinNA_30_tab[38]<0.001, "<0.001",model3_unique_sinNA_30_tab[38]))
model3_unique_sinNA_30_tab39<-as.character(ifelse(model3_unique_sinNA_30_tab[39]<0.001, "<0.001",model3_unique_sinNA_30_tab[39]))
model3_unique_sinNA_30_tab40<-as.character(ifelse(model3_unique_sinNA_30_tab[40]<0.001, "<0.001",model3_unique_sinNA_30_tab[40]))

# coeficientes con sus IC al 95%:
model3_unique_sinNA_30_int<-round(intervals(model3_unique_sinNA_30)$fixed,digits=2)

```


#### 10.1.2	 Reproducci�n de los an�lisis. Modelos n� de errores perseverantes: Eliminaci�n de los casos (listwise) (30%)      

Se ajusta el 1� modelo especificado en el art�culo, se incluyen: _Edad_, _G�nero_ y _Nivel de educaci�n_.  


```{r echo=FALSE, warning=FALSE, message=FALSE}

model1_perseverative_sinNA_30<-lme(Perseverative~Age+Gender+Education,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_perseverative_sinNA_30,control=list(opt="optim"))
model1_perseverative_sinNA_30_tab<-round(summary(model1_perseverative_sinNA_30)$tTable,dig=3)
model1_perseverative_sinNA_30_AIC<-summary(model1_perseverative_sinNA_30)$AIC
model1_perseverative_sinNA_30_sigma<-summary(model1_perseverative_sinNA_30)$sigma

# estimadores y p-valores en el modelo:
model1_perseverative_sinNA_30_tab26<-as.character(ifelse(model1_perseverative_sinNA_30_tab[26]<0.001, "<0.001",model1_perseverative_sinNA_30_tab[26]))
model1_perseverative_sinNA_30_tab27<-as.character(ifelse(model1_perseverative_sinNA_30_tab[27]<0.001, "<0.001",model1_perseverative_sinNA_30_tab[27]))
model1_perseverative_sinNA_30_tab28<-as.character(ifelse(model1_perseverative_sinNA_30_tab[28]<0.001, "<0.001",model1_perseverative_sinNA_30_tab[28]))
model1_perseverative_sinNA_30_tab29<-as.character(ifelse(model1_perseverative_sinNA_30_tab[29]<0.001, "<0.001",model1_perseverative_sinNA_30_tab[29]))
model1_perseverative_sinNA_30_tab30<-as.character(ifelse(model1_perseverative_sinNA_30_tab[30]<0.001, "<0.001",model1_perseverative_sinNA_30_tab[30]))


# coeficientes con sus IC al 95%:
model1_perseverative_sinNA_30_int<-round(intervals(model1_perseverative_sinNA_30)$fixed,digits=2)

```

****

#         #

### 10.2 Reproducci�n de los an�lisis: Media (30%)   

Se utilizan los dataframes generados anteriormente mediante el m�todo de *Imputaci�n por media *, que reemplaza los datos faltantes por el valor medio del resto de datos conocidos en de la variable. Y con los nuevos dataframes se reproducen los _mejores_ modelos del an�lisis original. En primer lugar se transponen los datos de formato _wide_ a formato _long_.    


```{r echo=FALSE, warning=FALSE, message=FALSE}

## Se transpone el data frame: de wide a long para los dise�os �nicos.
## se a�ade el casenr y se transpone
Casenr<-1:2515
RFFT_wide_unique_MD_30_imp2<-data.frame(Casenr,RFFT_wide_unique_MD_30_imp)
RFFT_long_unique_MD_30_imp <- melt(RFFT_wide_unique_MD_30_imp2, id.vars = c("Casenr","Age","Gender","Education"))
names(RFFT_long_unique_MD_30_imp)<-(c("Casenr", "Age","Gender","Education","Measurement","Unique"))

# Se ordena por sujeto y visita (time.f)

RFFT_long_unique_MD_30_imp <- with(RFFT_long_unique_MD_30_imp, RFFT_long_unique_MD_30_imp[order(Casenr, Measurement, decreasing=FALSE), ])
# RFFT_long_unique_MD_30_imp[1:12,]

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

# RFFT_long_unique_MD_30_imp$Gender <- factor(RFFT_long_unique_MD_30_imp$Gender,
#                                 levels = c(1,2),
#                                 labels = c("Hombre", "Mujer")) 

# RFFT_long_unique_MD_30_imp$Education <- factor(RFFT_long_unique_MD_30_imp$Education,
#                                    levels = c(1,2,3,4),
#                                    labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))


# Se recodifica los valores de la variable Measurement

RFFT_long_unique_MD_30_imp$Measurement<-as.character(RFFT_long_unique_MD_30_imp$Measurement)
RFFT_long_unique_MD_30_imp$Measurement[RFFT_long_unique_MD_30_imp$Measurement=="Unique.mcar1"] <- "Measurement 1"
RFFT_long_unique_MD_30_imp$Measurement[RFFT_long_unique_MD_30_imp$Measurement=="Unique.mcar2"] <- "Measurement 2"
RFFT_long_unique_MD_30_imp$Measurement[RFFT_long_unique_MD_30_imp$Measurement=="Unique.mcar3"] <- "Measurement 3"


# Se genera la variable Measurement como num�rica.
RFFT_long_unique_MD_30_imp$Measurement2<-Recode(RFFT_long_unique_MD_30_imp$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_long_unique_MD_30_imp$Measurement2<-as.numeric(RFFT_long_unique_MD_30_imp$Measurement2)


## Se transpone el data frame: de wide a long  para los errores perseverantes.
## se a�ade el casenr y se transpone
Casenr<-1:2515
RFFT_wide_unique_MD_30_imp2<-data.frame(Casenr,RFFT_wide_unique_MD_30_imp)
RFFT_long_unique_MD_30_imp <- melt(RFFT_wide_unique_MD_30_imp2, id.vars = c("Casenr","Age","Gender","Education"))
#RFFT_long_unique_MD_30_imp[1:10,]
names(RFFT_long_unique_MD_30_imp)<-(c("Casenr", "Age","Gender","Education","Measurement","Unique"))

# Se ordena por sujeto y visita (time.f)

RFFT_long_unique_MD_30_imp <- with(RFFT_long_unique_MD_30_imp, RFFT_long_unique_MD_30_imp[order(Casenr, Measurement, decreasing=FALSE), ])

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

# RFFT_long_unique_MD_30_imp$Gender <- factor(RFFT_long_unique_MD_30_imp$Gender,
#                                 levels = c(1,2),
#                                 labels = c("Hombre", "Mujer")) 

# RFFT_long_unique_MD_30_imp$Education <- factor(RFFT_long_unique_MD_30_imp$Education,
#                                    levels = c(1,2,3,4),
#                                    labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))


# Se recodifica los valores de la variable Measurement

RFFT_long_unique_MD_30_imp$Measurement<-as.character(RFFT_long_unique_MD_30_imp$Measurement)
RFFT_long_unique_MD_30_imp$Measurement[RFFT_long_unique_MD_30_imp$Measurement=="Unique.mcar1"] <- "Measurement 1"
RFFT_long_unique_MD_30_imp$Measurement[RFFT_long_unique_MD_30_imp$Measurement=="Unique.mcar2"] <- "Measurement 2"
RFFT_long_unique_MD_30_imp$Measurement[RFFT_long_unique_MD_30_imp$Measurement=="Unique.mcar3"] <- "Measurement 3"


# Se genera la variable Measurement como num�rica.
RFFT_long_unique_MD_30_imp$Measurement2<-Recode(RFFT_long_unique_MD_30_imp$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_long_unique_MD_30_imp$Measurement2<-as.numeric(RFFT_long_unique_MD_30_imp$Measurement2)


## Se transpone el data frame: de wide a long  para los errores perseverantes.
## se a�ade el casenr y se transpone
Casenr<-1:2515
RFFT_wide_perseverative_MD_30_imp2<-data.frame(Casenr,RFFT_wide_perseverative_MD_30_imp)
RFFT_long_perseverative_MD_30_imp <- melt(RFFT_wide_perseverative_MD_30_imp2, id.vars = c("Casenr","Age","Gender","Education"))
#RFFT_long_perseverative_MD_30_imp[1:10,]
names(RFFT_long_perseverative_MD_30_imp)<-(c("Casenr", "Age","Gender","Education","Measurement","Perseverative"))

# Se ordena por sujeto y visita (time.f)

RFFT_long_perseverative_MD_30_imp <- with(RFFT_long_perseverative_MD_30_imp, RFFT_long_perseverative_MD_30_imp[order(Casenr, Measurement, decreasing=FALSE), ])

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

# RFFT_long_perseverative_MD_30_imp$Gender <- factor(RFFT_long_perseverative_MD_30_imp$Gender,
#                                 levels = c(1,2),
#                                 labels = c("Hombre", "Mujer")) 

# RFFT_long_perseverative_MD_30_imp$Education <- factor(RFFT_long_perseverative_MD_30_imp$Education,
#                                    levels = c(1,2,3,4),
#                                    labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))


# Se recodifica los valores de la variable Measurement

RFFT_long_perseverative_MD_30_imp$Measurement<-as.character(RFFT_long_perseverative_MD_30_imp$Measurement)
RFFT_long_perseverative_MD_30_imp$Measurement[RFFT_long_perseverative_MD_30_imp$Measurement=="Perseverative.mcar1"] <- "Measurement 1"
RFFT_long_perseverative_MD_30_imp$Measurement[RFFT_long_perseverative_MD_30_imp$Measurement=="Perseverative.mcar2"] <- "Measurement 2"
RFFT_long_perseverative_MD_30_imp$Measurement[RFFT_long_perseverative_MD_30_imp$Measurement=="Perseverative.mcar3"] <- "Measurement 3"


# Se genera la variable Measurement como num�rica.
RFFT_long_perseverative_MD_30_imp$Measurement2<-Recode(RFFT_long_perseverative_MD_30_imp$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_long_perseverative_MD_30_imp$Measurement2<-as.numeric(RFFT_long_perseverative_MD_30_imp$Measurement2)

```


#### 10.2.1	 Reproducci�n de los an�lisis. Modelo n� dise�os �nicos: Media (30%)
  

Se ajusta el modelo 3 especificado en el art�culo: se incluyen _Edad_, _G�nero_, _Nivel de educaci�n_, _Medida (n� consecutivo)_ y la _interacci�n entre edad y medida (n� consecutivo)_.    

```{r echo=FALSE, warning=FALSE, message=FALSE}

## Se genera una nueva variable con los datos de los medidas pero como factor
RFFT_long_unique_MD_30_imp$Measurement2<-as.numeric(RFFT_long_unique_MD_30_imp$Measurement2)
# RFFT_long_unique_MD_30_imp[1:10,]
## Se ajusta el modelo especificado en el art�culo.
model3_unique_MD_30<-lme(Unique~Age+Gender+Education+Measurement2+Age*Measurement2,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_long_unique_MD_30_imp,control=list(opt="optim"))
model3_unique_MD_30<-lme(Unique~Age+Gender+Education+Measurement2+Age*Measurement2,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_long_unique_MD_30_imp,control=list(opt="optim"))
model3_unique_MD_30_tab<-round(summary(model3_unique_MD_30)$tTable,dig=3)
model3_unique_MD_30_AIC<-summary(model3_unique_MD_30)$AIC
model3_unique_MD_30_sigma<-summary(model3_unique_MD_30)$sigma
# estimadores y p-valores en el modelo:
model3_unique_MD_30_tab34<-as.character(ifelse(model3_unique_MD_30_tab[34]<0.001, "<0.001",model3_unique_MD_30_tab[34]))
model3_unique_MD_30_tab35<-as.character(ifelse(model3_unique_MD_30_tab[35]<0.001, "<0.001",model3_unique_MD_30_tab[35]))
model3_unique_MD_30_tab36<-as.character(ifelse(model3_unique_MD_30_tab[36]<0.001, "<0.001",model3_unique_MD_30_tab[36]))
model3_unique_MD_30_tab37<-as.character(ifelse(model3_unique_MD_30_tab[37]<0.001, "<0.001",model3_unique_MD_30_tab[37]))
model3_unique_MD_30_tab38<-as.character(ifelse(model3_unique_MD_30_tab[38]<0.001, "<0.001",model3_unique_MD_30_tab[38]))
model3_unique_MD_30_tab39<-as.character(ifelse(model3_unique_MD_30_tab[39]<0.001, "<0.001",model3_unique_MD_30_tab[39]))
model3_unique_MD_30_tab40<-as.character(ifelse(model3_unique_MD_30_tab[40]<0.001, "<0.001",model3_unique_MD_30_tab[40]))

# coeficientes con sus IC al 95%:
model3_unique_MD_30_int<-round(intervals(model3_unique_MD_30)$fixed,digits=2)

```

#### 10.2.2	 Reproducci�n de los an�lisis. Modelos n� de errores perseverantes: Media (30%)   

Se ajusta el 1� modelo especificado en el art�culo, se incluyen: _Edad_, _G�nero_ y _Nivel de educaci�n_.     

```{r echo=FALSE, warning=FALSE, message=FALSE}

model1_perseverative_MD_30<-lme(Perseverative~Age+Gender+Education,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_long_perseverative_MD_30_imp,control=list(opt="optim"))
model1_perseverative_MD_30_tab<-round(summary(model1_perseverative_MD_30)$tTable,dig=3)
model1_perseverative_MD_30_AIC<-summary(model1_perseverative_MD_30)$AIC
model1_perseverative_MD_30_sigma<-summary(model1_perseverative_MD_30)$sigma

# estimadores y p-valores en el modelo:
model1_perseverative_MD_30_tab26<-as.character(ifelse(model1_perseverative_MD_30_tab[26]<0.001, "<0.001",model1_perseverative_MD_30_tab[26]))
model1_perseverative_MD_30_tab27<-as.character(ifelse(model1_perseverative_MD_30_tab[27]<0.001, "<0.001",model1_perseverative_MD_30_tab[27]))
model1_perseverative_MD_30_tab28<-as.character(ifelse(model1_perseverative_MD_30_tab[28]<0.001, "<0.001",model1_perseverative_MD_30_tab[28]))
model1_perseverative_MD_30_tab29<-as.character(ifelse(model1_perseverative_MD_30_tab[29]<0.001, "<0.001",model1_perseverative_MD_30_tab[29]))
model1_perseverative_MD_30_tab30<-as.character(ifelse(model1_perseverative_MD_30_tab[30]<0.001, "<0.001",model1_perseverative_MD_30_tab[30]))



# coeficientes con sus IC al 95%:
# model1_perseverative_MD_30_int<-round(intervals(model1_perseverative_MD_30)$fixed,digits=2)


```

****

#         #
  
  
### 10.3	 Reproducci�n de los an�lisis: Regresi�n (30%)

Se utilizan los dataframes generados anteriormente mediante el m�todo de *Imputaci�n por regresi�n simple (media condicional)*, que reemplaza los datos faltantes por el valor predicho a partir de la aplicaci�n de la regresi�n simple sobre el resto de datos conocidos en el sujeto. Con los nuevos dataframes se reproducen los _mejores_ modelos del an�lisis original. En primer lugar se transponen los datos de formato _wide_ a formato _long_.    


```{r echo=FALSE, warning=FALSE, message=FALSE}

## Se transpone el data frame: de wide a long para los dise�os �nicos.
## se a�ade el casenr y se transpone
Casenr<-1:2515
RFFT_wide_unique_RS_30_imp2<-data.frame(Casenr,RFFT_wide_unique_RS_30_imp)
RFFT_long_unique_RS_30_imp <- melt(RFFT_wide_unique_RS_30_imp2, id.vars = c("Casenr","Age","Gender","Education"))
names(RFFT_long_unique_RS_30_imp)<-(c("Casenr", "Age","Gender","Education","Measurement","Unique"))

# Se ordena por sujeto y visita (time.f)

RFFT_long_unique_RS_30_imp <- with(RFFT_long_unique_RS_30_imp, RFFT_long_unique_RS_30_imp[order(Casenr, Measurement, decreasing=FALSE), ])

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

# RFFT_long_unique_RS_30_imp$Gender <- factor(RFFT_long_unique_RS_30_imp$Gender,
#                                 levels = c(1,2),
#                                 labels = c("Hombre", "Mujer")) 

# RFFT_long_unique_RS_30_imp$Education <- factor(RFFT_long_unique_RS_30_imp$Education,
#                                    levels = c(1,2,3,4),
#                                    labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))


# Se recodifica los valores de la variable Measurement

RFFT_long_unique_RS_30_imp$Measurement<-as.character(RFFT_long_unique_RS_30_imp$Measurement)
RFFT_long_unique_RS_30_imp$Measurement[RFFT_long_unique_RS_30_imp$Measurement=="Unique.mcar1"] <- "Measurement 1"
RFFT_long_unique_RS_30_imp$Measurement[RFFT_long_unique_RS_30_imp$Measurement=="Unique.mcar2"] <- "Measurement 2"
RFFT_long_unique_RS_30_imp$Measurement[RFFT_long_unique_RS_30_imp$Measurement=="Unique.mcar3"] <- "Measurement 3"


# Se genera la variable Measurement como num�rica.
RFFT_long_unique_RS_30_imp$Measurement2<-Recode(RFFT_long_unique_RS_30_imp$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_long_unique_RS_30_imp$Measurement2<-as.numeric(RFFT_long_unique_RS_30_imp$Measurement2)


## Se transpone el data frame: de wide a long  para los errores perseverantes.
## se a�ade el casenr y se transpone
Casenr<-1:2515
RFFT_wide_unique_RS_30_imp2<-data.frame(Casenr,RFFT_wide_unique_RS_30_imp)
RFFT_long_unique_RS_30_imp <- melt(RFFT_wide_unique_RS_30_imp2, id.vars = c("Casenr","Age","Gender","Education"))
#RFFT_long_unique_RS_30_imp[1:10,]
names(RFFT_long_unique_RS_30_imp)<-(c("Casenr", "Age","Gender","Education","Measurement","Unique"))

# Se ordena por sujeto y visita (time.f)

RFFT_long_unique_RS_30_imp <- with(RFFT_long_unique_RS_30_imp, RFFT_long_unique_RS_30_imp[order(Casenr, Measurement, decreasing=FALSE), ])

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

# RFFT_long_unique_RS_30_imp$Gender <- factor(RFFT_long_unique_RS_30_imp$Gender,
#                                 levels = c(1,2),
#                                 labels = c("Hombre", "Mujer")) 

# RFFT_long_unique_RS_30_imp$Education <- factor(RFFT_long_unique_RS_30_imp$Education,
#                                    levels = c(1,2,3,4),
#                                    labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))


# Se recodifica los valores de la variable Measurement

RFFT_long_unique_RS_30_imp$Measurement<-as.character(RFFT_long_unique_RS_30_imp$Measurement)
RFFT_long_unique_RS_30_imp$Measurement[RFFT_long_unique_RS_30_imp$Measurement=="Unique.mcar1"] <- "Measurement 1"
RFFT_long_unique_RS_30_imp$Measurement[RFFT_long_unique_RS_30_imp$Measurement=="Unique.mcar2"] <- "Measurement 2"
RFFT_long_unique_RS_30_imp$Measurement[RFFT_long_unique_RS_30_imp$Measurement=="Unique.mcar3"] <- "Measurement 3"


# Se genera la variable Measurement como num�rica.
RFFT_long_unique_RS_30_imp$Measurement2<-Recode(RFFT_long_unique_RS_30_imp$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_long_unique_RS_30_imp$Measurement2<-as.numeric(RFFT_long_unique_RS_30_imp$Measurement2)

## Se transpone el data frame: de wide a long  para los errores perseverantes.
## se a�ade el casenr y se transpone
Casenr<-1:2515
RFFT_wide_perseverative_RS_30_imp2<-data.frame(Casenr,RFFT_wide_perseverative_RS_30_imp)
RFFT_long_perseverative_RS_30_imp <- melt(RFFT_wide_perseverative_RS_30_imp2, id.vars = c("Casenr","Age","Gender","Education"))
#RFFT_long_perseverative_RS_30_imp[1:10,]
names(RFFT_long_perseverative_RS_30_imp)<-(c("Casenr", "Age","Gender","Education","Measurement","Perseverative"))

# Se ordena por sujeto y visita (time.f)

RFFT_long_perseverative_RS_30_imp <- with(RFFT_long_perseverative_RS_30_imp, RFFT_long_perseverative_RS_30_imp[order(Casenr, Measurement, decreasing=FALSE), ])

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

# RFFT_long_perseverative_RS_30_imp$Gender <- factor(RFFT_long_perseverative_RS_30_imp$Gender,
#                                 levels = c(1,2),
#                                 labels = c("Hombre", "Mujer")) 

# RFFT_long_perseverative_RS_30_imp$Education <- factor(RFFT_long_perseverative_RS_30_imp$Education,
#                                    levels = c(1,2,3,4),
#                                    labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))


# Se recodifica los valores de la variable Measurement

RFFT_long_perseverative_RS_30_imp$Measurement<-as.character(RFFT_long_perseverative_RS_30_imp$Measurement)
RFFT_long_perseverative_RS_30_imp$Measurement[RFFT_long_perseverative_RS_30_imp$Measurement=="Perseverative.mcar1"] <- "Measurement 1"
RFFT_long_perseverative_RS_30_imp$Measurement[RFFT_long_perseverative_RS_30_imp$Measurement=="Perseverative.mcar2"] <- "Measurement 2"
RFFT_long_perseverative_RS_30_imp$Measurement[RFFT_long_perseverative_RS_30_imp$Measurement=="Perseverative.mcar3"] <- "Measurement 3"


# Se genera la variable Measurement como num�rica.
RFFT_long_perseverative_RS_30_imp$Measurement2<-Recode(RFFT_long_perseverative_RS_30_imp$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_long_perseverative_RS_30_imp$Measurement2<-as.numeric(RFFT_long_perseverative_RS_30_imp$Measurement2)

```


#### 10.3.1	 Reproducci�n de los an�lisis. Modelo n� dise�os �nicos: Regresi�n (30%)
  
Se ajusta el modelo 3 especificado en el art�culo: se incluyen _Edad_, _G�nero_, _Nivel de educaci�n_, _Medida (n� consecutivo)_ y la _interacci�n entre edad y medida (n� consecutivo)_.    

```{r echo=FALSE, warning=FALSE, message=FALSE}

## Se genera una nueva variable con los datos de los medidas pero como factor
RFFT_long_unique_RS_30_imp$Measurement2<-as.numeric(RFFT_long_unique_RS_30_imp$Measurement2)
## Se ajusta el modelo especificado en el art�culo.
model3_unique_RS_30<-lme(Unique~Age+Gender+Education+Measurement2+Age*Measurement2,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_long_unique_RS_30_imp,control=list(opt="optim"))
model3_unique_RS_30<-lme(Unique~Age+Gender+Education+Measurement2+Age*Measurement2,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_long_unique_RS_30_imp,control=list(opt="optim"))
model3_unique_RS_30_tab<-round(summary(model3_unique_RS_30)$tTable,dig=3)
model3_unique_RS_30_AIC<-summary(model3_unique_RS_30)$AIC
model3_unique_RS_30_sigma<-summary(model3_unique_RS_30)$sigma
# estimadores y p-valores en el modelo:
model3_unique_RS_30_tab34<-as.character(ifelse(model3_unique_RS_30_tab[34]<0.001, "<0.001",model3_unique_RS_30_tab[34]))
model3_unique_RS_30_tab35<-as.character(ifelse(model3_unique_RS_30_tab[35]<0.001, "<0.001",model3_unique_RS_30_tab[35]))
model3_unique_RS_30_tab36<-as.character(ifelse(model3_unique_RS_30_tab[36]<0.001, "<0.001",model3_unique_RS_30_tab[36]))
model3_unique_RS_30_tab37<-as.character(ifelse(model3_unique_RS_30_tab[37]<0.001, "<0.001",model3_unique_RS_30_tab[37]))
model3_unique_RS_30_tab38<-as.character(ifelse(model3_unique_RS_30_tab[38]<0.001, "<0.001",model3_unique_RS_30_tab[38]))
model3_unique_RS_30_tab39<-as.character(ifelse(model3_unique_RS_30_tab[39]<0.001, "<0.001",model3_unique_RS_30_tab[39]))
model3_unique_RS_30_tab40<-as.character(ifelse(model3_unique_RS_30_tab[40]<0.001, "<0.001",model3_unique_RS_30_tab[40]))

# coeficientes con sus IC al 95%:
model3_unique_RS_30_int<-round(intervals(model3_unique_RS_30)$fixed,digits=2)

```


#### 10.3.2	 Reproducci�n de los an�lisis. Modelos n� de errores perseverantes: Regresi�n (30%)   

Se ajusta el 1� modelo especificado en el art�culo, se incluyen: _Edad_, _G�nero_ y _Nivel de educaci�n_.       


```{r echo=FALSE, warning=FALSE, message=FALSE}

model1_perseverative_RS_30<-lme(Perseverative~Age+Gender+Education,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_long_perseverative_RS_30_imp,control=list(opt="optim"))
model1_perseverative_RS_30_tab<-round(summary(model1_perseverative_RS_30)$tTable,dig=3)
model1_perseverative_RS_30_AIC<-summary(model1_perseverative_RS_30)$AIC
model1_perseverative_RS_30_sigma<-summary(model1_perseverative_RS_30)$sigma

# estimadores y p-valores en el modelo:
model1_perseverative_RS_30_tab26<-as.character(ifelse(model1_perseverative_RS_30_tab[26]<0.001, "<0.001",model1_perseverative_RS_30_tab[26]))
model1_perseverative_RS_30_tab27<-as.character(ifelse(model1_perseverative_RS_30_tab[27]<0.001, "<0.001",model1_perseverative_RS_30_tab[27]))
model1_perseverative_RS_30_tab28<-as.character(ifelse(model1_perseverative_RS_30_tab[28]<0.001, "<0.001",model1_perseverative_RS_30_tab[28]))
model1_perseverative_RS_30_tab29<-as.character(ifelse(model1_perseverative_RS_30_tab[29]<0.001, "<0.001",model1_perseverative_RS_30_tab[29]))
model1_perseverative_RS_30_tab30<-as.character(ifelse(model1_perseverative_RS_30_tab[30]<0.001, "<0.001",model1_perseverative_RS_30_tab[30]))

# coeficientes con sus IC al 95%:
model1_perseverative_RS_30_int<-round(intervals(model1_perseverative_RS_30)$fixed,digits=2)


```


****

#         #
  
  
### 10.4	 Reproducci�n de los an�lisis: MI (PMM) (30%)

Se utilizan los dataframes generados anteriormente utilizando el algoritmo de *M�ltiple Imputaci�n utilizando el m�todo PMM (Predictive mean matching)*. Con los nuevos dataframes se reproducen los _mejores_ modelos del an�lisis original. En primer lugar se transponen los datos de formato _wide_ a formato _long_.    


```{r echo=FALSE, warning=FALSE, message=FALSE}

## Se transpone el data frame: de wide a long para los dise�os �nicos.
## se a�ade el casenr y se transpone
Casenr<-1:2515
RFFT_wide_unique_im5_30_imp2<-data.frame(Casenr,RFFT_wide_unique_im5_30_imp)
RFFT_long_unique_im5_30_imp <- melt(RFFT_wide_unique_im5_30_imp2, id.vars = c("Casenr","Age","Gender","Education"))
names(RFFT_long_unique_im5_30_imp)<-(c("Casenr", "Age","Gender","Education","Measurement","Unique"))

# Se ordena por sujeto y visita (time.f)

RFFT_long_unique_im5_30_imp <- with(RFFT_long_unique_im5_30_imp, RFFT_long_unique_im5_30_imp[order(Casenr, Measurement, decreasing=FALSE), ])

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

# RFFT_long_unique_im5_30_imp$Gender <- factor(RFFT_long_unique_im5_30_imp$Gender,
#                                 levels = c(1,2),
#                                 labels = c("Hombre", "Mujer")) 

# RFFT_long_unique_im5_30_imp$Education <- factor(RFFT_long_unique_im5_30_imp$Education,
#                                    levels = c(1,2,3,4),
#                                    labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))


# Se recodifica los valores de la variable Measurement

RFFT_long_unique_im5_30_imp$Measurement<-as.character(RFFT_long_unique_im5_30_imp$Measurement)
RFFT_long_unique_im5_30_imp$Measurement[RFFT_long_unique_im5_30_imp$Measurement=="Unique.mcar1"] <- "Measurement 1"
RFFT_long_unique_im5_30_imp$Measurement[RFFT_long_unique_im5_30_imp$Measurement=="Unique.mcar2"] <- "Measurement 2"
RFFT_long_unique_im5_30_imp$Measurement[RFFT_long_unique_im5_30_imp$Measurement=="Unique.mcar3"] <- "Measurement 3"


# Se genera la variable Measurement como num�rica.
RFFT_long_unique_im5_30_imp$Measurement2<-Recode(RFFT_long_unique_im5_30_imp$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_long_unique_im5_30_imp$Measurement2<-as.numeric(RFFT_long_unique_im5_30_imp$Measurement2)


## Se transpone el data frame: de wide a long  para los errores perseverantes.
## se a�ade el casenr y se transpone
Casenr<-1:2515
RFFT_wide_unique_im5_30_imp2<-data.frame(Casenr,RFFT_wide_unique_im5_30_imp)
RFFT_long_unique_im5_30_imp <- melt(RFFT_wide_unique_im5_30_imp2, id.vars = c("Casenr","Age","Gender","Education"))
#RFFT_long_unique_im5_30_imp[1:10,]
names(RFFT_long_unique_im5_30_imp)<-(c("Casenr", "Age","Gender","Education","Measurement","Unique"))

# Se ordena por sujeto y visita (time.f)

RFFT_long_unique_im5_30_imp <- with(RFFT_long_unique_im5_30_imp, RFFT_long_unique_im5_30_imp[order(Casenr, Measurement, decreasing=FALSE), ])

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

# RFFT_long_unique_im5_30_imp$Gender <- factor(RFFT_long_unique_im5_30_imp$Gender,
#                                 levels = c(1,2),
#                                 labels = c("Hombre", "Mujer")) 

# RFFT_long_unique_im5_30_imp$Education <- factor(RFFT_long_unique_im5_30_imp$Education,
#                                    levels = c(1,2,3,4),
#                                    labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))


# Se recodifica los valores de la variable Measurement

RFFT_long_unique_im5_30_imp$Measurement<-as.character(RFFT_long_unique_im5_30_imp$Measurement)
RFFT_long_unique_im5_30_imp$Measurement[RFFT_long_unique_im5_30_imp$Measurement=="Unique.mcar1"] <- "Measurement 1"
RFFT_long_unique_im5_30_imp$Measurement[RFFT_long_unique_im5_30_imp$Measurement=="Unique.mcar2"] <- "Measurement 2"
RFFT_long_unique_im5_30_imp$Measurement[RFFT_long_unique_im5_30_imp$Measurement=="Unique.mcar3"] <- "Measurement 3"


# Se genera la variable Measurement como num�rica.
RFFT_long_unique_im5_30_imp$Measurement2<-Recode(RFFT_long_unique_im5_30_imp$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_long_unique_im5_30_imp$Measurement2<-as.numeric(RFFT_long_unique_im5_30_imp$Measurement2)

## Se transpone el data frame: de wide a long  para los errores perseverantes.
## se a�ade el casenr y se transpone
Casenr<-1:2515
RFFT_wide_perseverative_im5_30_imp2<-data.frame(Casenr,RFFT_wide_perseverative_im5_30_imp)
RFFT_long_perseverative_im5_30_imp <- melt(RFFT_wide_perseverative_im5_30_imp2, id.vars = c("Casenr","Age","Gender","Education"))
#RFFT_long_perseverative_im5_30_imp[1:10,]
names(RFFT_long_perseverative_im5_30_imp)<-(c("Casenr", "Age","Gender","Education","Measurement","Perseverative"))

# Se ordena por sujeto y visita (time.f)

RFFT_long_perseverative_im5_30_imp <- with(RFFT_long_perseverative_im5_30_imp, RFFT_long_perseverative_im5_30_imp[order(Casenr, Measurement, decreasing=FALSE), ])

# Se a�aden valores a variable Gender, Educaci�n y Missing_Unique

# RFFT_long_perseverative_im5_30_imp$Gender <- factor(RFFT_long_perseverative_im5_30_imp$Gender,
#                                 levels = c(1,2),
#                                 labels = c("Hombre", "Mujer")) 

# RFFT_long_perseverative_im5_30_imp$Education <- factor(RFFT_long_perseverative_im5_30_imp$Education,
#                                    levels = c(1,2,3,4),
#                                    labels = c("Primaria", "Secundaria inicial", "Secundaria superior","Universitaria"))


# Se recodifica los valores de la variable Measurement

RFFT_long_perseverative_im5_30_imp$Measurement<-as.character(RFFT_long_perseverative_im5_30_imp$Measurement)
RFFT_long_perseverative_im5_30_imp$Measurement[RFFT_long_perseverative_im5_30_imp$Measurement=="Perseverative.mcar1"] <- "Measurement 1"
RFFT_long_perseverative_im5_30_imp$Measurement[RFFT_long_perseverative_im5_30_imp$Measurement=="Perseverative.mcar2"] <- "Measurement 2"
RFFT_long_perseverative_im5_30_imp$Measurement[RFFT_long_perseverative_im5_30_imp$Measurement=="Perseverative.mcar3"] <- "Measurement 3"


# Se genera la variable Measurement como num�rica.
RFFT_long_perseverative_im5_30_imp$Measurement2<-Recode(RFFT_long_perseverative_im5_30_imp$Measurement,'"Measurement 1"=1; "Measurement 2"=2;"Measurement 3"=3',as.factor.result=FALSE)
RFFT_long_perseverative_im5_30_imp$Measurement2<-as.numeric(RFFT_long_perseverative_im5_30_imp$Measurement2)

```

****
  
#         #

#### 10.4.1	 Reproducci�n de los an�lisis. Modelo n� dise�os �nicos: MI (PMM) (30%)
  
  
  Se ajusta el modelo 3 especificado en el art�culo: se incluyen _Edad_, _G�nero_, _Nivel de educaci�n_, _Medida (n� consecutivo)_ y la _interacci�n entre edad y medida (n� consecutivo)_.    

```{r echo=FALSE, warning=FALSE, message=FALSE}

## Se genera una nueva variable con los datos de los medidas pero como factor
RFFT_long_unique_im5_30_imp$Measurement2<-as.numeric(RFFT_long_unique_im5_30_imp$Measurement2)
## Se ajusta el modelo especificado en el art�culo.
model3_unique_im5_30<-lme(Unique~Age+Gender+Education+Measurement2+Age*Measurement2,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_long_unique_im5_30_imp,control=list(opt="optim"))
model3_unique_im5_30<-lme(Unique~Age+Gender+Education+Measurement2+Age*Measurement2,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_long_unique_im5_30_imp,control=list(opt="optim"))
model3_unique_im5_30_tab<-round(summary(model3_unique_im5_30)$tTable,dig=3)
model3_unique_im5_30_AIC<-summary(model3_unique_im5_30)$AIC
model3_unique_im5_30_sigma<-summary(model3_unique_im5_30)$sigma
# estimadores y p-valores en el modelo:
model3_unique_im5_30_tab34<-as.character(ifelse(model3_unique_im5_30_tab[34]<0.001, "<0.001",model3_unique_im5_30_tab[34]))
model3_unique_im5_30_tab35<-as.character(ifelse(model3_unique_im5_30_tab[35]<0.001, "<0.001",model3_unique_im5_30_tab[35]))
model3_unique_im5_30_tab36<-as.character(ifelse(model3_unique_im5_30_tab[36]<0.001, "<0.001",model3_unique_im5_30_tab[36]))
model3_unique_im5_30_tab37<-as.character(ifelse(model3_unique_im5_30_tab[37]<0.001, "<0.001",model3_unique_im5_30_tab[37]))
model3_unique_im5_30_tab38<-as.character(ifelse(model3_unique_im5_30_tab[38]<0.001, "<0.001",model3_unique_im5_30_tab[38]))
model3_unique_im5_30_tab39<-as.character(ifelse(model3_unique_im5_30_tab[39]<0.001, "<0.001",model3_unique_im5_30_tab[39]))
model3_unique_im5_30_tab40<-as.character(ifelse(model3_unique_im5_30_tab[40]<0.001, "<0.001",model3_unique_im5_30_tab[40]))

# coeficientes con sus IC al 95%:
model3_unique_im5_30_int<-round(intervals(model3_unique_im5_30)$fixed,digits=2)

```

#### 10.4.2	 Reproducci�n de los an�lisis. Modelos n� de errores perseverantes: MI (PMM) (30%)   

Se ajusta el 1� modelo especificado en el art�culo, se incluyen: _Edad_, _G�nero_ y _Nivel de educaci�n_.      


```{r echo=FALSE, warning=FALSE, message=FALSE}

model1_perseverative_im5_30<-lme(Perseverative~Age+Gender+Education,random=~1|Casenr,correlation=corAR1(),na.action=na.omit,data=RFFT_long_perseverative_im5_30_imp,control=list(opt="optim"))
model1_perseverative_im5_30_tab<-round(summary(model1_perseverative_im5_30)$tTable,dig=3)
model1_perseverative_im5_30_AIC<-summary(model1_perseverative_im5_30)$AIC
model1_perseverative_im5_30_sigma<-summary(model1_perseverative_im5_30)$sigma

# estimadores y p-valores en el modelo:
model1_perseverative_im5_30_tab26<-as.character(ifelse(model1_perseverative_im5_30_tab[26]<0.001, "<0.001",model1_perseverative_im5_30_tab[26]))
model1_perseverative_im5_30_tab27<-as.character(ifelse(model1_perseverative_im5_30_tab[27]<0.001, "<0.001",model1_perseverative_im5_30_tab[27]))
model1_perseverative_im5_30_tab28<-as.character(ifelse(model1_perseverative_im5_30_tab[28]<0.001, "<0.001",model1_perseverative_im5_30_tab[28]))
model1_perseverative_im5_30_tab29<-as.character(ifelse(model1_perseverative_im5_30_tab[29]<0.001, "<0.001",model1_perseverative_im5_30_tab[29]))
model1_perseverative_im5_30_tab30<-as.character(ifelse(model1_perseverative_im5_30_tab[30]<0.001, "<0.001",model1_perseverative_im5_30_tab[30]))

# coeficientes con sus IC al 95%:
model1_perseverative_im5_30_int<-round(intervals(model1_perseverative_im5_30)$fixed,digits=2)


```



****

#         #


## 11.  RESUMEN DE RESULTADOS

A continuaci�n se resumen los resultados obtenidos originalmente por los autores con las 4 simulaciones que se han propuesto anteriormente para los dataframes con datos faltantes en el 10% de los casos. Los resultados son similares tanto para el n� de dise�os �nicos como para el n� de errores perseverantes. 

##### Tabla 16. Resumen resultados medidas consecutivas del n� de dise�os �nicos (10%)   
**An�lisis: N� de dise�os �nicos, media(DE)** | **1� (2003-06)** | **2� (2006-08)** | **3� (2008-12)** | **p-valor (anova)**  
--------------------------------------------- | ---------------- | ---------------- | ---------------- | ------------------- 
**Datos originales**                          | `r round(stats_unique$table[1],digits=1)` (`r round(stats_unique$table[4],digits=1)`) | `r round(stats_unique$table[2],digits=1)` (`r round(stats_unique$table[5],digits=1)`) | `r round(stats_unique$table[3],digits=1)` (`r round(stats_unique$table[6],digits=1)`) | p<0.001  
**Eliminaci�n de los casos (listwise)**       | `r round(stats_unique_sinNA$table[1],digits=1)` (`r round(stats_unique_sinNA$table[4],digits=1)`) | `r round(stats_unique_sinNA$table[2],digits=1)` (`r round(stats_unique_sinNA$table[5],digits=1)`) | `r round(stats_unique_sinNA$table[3],digits=1)` (`r round(stats_unique_sinNA$table[6],digits=1)`) | p<0.001  
**Reemplazamiento por la media**              | `r round(stats_unique_MD$table[1],digits=1)` (`r round(stats_unique_MD$table[4],digits=1)`) | `r round(stats_unique_MD$table[2],digits=1)` (`r round(stats_unique_MD$table[5],digits=1)`) | `r round(stats_unique_MD$table[3],digits=1)` (`r round(stats_unique_MD$table[6],digits=1)`) | p<0.001  
**Regresi�n**                                 | `r round(stats_unique_RS$table[1],digits=1)` (`r round(stats_unique_RS$table[4],digits=1)`) | `r round(stats_unique_RS$table[2],digits=1)` (`r round(stats_unique_RS$table[5],digits=1)`) | `r round(stats_unique_RS$table[3],digits=1)` (`r round(stats_unique_RS$table[6],digits=1)`) | p<0.001  
**Imputaci�n m�ltiple (_PMM_)**              | `r round(stats_unique_im5$table[1],digits=1)` (`r round(stats_unique_im5$table[4],digits=1)`) | `r round(stats_unique_im5$table[2],digits=1)` (`r round(stats_unique_im5$table[5],digits=1)`) | `r round(stats_unique_im5$table[3],digits=1)` (`r round(stats_unique_im5$table[6],digits=1)`) | p<0.001  



##### Tabla 17. Resumen resultados medidas consecutivas del n� de errores perseverantes    
**An�lisis: N� errores perseverantes, mediana(RIQ)** | **1� (2003-06)** | **2� (2006-08)** | **3� (2008-12)** | **p-valor (K-W)**  
----------------------------------------------------- | ---------------- | ---------------- | ---------------- | ------------------
**Datos originales**                        | `r round(stats_perseverative$table[16],digits=1)` (`r round(stats_perseverative$table[13],digits=1)`-`r round(stats_perseverative$table[19],digits=1)`) | `r round(stats_perseverative$table[17],digits=1)` (`r round(stats_perseverative$table[14],digits=1)`-`r round(stats_perseverative$table[20],digits=1)`) | `r round(stats_perseverative$table[18],digits=1)` (`r round(stats_perseverative$table[15],digits=1)`-`r round(stats_perseverative$table[21],digits=1)`) | `r round(kw_perseverative$p.value,digits=3)`  
**Eliminaci�n de los casos (listwise)**     | `r round(stats_perseverative_sinNA$table[16],digits=1)` (`r round(stats_perseverative_sinNA$table[13],digits=1)`-`r round(stats_perseverative_sinNA$table[19],digits=1)`) | `r round(stats_perseverative_sinNA$table[17],digits=1)` (`r round(stats_perseverative_sinNA$table[14],digits=1)`-`r round(stats_perseverative_sinNA$table[20],digits=1)`) | `r round(stats_perseverative_sinNA$table[18],digits=1)` (`r round(stats_perseverative_sinNA$table[15],digits=1)`-`r round(stats_perseverative_sinNA$table[21],digits=1)`) | `r round(kw_perseverative_sinNA$p.value,digits=3)`  
**Reemplazamiento por la media**            | `r round(stats_perseverative_MD$table[16],digits=1)` (`r round(stats_perseverative_MD$table[13],digits=1)`-`r round(stats_perseverative_MD$table[19],digits=1)`) | `r round(stats_perseverative_MD$table[17],digits=1)` (`r round(stats_perseverative_MD$table[14],digits=1)`-`r round(stats_perseverative_MD$table[20],digits=1)`) | `r round(stats_perseverative_MD$table[18],digits=1)` (`r round(stats_perseverative_MD$table[15],digits=1)`-`r round(stats_perseverative_MD$table[21],digits=1)`) | `r round(kw_perseverative_MD$p.value,digits=3)`    
**Regresi�n**                               | `r round(stats_perseverative_RS$table[16],digits=1)` (`r round(stats_perseverative_RS$table[13],digits=1)`-`r round(stats_perseverative_RS$table[19],digits=1)`) | `r round(stats_perseverative_RS$table[17],digits=1)` (`r round(stats_perseverative_RS$table[14],digits=1)`-`r round(stats_perseverative_RS$table[20],digits=1)`) | `r round(stats_perseverative_RS$table[18],digits=1)` (`r round(stats_perseverative_RS$table[15],digits=1)`-`r round(stats_perseverative_RS$table[21],digits=1)`) | `r round(kw_perseverative_RS$p.value,digits=3)`  
**Imputaci�n m�ltiple (_PMM_)**             | `r round(stats_perseverative_im5$table[16],digits=1)` (`r round(stats_perseverative_im5$table[13],digits=1)`-`r round(stats_perseverative_im5$table[19],digits=1)`) | `r round(stats_perseverative_im5$table[17],digits=1)` (`r round(stats_perseverative_im5$table[14],digits=1)`-`r round(stats_perseverative_im5$table[20],digits=1)`) | `r round(stats_perseverative_im5$table[18],digits=1)` (`r round(stats_perseverative_im5$table[15],digits=1)`-`r round(stats_perseverative_im5$table[21],digits=1)`) | `r round(kw_perseverative_im5$p.value,digits=3)`    
_DE: Desviaci�n est�ndard; RIQ: rango inter-cuart�lico; K-W: Kruskal-Wallis; PMM: Predictive Mean Matching o Equiparaci�n de media predictiva_     


****

#         #


## 11.1 Comparaci�n de los modelos: Original vs 10%

A modo de an�lisis de sensibilidad se comparan los resultados de los modelos con las 4 t�cnicas de tratamiento de los datos faltantes, con los resultados originales. En el caso de los dise�os �nicos el 3er modelo, que incluye _Edad_, _G�nero_, _Nivel de educaci�n_, _Medida (n� consecutivo)_ y la _interacci�n entre edad y medida (n� consecutivo)_, fue el que present� un menor valor del criterio Akaike-AIC (hall�ndose diferencias estad�sticamente significativas respecto a los modelos m�s parsimoniosos), y es el utilizado para hacer la comparaci�n con las 4 simulaciones.
 

##### Tabla 18. Resumen comparativo resultados de los modelos: n� de dise�os �nicos (10%)   
 **Tipo de an�lisis**       |   **An�lisis original**   |   **Listwise**  |   **Media**  |   **Regresi�n**  |   **IM (5, PMM)** 
--------------------|------------------|------------------|------------------|------------------|------------------ 
 **Modelo**       |   **Modelo 3**   |    **Modelo 3**  |    **Modelo 3**  |    **Modelo 3**  |    **Modelo 3**   
 **Variables**    | **_B_ (DE), IC95%  (p-valor)** | **_B_ (DE), IC95% (p-valor)** | **_B_ (DE), IC95% (p-valor)** | **_B_ (DE), IC95% (p-valor)** | **_B_ (DE), IC95% (p-valor)**     
**Edad**            | `r model3_unique_int[10]` (`r model3_unique_tab[10]`), `r model3_unique_int[2]` to `r model3_unique_int[18]` (`r model3_unique_tab34`) | `r model3_unique_sinNA_int[10]` (`r model3_unique_sinNA_tab[10]`) , `r model3_unique_sinNA_int[2]` to `r model3_unique_sinNA_int[18]` (`r model3_unique_sinNA_tab34`) | `r model3_unique_MD_int[10]` (`r model3_unique_MD_tab[10]`), `r model3_unique_MD_int[2]` to `r model3_unique_MD_int[18]` (`r model3_unique_MD_tab34`)   | `r model3_unique_RS_int[10]` (`r model3_unique_RS_tab[10]`), `r model3_unique_RS_int[2]` to `r model3_unique_RS_int[18]` (`r model3_unique_RS_tab34`)   | `r model3_unique_im5_int[10]` (`r model3_unique_im5_tab[10]`), `r model3_unique_im5_int[2]` to `r model3_unique_im5_int[18]` (`r model3_unique_im5_tab34`)   
**Sexo: Hombre**          | Ref. | Ref. | Ref. | Ref. | Ref.    
**Sexo: Mujer**    | `r model3_unique_int[11]` (`r model3_unique_tab[11]`), `r model3_unique_int[3]` to `r model3_unique_int[19]` (`r model3_unique_tab35`) | `r model3_unique_sinNA_int[11]` (`r model3_unique_sinNA_tab[11]`) , `r model3_unique_sinNA_int[3]` to `r model3_unique_sinNA_int[19]` (`r model3_unique_sinNA_tab35`) | `r model3_unique_MD_int[11]` (`r model3_unique_MD_tab[11]`), `r model3_unique_MD_int[3]` to `r model3_unique_MD_int[19]` (`r model3_unique_MD_tab35`) | `r model3_unique_RS_int[11]` (`r model3_unique_RS_tab[11]`), `r model3_unique_RS_int[3]` to `r model3_unique_RS_int[19]` (`r model3_unique_RS_tab35`) | `r model3_unique_im5_int[11]` (`r model3_unique_im5_tab[11]`), `r model3_unique_im5_int[3]` to `r model3_unique_im5_int[19]` (`r model3_unique_im5_tab35`) 
**NE: Escuela primaria**  | Ref. | Ref. | Ref. | Ref. | Ref.  
**NE: Secundaria inicial**   | `r model3_unique_int[12]` (`r model3_unique_tab[12]`), `r model3_unique_int[4]` to `r model3_unique_int[20]` (`r model3_unique_tab36`)  | `r model3_unique_sinNA_int[12]` (`r model3_unique_sinNA_tab[12]`), `r model3_unique_sinNA_int[4]` to `r model3_unique_sinNA_int[20]` (`r model3_unique_sinNA_tab36`)  | `r model3_unique_MD_int[12]` (`r model3_unique_MD_tab[12]`), `r model3_unique_MD_int[4]` to `r model3_unique_MD_int[20]` (`r model3_unique_MD_tab36`) | `r model3_unique_RS_int[12]` (`r model3_unique_RS_tab[12]`), `r model3_unique_RS_int[4]` to `r model3_unique_RS_int[20]` (`r model3_unique_RS_tab36`) | `r model3_unique_im5_int[12]` (`r model3_unique_im5_tab[12]`), `r model3_unique_im5_int[4]` to `r model3_unique_im5_int[20]` (`r model3_unique_im5_tab36`)     
**NE: Secundaria superior** | `r model3_unique_int[13]` (`r model3_unique_tab[13]`), `r model3_unique_int[5]` to `r model3_unique_int[21]` (`r model3_unique_tab37`) | `r model3_unique_sinNA_int[13]` (`r model3_unique_sinNA_tab[13]`), `r model3_unique_sinNA_int[5]` to `r model3_unique_sinNA_int[21]` (`r model3_unique_sinNA_tab37`) | `r model3_unique_MD_int[13]` (`r model3_unique_MD_tab[13]`), `r model3_unique_MD_int[5]` to `r model3_unique_MD_int[21]` (`r model3_unique_MD_tab37`)  | `r model3_unique_RS_int[13]` (`r model3_unique_RS_tab[13]`), `r model3_unique_RS_int[5]` to `r model3_unique_RS_int[21]` (`r model3_unique_RS_tab37`)  | `r model3_unique_im5_int[13]` (`r model3_unique_im5_tab[13]`), `r model3_unique_im5_int[5]` to `r model3_unique_im5_int[21]` (`r model3_unique_im5_tab37`)  
**NE: Universitaria** | `r model3_unique_int[14]` (`r model3_unique_tab[14]`), `r model3_unique_int[6]` to `r model3_unique_int[22]` (`r model3_unique_tab38`) | `r model3_unique_sinNA_int[14]` (`r model3_unique_sinNA_tab[14]`), `r model3_unique_sinNA_int[6]` to `r model3_unique_sinNA_int[22]` (`r model3_unique_sinNA_tab38`) | `r model3_unique_MD_int[14]` (`r model3_unique_MD_tab[14]`), `r model3_unique_MD_int[6]` to `r model3_unique_MD_int[22]` (`r model3_unique_MD_tab38`)  | `r model3_unique_RS_int[14]` (`r model3_unique_RS_tab[14]`), `r model3_unique_RS_int[6]` to `r model3_unique_RS_int[22]` (`r model3_unique_RS_tab38`)  | `r model3_unique_im5_int[14]` (`r model3_unique_im5_tab[14]`), `r model3_unique_im5_int[6]` to `r model3_unique_im5_int[22]` (`r model3_unique_im5_tab38`)  
**Medida (n� consecutivo)** | `r model3_unique_int[15]` (`r model3_unique_tab[15]`), `r model3_unique_int[7]` to `r model3_unique_int[23]` (`r model3_unique_tab39`)  | `r model3_unique_sinNA_int[14]` (`r model3_unique_sinNA_tab[15]`), `r model3_unique_sinNA_int[7]` to `r model3_unique_sinNA_int[23]`(`r model3_unique_sinNA_tab35`) | `r model3_unique_MD_int[15]` (`r model3_unique_MD_tab[15]`), `r model3_unique_MD_int[7]` to `r model3_unique_MD_int[23]`(`r model3_unique_MD_tab39`)  | `r model3_unique_RS_int[15]` (`r model3_unique_RS_tab[15]`), `r model3_unique_RS_int[7]` to `r model3_unique_RS_int[23]`(`r model3_unique_RS_tab39`)  | `r model3_unique_im5_int[15]` (`r model3_unique_im5_tab[15]`), `r model3_unique_im5_int[7]` to `r model3_unique_im5_int[23]`(`r model3_unique_im5_tab39`)     
**Edad x Medida (n� consecutivo)** | `r model3_unique_int[16]` (`r model3_unique_tab[16]`), `r model3_unique_int[8]` to `r model3_unique_int[24]` (`r model3_unique_tab40`)   | `r model3_unique_sinNA_int[16]` (`r model3_unique_sinNA_tab[16]`), `r model3_unique_sinNA_int[8]` to `r model3_unique_sinNA_int[24]` (`r model3_unique_sinNA_tab40`) | `r model3_unique_MD_int[16]` (`r model3_unique_MD_tab[16]`), `r model3_unique_MD_int[8]` to `r model3_unique_MD_int[24]` (`r model3_unique_MD_tab40`)   | `r model3_unique_RS_int[16]` (`r model3_unique_RS_tab[16]`), `r model3_unique_RS_int[8]` to `r model3_unique_RS_int[24]` (`r model3_unique_RS_tab40`) | `r model3_unique_im5_int[16]` (`r model3_unique_im5_tab[16]`), `r model3_unique_im5_int[8]` to `r model3_unique_im5_int[24]` (`r model3_unique_im5_tab40`)     
  **AIC** | `r as.character(round(model3_unique_AIC,digit=1))` | `r as.character(round(model3_unique_sinNA_AIC,digit=1))`* | `r as.character(round(model3_unique_MD_AIC,digit=1))` | `r as.character(round(model3_unique_RS_AIC,digit=1))` | `r as.character(round(model3_unique_im5_AIC,digit=1))`    
    **Varianza residual** | `r as.character(round(model3_unique_sigma,digit=1))` | `r as.character(round(model3_unique_sinNA_sigma,digit=1))`* | `r as.character(round(model3_unique_MD_sigma,digit=1))` | `r as.character(round(model3_unique_RS_sigma,digit=1))` | `r as.character(round(model3_unique_im5_sigma,digit=1))`    
_B: Coeficiente no estandarizado; DE: Desviaci�n est�ndard; IC: Intervalo de confianza; IM: Imputaci�n M�ltiple; PMM: Predictive Mean Matching o Equiparaci�n de media predictiva; AIC: Criterio Akaike_ 
\* _: Se ha de tener en cuenta que este caso presenta una **n** distinta al resto por lo que el valor del AIC no es comparable al resto de modelos._ 



##### Tabla 19. Resumen comparativo resultados de los modelos: n� de errores perseverantes (10%)   
 **Tipo de an�lisis**       |   **An�lisis original**   |   **Listwise**  |   **Media**  |   **Regresi�n**  |   **IM (5, PMM)** 
--------------------|------------------|------------------|------------------|------------------|------------------ 
 **Modelo**       |   **Modelo 1**   |    **Modelo 1**  |    **Modelo 1**  |    **Modelo 1**  |    **Modelo 1**   
 **Variables**    | **_B_ (DE), IC95%  (p-valor)** | **_B_ (DE), IC95% (p-valor)** | **_B_ (DE), IC95% (p-valor)** | **_B_ (DE), IC95% (p-valor)** | **_B_ (DE), IC95% (p-valor)**    
**Edad**            | `r model1_perseverative_int[8]` (`r model1_perseverative_tab[8]`), `r model1_perseverative_int[2]` to `r model1_perseverative_int[14]` (`r model1_perseverative_tab26`) | `r model1_perseverative_sinNA_int[8]` (`r model1_perseverative_sinNA_tab[8]`), `r model1_perseverative_sinNA_int[2]` to `r model1_perseverative_sinNA_int[14]`(`r model1_perseverative_sinNA_tab26`) | `r model1_perseverative_MD_tab[2]` (`r model1_perseverative_MD_tab[8]`), -- to -- (`r model1_perseverative_MD_tab26`)   | `r model1_perseverative_RS_int[8]` (`r model1_perseverative_RS_tab[8]`), `r model1_perseverative_RS_int[2]` to `r model1_perseverative_RS_int[14]` (`r model1_perseverative_RS_tab26`)   | `r model1_perseverative_im5_int[8]` (`r model1_perseverative_im5_tab[8]`), `r model1_perseverative_im5_int[2]` to `r model1_perseverative_im5_int[14]` (`r model1_perseverative_im5_tab26`)    
**Sexo: Hombre**          | Ref. | Ref. | Ref. | Ref. | Ref.    
**Sexo: Mujer**           | `r model1_perseverative_int[9]` (`r model1_perseverative_tab[9]`), `r model1_perseverative_int[3]` to `r model1_perseverative_int[15]` (`r model1_perseverative_tab27`)  | `r model1_perseverative_sinNA_int[9]` (`r model1_perseverative_sinNA_tab[9]`), `r model1_perseverative_sinNA_int[3]` to `r model1_perseverative_sinNA_int[15]` (`r model1_perseverative_sinNA_tab27`)  | `r model1_perseverative_MD_tab[3]` (`r model1_perseverative_MD_tab[9]`), -- to -- (`r model1_perseverative_MD_tab27`) | `r model1_perseverative_RS_int[9]` (`r model1_perseverative_RS_tab[9]`), `r model1_perseverative_RS_int[3]` to `r model1_perseverative_RS_int[15]` (`r model1_perseverative_RS_tab27`) | `r model1_perseverative_im5_int[9]` (`r model1_perseverative_im5_tab[9]`), `r model1_perseverative_im5_int[3]` to `r model1_perseverative_im5_int[15]` (`r model1_perseverative_im5_tab27`)      
**NE: Escuela primaria**  | Ref. | Ref. | Ref. | Ref. | Ref.  
**NE: Secundaria inicial**   | `r model1_perseverative_int[10]` (`r model1_perseverative_tab[10]`), `r model1_perseverative_int[4]` to `r model1_perseverative_int[16]` (`r model1_perseverative_tab28`) | `r model1_perseverative_sinNA_int[10]` (`r model1_perseverative_sinNA_tab[10]`), `r model1_perseverative_sinNA_int[4]` to `r model1_perseverative_sinNA_int[16]` (`r model1_perseverative_sinNA_tab28`)  | `r model1_perseverative_MD_tab[4]` (`r model1_perseverative_MD_tab[10]`), -- to -- (`r model1_perseverative_MD_tab28`) | `r model1_perseverative_RS_int[10]` (`r model1_perseverative_RS_tab[10]`), `r model1_perseverative_RS_int[4]` to `r model1_perseverative_RS_int[16]` (`r model1_perseverative_RS_tab28`) | `r model1_perseverative_im5_int[10]` (`r model1_perseverative_im5_tab[10]`), `r model1_perseverative_im5_int[4]` to `r model1_perseverative_im5_int[16]` (`r model1_perseverative_im5_tab28`)     
**NE: Secundaria superior** | `r model1_perseverative_int[11]` (`r model1_perseverative_tab[11]`), `r model1_perseverative_int[5]` to `r model1_perseverative_int[17]` (`r model1_perseverative_tab29`)  | `r model1_perseverative_sinNA_int[11]` (`r model1_perseverative_sinNA_tab[11]`), `r model1_perseverative_sinNA_int[5]` to `r model1_perseverative_sinNA_int[17]` (`r model1_perseverative_sinNA_tab29`)  | `r model1_perseverative_MD_tab[5]` (`r model1_perseverative_MD_tab[11]`), -- to -- (`r model1_perseverative_MD_tab29`) | `r model1_perseverative_RS_int[11]` (`r model1_perseverative_RS_tab[11]`), `r model1_perseverative_RS_int[5]` to `r model1_perseverative_RS_int[17]` (`r model1_perseverative_RS_tab29`)  | `r model1_perseverative_im5_int[11]` (`r model1_perseverative_im5_tab[11]`), `r model1_perseverative_im5_int[5]` to `r model1_perseverative_im5_int[17]` (`r model1_perseverative_im5_tab29`)  
**NE: Universitaria**  | `r model1_perseverative_int[12]` (`r model1_perseverative_tab[12]`), `r model1_perseverative_int[6]` to `r model1_perseverative_int[18]` (`r model1_perseverative_tab30`) | `r model1_perseverative_sinNA_int[12]` (`r model1_perseverative_sinNA_tab[12]`), `r model1_perseverative_sinNA_int[6]` to `r model1_perseverative_sinNA_int[18]` (`r model1_perseverative_sinNA_tab30`) | `r model1_perseverative_MD_tab[12]` (`r model1_perseverative_MD_tab[12]`), -- to -- (`r model1_perseverative_MD_tab30`) | `r model1_perseverative_RS_int[12]` (`r model1_perseverative_RS_tab[12]`), `r model1_perseverative_RS_int[6]` to `r model1_perseverative_RS_int[18]` (`r model1_perseverative_RS_tab30`)  | `r model1_perseverative_im5_int[12]` (`r model1_perseverative_im5_tab[12]`), `r model1_perseverative_im5_int[6]` to `r model1_perseverative_im5_int[18]` (`r model1_perseverative_im5_tab30`)  
**AIC** | `r as.character(round(model1_perseverative_AIC,digit=1))` | `r as.character(round(model1_perseverative_sinNA_AIC,digit=1))`* | `r as.character(round(model1_perseverative_MD_AIC,digit=1))` | `r as.character(round(model1_perseverative_RS_AIC,digit=1))` | `r as.character(round(model1_perseverative_im5_AIC,digit=1))`    
  **Varianza residual** | `r as.character(round(model1_perseverative_sigma,digit=1))` | `r as.character(round(model1_perseverative_sinNA_sigma,digit=1))`* | `r as.character(round(model1_perseverative_MD_sigma,digit=1))` | `r as.character(round(model1_perseverative_RS_sigma,digit=1))` | `r as.character(round(model1_perseverative_im5_sigma,digit=1))` 
_B: Coeficiente no estandarizado; DE: Desviaci�n est�ndard; IC: Intervalo de confianza; IM: Imputaci�n M�ltiple; PMM: Predictive Mean Matching o Equiparaci�n de media predictiva; AIC: Criterio Akaike_ 
\* _: Se ha de tener en cuenta que este caso presenta una **n** distinta al resto por lo que el valor del AIC no es comparable al resto de modelos._ 


****


## 11.2 Comparaci�n de los modelos: Original vs 20%

A modo de an�lisis de sensibilidad se comparan los resultados de los modelos con las 4 t�cnicas de tratamiento de los datos faltantes, con los resultados originales. En el caso de los dise�os �nicos el 3er modelo, que incluye _Edad_, _G�nero_, _Nivel de educaci�n_, _Medida (n� consecutivo)_ y la _interacci�n entre edad y medida (n� consecutivo)_, fue el que present� un menor valor del criterio Akaike-AIC (hall�ndose diferencias estad�sticamente significativas respecto a los modelos m�s parsimoniosos), y es el utilizado para hacer la comparaci�n con las 4 simulaciones.
 

##### Tabla 20. Resumen comparativo resultados de los modelos: n� de dise�os �nicos (20%)   
 **Tipo de an�lisis**       |   **An�lisis original**   |   **Listwise**  |   **Media**  |   **Regresi�n**  |   **IM (5, PMM)** 
--------------------|------------------|------------------|------------------|------------------|------------------ 
 **Modelo**       |   **Modelo 3**   |    **Modelo 3**  |    **Modelo 3**  |    **Modelo 3**  |    **Modelo 3**   
 **Variables**    | **_B_ (DE), IC95%  (p-valor)** | **_B_ (DE), IC95% (p-valor)** | **_B_ (DE), IC95% (p-valor)** | **_B_ (DE), IC95% (p-valor)** | **_B_ (DE), IC95% (p-valor)**       
**Edad**            | `r model3_unique_int[10]` (`r model3_unique_tab[10]`), `r model3_unique_int[2]` to `r model3_unique_int[18]` (`r model3_unique_tab34`) | `r model3_unique_sinNA_20_int[10]` (`r model3_unique_sinNA_20_tab[10]`) , `r model3_unique_sinNA_20_int[2]` to `r model3_unique_sinNA_20_int[18]` (`r model3_unique_sinNA_20_tab34`) | `r model3_unique_MD_20_int[10]` (`r model3_unique_MD_20_tab[10]`), `r model3_unique_MD_20_int[2]` to `r model3_unique_MD_20_int[18]` (`r model3_unique_MD_20_tab34`)   | `r model3_unique_RS_20_int[10]` (`r model3_unique_RS_20_tab[10]`), `r model3_unique_RS_20_int[2]` to `r model3_unique_RS_20_int[18]` (`r model3_unique_RS_20_tab34`)   | `r model3_unique_im5_20_int[10]` (`r model3_unique_im5_20_tab[10]`), `r model3_unique_im5_20_int[2]` to `r model3_unique_im5_20_int[18]` (`r model3_unique_im5_20_tab34`)   
**Sexo: Hombre**          | Ref. | Ref. | Ref. | Ref. | Ref.    
**Sexo: Mujer**    | `r model3_unique_int[11]` (`r model3_unique_tab[11]`), `r model3_unique_int[3]` to `r model3_unique_int[19]` (`r model3_unique_tab35`) | `r model3_unique_sinNA_20_int[11]` (`r model3_unique_sinNA_20_tab[11]`) , `r model3_unique_sinNA_20_int[3]` to `r model3_unique_sinNA_20_int[19]` (`r model3_unique_sinNA_20_tab35`) | `r model3_unique_MD_20_int[11]` (`r model3_unique_MD_20_tab[11]`), `r model3_unique_MD_20_int[3]` to `r model3_unique_MD_20_int[19]` (`r model3_unique_MD_20_tab35`) | `r model3_unique_RS_20_int[11]` (`r model3_unique_RS_20_tab[11]`), `r model3_unique_RS_20_int[3]` to `r model3_unique_RS_20_int[19]` (`r model3_unique_RS_20_tab35`) | `r model3_unique_im5_20_int[11]` (`r model3_unique_im5_20_tab[11]`), `r model3_unique_im5_20_int[3]` to `r model3_unique_im5_20_int[19]` (`r model3_unique_im5_20_tab35`) 
**NE: Escuela primaria**  | Ref. | Ref. | Ref. | Ref. | Ref.  
**NE: Secundaria inicial**   | `r model3_unique_int[12]` (`r model3_unique_tab[12]`), `r model3_unique_int[4]` to `r model3_unique_int[20]` (`r model3_unique_tab36`)  | `r model3_unique_sinNA_20_int[12]` (`r model3_unique_sinNA_20_tab[12]`), `r model3_unique_sinNA_20_int[4]` to `r model3_unique_sinNA_20_int[20]` (`r model3_unique_sinNA_20_tab36`)  | `r model3_unique_MD_20_int[12]` (`r model3_unique_MD_20_tab[12]`), `r model3_unique_MD_20_int[4]` to `r model3_unique_MD_20_int[20]` (`r model3_unique_MD_20_tab36`) | `r model3_unique_RS_20_int[12]` (`r model3_unique_RS_20_tab[12]`), `r model3_unique_RS_20_int[4]` to `r model3_unique_RS_20_int[20]` (`r model3_unique_RS_20_tab36`) | `r model3_unique_im5_20_int[12]` (`r model3_unique_im5_20_tab[12]`), `r model3_unique_im5_20_int[4]` to `r model3_unique_im5_20_int[20]` (`r model3_unique_im5_20_tab36`)     
**NE: Secundaria superior** | `r model3_unique_int[13]` (`r model3_unique_tab[13]`), `r model3_unique_int[5]` to `r model3_unique_int[21]` (`r model3_unique_tab37`) | `r model3_unique_sinNA_20_int[13]` (`r model3_unique_sinNA_20_tab[13]`), `r model3_unique_sinNA_20_int[5]` to `r model3_unique_sinNA_20_int[21]` (`r model3_unique_sinNA_20_tab37`) | `r model3_unique_MD_20_int[13]` (`r model3_unique_MD_20_tab[13]`), `r model3_unique_MD_20_int[5]` to `r model3_unique_MD_20_int[21]` (`r model3_unique_MD_20_tab37`)  | `r model3_unique_RS_20_int[13]` (`r model3_unique_RS_20_tab[13]`), `r model3_unique_RS_20_int[5]` to `r model3_unique_RS_20_int[21]` (`r model3_unique_RS_20_tab37`)  | `r model3_unique_im5_20_int[13]` (`r model3_unique_im5_20_tab[13]`), `r model3_unique_im5_20_int[5]` to `r model3_unique_im5_20_int[21]` (`r model3_unique_im5_20_tab37`)  
**NE: Universitaria** | `r model3_unique_int[14]` (`r model3_unique_tab[14]`), `r model3_unique_int[6]` to `r model3_unique_int[22]` (`r model3_unique_tab38`) | `r model3_unique_sinNA_20_int[14]` (`r model3_unique_sinNA_20_tab[14]`), `r model3_unique_sinNA_20_int[6]` to `r model3_unique_sinNA_20_int[22]` (`r model3_unique_sinNA_20_tab38`) | `r model3_unique_MD_20_int[14]` (`r model3_unique_MD_20_tab[14]`), `r model3_unique_MD_20_int[6]` to `r model3_unique_MD_20_int[22]` (`r model3_unique_MD_20_tab38`)  | `r model3_unique_RS_20_int[14]` (`r model3_unique_RS_20_tab[14]`), `r model3_unique_RS_20_int[6]` to `r model3_unique_RS_20_int[22]` (`r model3_unique_RS_20_tab38`)  | `r model3_unique_im5_20_int[14]` (`r model3_unique_im5_20_tab[14]`), `r model3_unique_im5_20_int[6]` to `r model3_unique_im5_20_int[22]` (`r model3_unique_im5_20_tab38`)  
**Medida (n� consecutivo)** | `r model3_unique_int[15]` (`r model3_unique_tab[15]`), `r model3_unique_int[7]` to `r model3_unique_int[23]` (`r model3_unique_tab39`)  | `r model3_unique_sinNA_20_int[14]` (`r model3_unique_sinNA_20_tab[15]`), `r model3_unique_sinNA_20_int[7]` to `r model3_unique_sinNA_20_int[23]`(`r model3_unique_sinNA_20_tab35`) | `r model3_unique_MD_20_int[15]` (`r model3_unique_MD_20_tab[15]`), `r model3_unique_MD_20_int[7]` to `r model3_unique_MD_20_int[23]`(`r model3_unique_MD_20_tab39`)  | `r model3_unique_RS_20_int[15]` (`r model3_unique_RS_20_tab[15]`), `r model3_unique_RS_20_int[7]` to `r model3_unique_RS_20_int[23]`(`r model3_unique_RS_20_tab39`)  | `r model3_unique_im5_20_int[15]` (`r model3_unique_im5_20_tab[15]`), `r model3_unique_im5_20_int[7]` to `r model3_unique_im5_20_int[23]`(`r model3_unique_im5_20_tab39`)     
**Edad x Medida (n� consecutivo)** | `r model3_unique_int[16]` (`r model3_unique_tab[16]`), `r model3_unique_int[8]` to `r model3_unique_int[24]` (`r model3_unique_tab40`)   | `r model3_unique_sinNA_20_int[16]` (`r model3_unique_sinNA_20_tab[16]`), `r model3_unique_sinNA_20_int[8]` to `r model3_unique_sinNA_20_int[24]` (`r model3_unique_sinNA_20_tab40`) | `r model3_unique_MD_20_int[16]` (`r model3_unique_MD_20_tab[16]`), `r model3_unique_MD_20_int[8]` to `r model3_unique_MD_20_int[24]` (`r model3_unique_MD_20_tab40`)   | `r model3_unique_RS_20_int[16]` (`r model3_unique_RS_20_tab[16]`), `r model3_unique_RS_20_int[8]` to `r model3_unique_RS_20_int[24]` (`r model3_unique_RS_20_tab40`) | `r model3_unique_im5_20_int[16]` (`r model3_unique_im5_20_tab[16]`), `r model3_unique_im5_20_int[8]` to `r model3_unique_im5_20_int[24]` (`r model3_unique_im5_20_tab40`)     
  **AIC** | `r as.character(round(model3_unique_AIC,digit=1))` | `r as.character(round(model3_unique_sinNA_20_AIC,digit=1))`* | `r as.character(round(model3_unique_MD_20_AIC,digit=1))` | `r as.character(round(model3_unique_RS_20_AIC,digit=1))` | `r as.character(round(model3_unique_im5_20_AIC,digit=1))`    
    **Varianza residual** | `r as.character(round(model3_unique_sigma,digit=1))` | `r as.character(round(model3_unique_sinNA_20_sigma,digit=1))`* | `r as.character(round(model3_unique_MD_20_sigma,digit=1))` | `r as.character(round(model3_unique_RS_20_sigma,digit=1))` | `r as.character(round(model3_unique_im5_20_sigma,digit=1))`    
_B: Coeficiente no estandarizado; DE: Desviaci�n est�ndard; IC: Intervalo de confianza; IM: Imputaci�n M�ltiple; PMM: Predictive Mean Matching o Equiparaci�n de media predictiva; AIC: Criterio Akaike_    
\* _: Se ha de tener en cuenta que este caso presenta una **n** distinta al resto por lo que el valor del AIC no es comparable al resto de modelos._   



##### Tabla 21. Resumen comparativo resultados de los modelos: n� de errores perseverantes (20%)   
 **Tipo de an�lisis**       |   **An�lisis original**   |   **Listwise**  |   **Media**  |   **Regresi�n**  |   **IM (5, PMM)** 
--------------------|------------------|------------------|------------------|------------------|------------------ 
 **Modelo**       |   **Modelo 1**   |    **Modelo 1**  |    **Modelo 1**  |    **Modelo 1**  |    **Modelo 1**   
   **Variables** | **_B_ (DE), IC95%  (p-valor)** | **_B_ (DE), IC95% (p-valor)** | **_B_ (DE), IC95% (p-valor)** | **_B_ (DE), IC95% (p-valor)** | **_B_ (DE), IC95% (p-valor)**          
**Edad**            | `r model1_perseverative_int[8]` (`r model1_perseverative_tab[8]`), `r model1_perseverative_int[2]` to `r model1_perseverative_int[14]` (`r model1_perseverative_tab26`) | `r model1_perseverative_sinNA_20_int[8]` (`r model1_perseverative_sinNA_20_tab[8]`), `r model1_perseverative_sinNA_20_int[2]` to `r model1_perseverative_sinNA_20_int[14]`(`r model1_perseverative_sinNA_20_tab26`) | `r model1_perseverative_MD_20_tab[2]` (`r model1_perseverative_MD_20_tab[8]`), -- to -- (`r model1_perseverative_MD_20_tab26`)   | `r model1_perseverative_RS_20_int[8]` (`r model1_perseverative_RS_20_tab[8]`), `r model1_perseverative_RS_20_int[2]` to `r model1_perseverative_RS_20_int[14]` (`r model1_perseverative_RS_20_tab26`)   | `r model1_perseverative_im5_20_int[8]` (`r model1_perseverative_im5_20_tab[8]`), `r model1_perseverative_im5_20_int[2]` to `r model1_perseverative_im5_20_int[14]` (`r model1_perseverative_im5_20_tab26`)    
**Sexo: Hombre**          | Ref. | Ref. | Ref. | Ref. | Ref.    
**Sexo: Mujer**           | `r model1_perseverative_int[9]` (`r model1_perseverative_tab[9]`), `r model1_perseverative_int[3]` to `r model1_perseverative_int[15]` (`r model1_perseverative_tab27`)  | `r model1_perseverative_sinNA_20_int[9]` (`r model1_perseverative_sinNA_20_tab[9]`), `r model1_perseverative_sinNA_20_int[3]` to `r model1_perseverative_sinNA_20_int[15]` (`r model1_perseverative_sinNA_20_tab27`)  | `r model1_perseverative_MD_20_tab[3]` (`r model1_perseverative_MD_20_tab[9]`), -- to -- (`r model1_perseverative_MD_20_tab27`) | `r model1_perseverative_RS_20_int[9]` (`r model1_perseverative_RS_20_tab[9]`), `r model1_perseverative_RS_20_int[3]` to `r model1_perseverative_RS_20_int[15]` (`r model1_perseverative_RS_20_tab27`) | `r model1_perseverative_im5_20_int[9]` (`r model1_perseverative_im5_20_tab[9]`), `r model1_perseverative_im5_20_int[3]` to `r model1_perseverative_im5_20_int[15]` (`r model1_perseverative_im5_20_tab27`)      
**NE: Escuela primaria**  | Ref. | Ref. | Ref. | Ref. | Ref.  
**NE: Secundaria inicial**   | `r model1_perseverative_int[10]` (`r model1_perseverative_tab[10]`), `r model1_perseverative_int[4]` to `r model1_perseverative_int[16]` (`r model1_perseverative_tab28`) | `r model1_perseverative_sinNA_20_int[10]` (`r model1_perseverative_sinNA_20_tab[10]`), `r model1_perseverative_sinNA_20_int[4]` to `r model1_perseverative_sinNA_20_int[16]` (`r model1_perseverative_sinNA_20_tab28`)  | `r model1_perseverative_MD_20_tab[4]` (`r model1_perseverative_MD_20_tab[10]`), -- to -- (`r model1_perseverative_MD_20_tab28`) | `r model1_perseverative_RS_20_int[10]` (`r model1_perseverative_RS_20_tab[10]`), `r model1_perseverative_RS_20_int[4]` to `r model1_perseverative_RS_20_int[16]` (`r model1_perseverative_RS_20_tab28`) | `r model1_perseverative_im5_20_int[10]` (`r model1_perseverative_im5_20_tab[10]`), `r model1_perseverative_im5_20_int[4]` to `r model1_perseverative_im5_20_int[16]` (`r model1_perseverative_im5_20_tab28`)     
**NE: Secundaria superior** | `r model1_perseverative_int[11]` (`r model1_perseverative_tab[11]`), `r model1_perseverative_int[5]` to `r model1_perseverative_int[17]` (`r model1_perseverative_tab29`)  | `r model1_perseverative_sinNA_20_int[11]` (`r model1_perseverative_sinNA_20_tab[11]`), `r model1_perseverative_sinNA_20_int[5]` to `r model1_perseverative_sinNA_20_int[17]` (`r model1_perseverative_sinNA_20_tab29`)  | `r model1_perseverative_MD_20_tab[5]` (`r model1_perseverative_MD_20_tab[11]`), -- to -- (`r model1_perseverative_MD_20_tab29`) | `r model1_perseverative_RS_20_int[11]` (`r model1_perseverative_RS_20_tab[11]`), `r model1_perseverative_RS_20_int[5]` to `r model1_perseverative_RS_20_int[17]` (`r model1_perseverative_RS_20_tab29`)  | `r model1_perseverative_im5_20_int[11]` (`r model1_perseverative_im5_20_tab[11]`), `r model1_perseverative_im5_20_int[5]` to `r model1_perseverative_im5_20_int[17]` (`r model1_perseverative_im5_20_tab29`)  
**NE: Universitaria**  | `r model1_perseverative_int[12]` (`r model1_perseverative_tab[12]`), `r model1_perseverative_int[6]` to `r model1_perseverative_int[18]` (`r model1_perseverative_tab30`) | `r model1_perseverative_sinNA_20_int[12]` (`r model1_perseverative_sinNA_20_tab[12]`), `r model1_perseverative_sinNA_20_int[6]` to `r model1_perseverative_sinNA_20_int[18]` (`r model1_perseverative_sinNA_20_tab30`) | `r model1_perseverative_MD_20_tab[12]` (`r model1_perseverative_MD_20_tab[12]`), -- to -- (`r model1_perseverative_MD_20_tab30`) | `r model1_perseverative_RS_20_int[12]` (`r model1_perseverative_RS_20_tab[12]`), `r model1_perseverative_RS_20_int[6]` to `r model1_perseverative_RS_20_int[18]` (`r model1_perseverative_RS_20_tab30`)  | `r model1_perseverative_im5_20_int[12]` (`r model1_perseverative_im5_20_tab[12]`), `r model1_perseverative_im5_20_int[6]` to `r model1_perseverative_im5_20_int[18]` (`r model1_perseverative_im5_20_tab30`)  
**AIC** | `r as.character(round(model1_perseverative_AIC,digit=1))` | `r as.character(round(model1_perseverative_sinNA_20_AIC,digit=1))`* | `r as.character(round(model1_perseverative_MD_20_AIC,digit=1))` | `r as.character(round(model1_perseverative_RS_20_AIC,digit=1))` | `r as.character(round(model1_perseverative_im5_20_AIC,digit=1))`    
  **Varianza residual** | `r as.character(round(model1_perseverative_sigma,digit=1))` | `r as.character(round(model1_perseverative_sinNA_20_sigma,digit=1))`* | `r as.character(round(model1_perseverative_MD_20_sigma,digit=1))` | `r as.character(round(model1_perseverative_RS_20_sigma,digit=1))` | `r as.character(round(model1_perseverative_im5_20_sigma,digit=1))` 
_B: Coeficiente no estandarizado; DE: Desviaci�n est�ndard; IC: Intervalo de confianza; IM: Imputaci�n M�ltiple; PMM: Predictive Mean Matching o Equiparaci�n de media predictiva; AIC: Criterio Akaike_   
\* _: Se ha de tener en cuenta que este caso presenta una **n** distinta al resto por lo que el valor del AIC no es comparable al resto de modelos._   
   
   
   
   
****



## 11.3 Comparaci�n de los modelos: Original vs 30%

A modo de an�lisis de sensibilidad se comparan los resultados de los modelos con las 4 t�cnicas de tratamiento de los datos faltantes, con los resultados originales. En el caso de los dise�os �nicos el 3er modelo, que incluye _Edad_, _G�nero_, _Nivel de educaci�n_, _Medida (n� consecutivo)_ y la _interacci�n entre edad y medida (n� consecutivo)_, fue el que present� un menor valor del criterio Akaike-AIC (hall�ndose diferencias estad�sticamente significativas respecto a los modelos m�s parsimoniosos), y es el utilizado para hacer la comparaci�n con las 4 simulaciones.
 
##### Tabla 22. Resumen comparativo resultados de los modelos: n� de dise�os �nicos (30%)   
 **Tipo de an�lisis**       |   **An�lisis original**   |   **Listwise**  |   **Media**  |   **Regresi�n**  |   **IM (5, PMM)** 
--------------------|------------------|------------------|------------------|------------------|------------------ 
 **Modelo**       |   **Modelo 3**   |    **Modelo 3**  |    **Modelo 3**  |    **Modelo 3**  |    **Modelo 3**   
 **Variables**    | **_B_ (DE), IC95%  (p-valor)** | **_B_ (DE), IC95% (p-valor)** | **_B_ (DE), IC95% (p-valor)** | **_B_ (DE), IC95% (p-valor)** | **_B_ (DE), IC95% (p-valor)**    
**Edad**            | `r model3_unique_int[10]` (`r model3_unique_tab[10]`), `r model3_unique_int[2]` to `r model3_unique_int[18]` (`r model3_unique_tab34`) | `r model3_unique_sinNA_30_int[10]` (`r model3_unique_sinNA_30_tab[10]`) , `r model3_unique_sinNA_30_int[2]` to `r model3_unique_sinNA_30_int[18]` (`r model3_unique_sinNA_30_tab34`) | `r model3_unique_MD_30_int[10]` (`r model3_unique_MD_30_tab[10]`), `r model3_unique_MD_30_int[2]` to `r model3_unique_MD_30_int[18]` (`r model3_unique_MD_30_tab34`)   | `r model3_unique_RS_30_int[10]` (`r model3_unique_RS_30_tab[10]`), `r model3_unique_RS_30_int[2]` to `r model3_unique_RS_30_int[18]` (`r model3_unique_RS_30_tab34`)   | `r model3_unique_im5_30_int[10]` (`r model3_unique_im5_30_tab[10]`), `r model3_unique_im5_30_int[2]` to `r model3_unique_im5_30_int[18]` (`r model3_unique_im5_30_tab34`)   
**Sexo: Hombre**          | Ref. | Ref. | Ref. | Ref. | Ref.    
**Sexo: Mujer**    | `r model3_unique_int[11]` (`r model3_unique_tab[11]`), `r model3_unique_int[3]` to `r model3_unique_int[19]` (`r model3_unique_tab35`) | `r model3_unique_sinNA_30_int[11]` (`r model3_unique_sinNA_30_tab[11]`) , `r model3_unique_sinNA_30_int[3]` to `r model3_unique_sinNA_30_int[19]` (`r model3_unique_sinNA_30_tab35`) | `r model3_unique_MD_30_int[11]` (`r model3_unique_MD_30_tab[11]`), `r model3_unique_MD_30_int[3]` to `r model3_unique_MD_30_int[19]` (`r model3_unique_MD_30_tab35`) | `r model3_unique_RS_30_int[11]` (`r model3_unique_RS_30_tab[11]`), `r model3_unique_RS_30_int[3]` to `r model3_unique_RS_30_int[19]` (`r model3_unique_RS_30_tab35`) | `r model3_unique_im5_30_int[11]` (`r model3_unique_im5_30_tab[11]`), `r model3_unique_im5_30_int[3]` to `r model3_unique_im5_30_int[19]` (`r model3_unique_im5_30_tab35`) 
**NE: Escuela primaria**  | Ref. | Ref. | Ref. | Ref. | Ref.  
**NE: Secundaria inicial**   | `r model3_unique_int[12]` (`r model3_unique_tab[12]`), `r model3_unique_int[4]` to `r model3_unique_int[20]` (`r model3_unique_tab36`)  | `r model3_unique_sinNA_30_int[12]` (`r model3_unique_sinNA_30_tab[12]`), `r model3_unique_sinNA_30_int[4]` to `r model3_unique_sinNA_30_int[20]` (`r model3_unique_sinNA_30_tab36`)  | `r model3_unique_MD_30_int[12]` (`r model3_unique_MD_30_tab[12]`), `r model3_unique_MD_30_int[4]` to `r model3_unique_MD_30_int[20]` (`r model3_unique_MD_30_tab36`) | `r model3_unique_RS_30_int[12]` (`r model3_unique_RS_30_tab[12]`), `r model3_unique_RS_30_int[4]` to `r model3_unique_RS_30_int[20]` (`r model3_unique_RS_30_tab36`) | `r model3_unique_im5_30_int[12]` (`r model3_unique_im5_30_tab[12]`), `r model3_unique_im5_30_int[4]` to `r model3_unique_im5_30_int[20]` (`r model3_unique_im5_30_tab36`)     
**NE: Secundaria superior** | `r model3_unique_int[13]` (`r model3_unique_tab[13]`), `r model3_unique_int[5]` to `r model3_unique_int[21]` (`r model3_unique_tab37`) | `r model3_unique_sinNA_30_int[13]` (`r model3_unique_sinNA_30_tab[13]`), `r model3_unique_sinNA_30_int[5]` to `r model3_unique_sinNA_30_int[21]` (`r model3_unique_sinNA_30_tab37`) | `r model3_unique_MD_30_int[13]` (`r model3_unique_MD_30_tab[13]`), `r model3_unique_MD_30_int[5]` to `r model3_unique_MD_30_int[21]` (`r model3_unique_MD_30_tab37`)  | `r model3_unique_RS_30_int[13]` (`r model3_unique_RS_30_tab[13]`), `r model3_unique_RS_30_int[5]` to `r model3_unique_RS_30_int[21]` (`r model3_unique_RS_30_tab37`)  | `r model3_unique_im5_30_int[13]` (`r model3_unique_im5_30_tab[13]`), `r model3_unique_im5_30_int[5]` to `r model3_unique_im5_30_int[21]` (`r model3_unique_im5_30_tab37`)  
**NE: Universitaria** | `r model3_unique_int[14]` (`r model3_unique_tab[14]`), `r model3_unique_int[6]` to `r model3_unique_int[22]` (`r model3_unique_tab38`) | `r model3_unique_sinNA_30_int[14]` (`r model3_unique_sinNA_30_tab[14]`), `r model3_unique_sinNA_30_int[6]` to `r model3_unique_sinNA_30_int[22]` (`r model3_unique_sinNA_30_tab38`) | `r model3_unique_MD_30_int[14]` (`r model3_unique_MD_30_tab[14]`), `r model3_unique_MD_30_int[6]` to `r model3_unique_MD_30_int[22]` (`r model3_unique_MD_30_tab38`)  | `r model3_unique_RS_30_int[14]` (`r model3_unique_RS_30_tab[14]`), `r model3_unique_RS_30_int[6]` to `r model3_unique_RS_30_int[22]` (`r model3_unique_RS_30_tab38`)  | `r model3_unique_im5_30_int[14]` (`r model3_unique_im5_30_tab[14]`), `r model3_unique_im5_30_int[6]` to `r model3_unique_im5_30_int[22]` (`r model3_unique_im5_30_tab38`)  
**Medida (n� consecutivo)** | `r model3_unique_int[15]` (`r model3_unique_tab[15]`), `r model3_unique_int[7]` to `r model3_unique_int[23]` (`r model3_unique_tab39`)  | `r model3_unique_sinNA_30_int[14]` (`r model3_unique_sinNA_30_tab[15]`), `r model3_unique_sinNA_30_int[7]` to `r model3_unique_sinNA_30_int[23]`(`r model3_unique_sinNA_30_tab35`) | `r model3_unique_MD_30_int[15]` (`r model3_unique_MD_30_tab[15]`), `r model3_unique_MD_30_int[7]` to `r model3_unique_MD_30_int[23]`(`r model3_unique_MD_30_tab39`)  | `r model3_unique_RS_30_int[15]` (`r model3_unique_RS_30_tab[15]`), `r model3_unique_RS_30_int[7]` to `r model3_unique_RS_30_int[23]`(`r model3_unique_RS_30_tab39`)  | `r model3_unique_im5_30_int[15]` (`r model3_unique_im5_30_tab[15]`), `r model3_unique_im5_30_int[7]` to `r model3_unique_im5_30_int[23]`(`r model3_unique_im5_30_tab39`)     
**Edad x Medida (n� consecutivo)** | `r model3_unique_int[16]` (`r model3_unique_tab[16]`), `r model3_unique_int[8]` to `r model3_unique_int[24]` (`r model3_unique_tab40`)   | `r model3_unique_sinNA_30_int[16]` (`r model3_unique_sinNA_30_tab[16]`), `r model3_unique_sinNA_30_int[8]` to `r model3_unique_sinNA_30_int[24]` (`r model3_unique_sinNA_30_tab40`) | `r model3_unique_MD_30_int[16]` (`r model3_unique_MD_30_tab[16]`), `r model3_unique_MD_30_int[8]` to `r model3_unique_MD_30_int[24]` (`r model3_unique_MD_30_tab40`)   | `r model3_unique_RS_30_int[16]` (`r model3_unique_RS_30_tab[16]`), `r model3_unique_RS_30_int[8]` to `r model3_unique_RS_30_int[24]` (`r model3_unique_RS_30_tab40`) | `r model3_unique_im5_30_int[16]` (`r model3_unique_im5_30_tab[16]`), `r model3_unique_im5_30_int[8]` to `r model3_unique_im5_30_int[24]` (`r model3_unique_im5_30_tab40`)     
  **AIC** | `r as.character(round(model3_unique_AIC,digit=1))` | `r as.character(round(model3_unique_sinNA_30_AIC,digit=1))`* | `r as.character(round(model3_unique_MD_30_AIC,digit=1))` | `r as.character(round(model3_unique_RS_30_AIC,digit=1))` | `r as.character(round(model3_unique_im5_30_AIC,digit=1))`    
    **Varianza residual** | `r as.character(round(model3_unique_sigma,digit=1))` | `r as.character(round(model3_unique_sinNA_30_sigma,digit=1))`* | `r as.character(round(model3_unique_MD_30_sigma,digit=1))` | `r as.character(round(model3_unique_RS_30_sigma,digit=1))` | `r as.character(round(model3_unique_im5_30_sigma,digit=1))`    
_B: Coeficiente no estandarizado; DE: Desviaci�n est�ndard; IC: Intervalo de confianza; IM: Imputaci�n M�ltiple; PMM: Predictive Mean Matching o Equiparaci�n de media predictiva; AIC: Criterio Akaike_    
\* _: Se ha de tener en cuenta que este caso presenta una **n** distinta al resto por lo que el valor del AIC no es comparable al resto de modelos._   






##### Tabla 23. Resumen comparativo resultados de los modelos: n� de errores perseverantes (30%)   
 **Tipo de an�lisis**       |   **An�lisis original**   |   **Listwise**  |   **Media**  |   **Regresi�n**  |   **IM (5, PMM)** 
--------------------|------------------|------------------|------------------|------------------|------------------ 
 **Modelo**       |   **Modelo 1**   |    **Modelo 1**  |    **Modelo 1**  |    **Modelo 1**  |    **Modelo 1**   
   **Variables** | **_B_ (DE), IC95%  (p-valor)** | **_B_ (DE), IC95% (p-valor)** | **_B_ (DE), IC95% (p-valor)** | **_B_ (DE), IC95% (p-valor)** | **_B_ (DE), IC95% (p-valor)**          
**Edad**            | `r model1_perseverative_int[8]` (`r model1_perseverative_tab[8]`), `r model1_perseverative_int[2]` to `r model1_perseverative_int[14]` (`r model1_perseverative_tab26`) | `r model1_perseverative_sinNA_30_int[8]` (`r model1_perseverative_sinNA_30_tab[8]`), `r model1_perseverative_sinNA_30_int[2]` to `r model1_perseverative_sinNA_30_int[14]`(`r model1_perseverative_sinNA_30_tab26`) | `r model1_perseverative_MD_30_tab[2]` (`r model1_perseverative_MD_30_tab[8]`), -- to -- (`r model1_perseverative_MD_30_tab26`)   | `r model1_perseverative_RS_30_int[8]` (`r model1_perseverative_RS_30_tab[8]`), `r model1_perseverative_RS_30_int[2]` to `r model1_perseverative_RS_30_int[14]` (`r model1_perseverative_RS_30_tab26`)   | `r model1_perseverative_im5_30_int[8]` (`r model1_perseverative_im5_30_tab[8]`), `r model1_perseverative_im5_30_int[2]` to `r model1_perseverative_im5_30_int[14]` (`r model1_perseverative_im5_30_tab26`)    
**Sexo: Hombre**          | Ref. | Ref. | Ref. | Ref. | Ref.    
**Sexo: Mujer**           | `r model1_perseverative_int[9]` (`r model1_perseverative_tab[9]`), `r model1_perseverative_int[3]` to `r model1_perseverative_int[15]` (`r model1_perseverative_tab27`)  | `r model1_perseverative_sinNA_30_int[9]` (`r model1_perseverative_sinNA_30_tab[9]`), `r model1_perseverative_sinNA_30_int[3]` to `r model1_perseverative_sinNA_30_int[15]` (`r model1_perseverative_sinNA_30_tab27`)  | `r model1_perseverative_MD_30_tab[3]` (`r model1_perseverative_MD_30_tab[9]`), -- to -- (`r model1_perseverative_MD_30_tab27`) | `r model1_perseverative_RS_30_int[9]` (`r model1_perseverative_RS_30_tab[9]`), `r model1_perseverative_RS_30_int[3]` to `r model1_perseverative_RS_30_int[15]` (`r model1_perseverative_RS_30_tab27`) | `r model1_perseverative_im5_30_int[9]` (`r model1_perseverative_im5_30_tab[9]`), `r model1_perseverative_im5_30_int[3]` to `r model1_perseverative_im5_30_int[15]` (`r model1_perseverative_im5_30_tab27`)      
**NE: Escuela primaria**  | Ref. | Ref. | Ref. | Ref. | Ref.  
**NE: Secundaria inicial**   | `r model1_perseverative_int[10]` (`r model1_perseverative_tab[10]`), `r model1_perseverative_int[4]` to `r model1_perseverative_int[16]` (`r model1_perseverative_tab28`) | `r model1_perseverative_sinNA_30_int[10]` (`r model1_perseverative_sinNA_30_tab[10]`), `r model1_perseverative_sinNA_30_int[4]` to `r model1_perseverative_sinNA_30_int[16]` (`r model1_perseverative_sinNA_30_tab28`)  | `r model1_perseverative_MD_30_tab[4]` (`r model1_perseverative_MD_30_tab[10]`), -- to -- (`r model1_perseverative_MD_30_tab28`) | `r model1_perseverative_RS_30_int[10]` (`r model1_perseverative_RS_30_tab[10]`), `r model1_perseverative_RS_30_int[4]` to `r model1_perseverative_RS_30_int[16]` (`r model1_perseverative_RS_30_tab28`) | `r model1_perseverative_im5_30_int[10]` (`r model1_perseverative_im5_30_tab[10]`), `r model1_perseverative_im5_30_int[4]` to `r model1_perseverative_im5_30_int[16]` (`r model1_perseverative_im5_30_tab28`)     
**NE: Secundaria superior** | `r model1_perseverative_int[11]` (`r model1_perseverative_tab[11]`), `r model1_perseverative_int[5]` to `r model1_perseverative_int[17]` (`r model1_perseverative_tab29`)  | `r model1_perseverative_sinNA_30_int[11]` (`r model1_perseverative_sinNA_30_tab[11]`), `r model1_perseverative_sinNA_30_int[5]` to `r model1_perseverative_sinNA_30_int[17]` (`r model1_perseverative_sinNA_30_tab29`)  | `r model1_perseverative_MD_30_tab[5]` (`r model1_perseverative_MD_30_tab[11]`), -- to -- (`r model1_perseverative_MD_30_tab29`) | `r model1_perseverative_RS_30_int[11]` (`r model1_perseverative_RS_30_tab[11]`), `r model1_perseverative_RS_30_int[5]` to `r model1_perseverative_RS_30_int[17]` (`r model1_perseverative_RS_30_tab29`)  | `r model1_perseverative_im5_30_int[11]` (`r model1_perseverative_im5_30_tab[11]`), `r model1_perseverative_im5_30_int[5]` to `r model1_perseverative_im5_30_int[17]` (`r model1_perseverative_im5_30_tab29`)  
**NE: Universitaria**  | `r model1_perseverative_int[12]` (`r model1_perseverative_tab[12]`), `r model1_perseverative_int[6]` to `r model1_perseverative_int[18]` (`r model1_perseverative_tab30`) | `r model1_perseverative_sinNA_30_int[12]` (`r model1_perseverative_sinNA_30_tab[12]`), `r model1_perseverative_sinNA_30_int[6]` to `r model1_perseverative_sinNA_30_int[18]` (`r model1_perseverative_sinNA_30_tab30`) | `r model1_perseverative_MD_30_tab[12]` (`r model1_perseverative_MD_30_tab[12]`), -- to -- (`r model1_perseverative_MD_30_tab30`) | `r model1_perseverative_RS_30_int[12]` (`r model1_perseverative_RS_30_tab[12]`), `r model1_perseverative_RS_30_int[6]` to `r model1_perseverative_RS_30_int[18]` (`r model1_perseverative_RS_30_tab30`)  | `r model1_perseverative_im5_30_int[12]` (`r model1_perseverative_im5_30_tab[12]`), `r model1_perseverative_im5_30_int[6]` to `r model1_perseverative_im5_30_int[18]` (`r model1_perseverative_im5_30_tab30`)  
**AIC** | `r as.character(round(model1_perseverative_AIC,digit=1))` | `r as.character(round(model1_perseverative_sinNA_30_AIC,digit=1))`* | `r as.character(round(model1_perseverative_MD_30_AIC,digit=1))` | `r as.character(round(model1_perseverative_RS_30_AIC,digit=1))` | `r as.character(round(model1_perseverative_im5_30_AIC,digit=1))`    
  **Varianza residual** | `r as.character(round(model1_perseverative_sigma,digit=1))` | `r as.character(round(model1_perseverative_sinNA_30_sigma,digit=1))`* | `r as.character(round(model1_perseverative_MD_30_sigma,digit=1))` | `r as.character(round(model1_perseverative_RS_30_sigma,digit=1))` | `r as.character(round(model1_perseverative_im5_30_sigma,digit=1))` 
_B: Coeficiente no estandarizado; DE: Desviaci�n est�ndard; IC: Intervalo de confianza; IM: Imputaci�n M�ltiple; PMM: Predictive Mean Matching o Equiparaci�n de media predictiva; AIC: Criterio Akaike_     
\* _: Se ha de tener en cuenta que este caso presenta una **n** distinta al resto por lo que el valor del AIC no es comparable al resto de modelos._   


   
##### Figura 67. Correlaciones valores ajustados dise�os �nicos (Modelo 3) (10%)           
```{r echo=FALSE, warning=FALSE, message=FALSE}
uniq1<-fitted(model3_unique)
uniq2<-fitted(model3_unique_sinNA)
uniq3<-fitted(model3_unique_MD)
uniq4<-fitted(model3_unique_RS)
uniq5<-fitted(model3_unique_im5)
va_uniq<-data.frame(uniq1,uniq3,uniq4,uniq5)
cor_va_uniq1_3<-with(va_uniq, cor.test(uniq1, uniq3, alternative="two.sided", method="pearson"))
cor_va_uniq1_4<-with(va_uniq, cor.test(uniq1, uniq4, alternative="two.sided", method="pearson"))
cor_va_uniq1_5<-with(va_uniq, cor.test(uniq1, uniq5, alternative="two.sided", method="pearson"))
cor_va_uniq1_3_pvalue<-as.character(ifelse(cor_va_uniq1_3$p.value<0.001, "<0.001",cor_va_uniq1_3$p.value))
cor_va_uniq1_4_pvalue<-as.character(ifelse(cor_va_uniq1_4$p.value<0.001, "<0.001",cor_va_uniq1_4$p.value))
cor_va_uniq1_5_pvalue<-as.character(ifelse(cor_va_uniq1_5$p.value<0.001, "<0.001",cor_va_uniq1_5$p.value))
par(mfrow = c(1,3))
plot(va_uniq$uniq1,va_uniq$uniq3,
        xlab="An�lisis original",
        ylab="Imputaci�n Media")
plot(va_uniq$uniq1,va_uniq$uniq4,
        xlab="An�lisis original",
        ylab="Imputaci�n Regresi�n")
plot(va_uniq$uniq1,va_uniq$uniq5,
        xlab="An�lisis original",
        ylab="Imputaci�n M�ltiple")
```
      
##### Figura 68. Correlaciones valores ajustados errores perseverantes (Modelo 1) (10%)        
```{r echo=FALSE, warning=FALSE, message=FALSE}
pers1<-fitted(model1_perseverative)
pers2<-fitted(model1_perseverative_sinNA)
pers3<-fitted(model1_perseverative_MD)
pers4<-fitted(model1_perseverative_RS)
pers5<-fitted(model1_perseverative_im5)
va_pers<-data.frame(pers1,pers3,pers4,pers5)
cor_va_pers1_3<-with(va_pers, cor.test(pers1, pers3, alternative="two.sided", method="pearson"))
cor_va_pers1_4<-with(va_pers, cor.test(pers1, pers4, alternative="two.sided", method="pearson"))
cor_va_pers1_5<-with(va_pers, cor.test(pers1, pers5, alternative="two.sided", method="pearson"))
cor_va_pers1_3_pvalue<-as.character(ifelse(cor_va_pers1_3$p.value<0.001, "<0.001",cor_va_pers1_3$p.value))
cor_va_pers1_4_pvalue<-as.character(ifelse(cor_va_pers1_4$p.value<0.001, "<0.001",cor_va_pers1_4$p.value))
cor_va_pers1_5_pvalue<-as.character(ifelse(cor_va_pers1_5$p.value<0.001, "<0.001",cor_va_pers1_5$p.value))

par(mfrow = c(1,3))
plot(va_pers$pers1,va_pers$pers3,
        xlab="An�lisis original",
        ylab="Imputaci�n Media")
plot(va_pers$pers1,va_pers$pers4,
        xlab="An�lisis original",
        ylab="Imputaci�n Regresi�n")
plot(va_pers$pers1,va_pers$pers5,
        xlab="An�lisis original",
        ylab="Imputaci�n M�ltiple")
```
      
##### Figura 69. Correlaciones valores ajustados dise�os �nicos (Modelo 3) (20%)         
```{r echo=FALSE, warning=FALSE, message=FALSE}
uniq1<-fitted(model3_unique)
uniq2_20<-fitted(model3_unique_sinNA_20)
uniq3_20<-fitted(model3_unique_MD_20)
uniq4_20<-fitted(model3_unique_RS_20)
uniq5_20<-fitted(model3_unique_im5_20)
va_uniq_20<-data.frame(uniq1,uniq3_20,uniq4_20,uniq5_20)
cor_va_uniq_20_1_3<-with(va_uniq_20, cor.test(uniq1, uniq3_20, alternative="two.sided", method="pearson"))
cor_va_uniq_20_1_4<-with(va_uniq_20, cor.test(uniq1, uniq4_20, alternative="two.sided", method="pearson"))
cor_va_uniq_20_1_5<-with(va_uniq_20, cor.test(uniq1, uniq5_20, alternative="two.sided", method="pearson"))
cor_va_uniq_20_1_3_pvalue<-as.character(ifelse(cor_va_uniq_20_1_3$p.value<0.001, "<0.001",cor_va_uniq_20_1_3$p.value))
cor_va_uniq_20_1_4_pvalue<-as.character(ifelse(cor_va_uniq_20_1_4$p.value<0.001, "<0.001",cor_va_uniq_20_1_4$p.value))
cor_va_uniq_20_1_5_pvalue<-as.character(ifelse(cor_va_uniq_20_1_5$p.value<0.001, "<0.001",cor_va_uniq_20_1_5$p.value))
par(mfrow = c(1,3))
plot(va_uniq_20$uniq1,va_uniq_20$uniq3_20,
        xlab="An�lisis original",
        ylab="Imputaci�n Media")
plot(va_uniq_20$uniq1,va_uniq_20$uniq4_20,
        xlab="An�lisis original",
        ylab="Imputaci�n Regresi�n")
plot(va_uniq_20$uniq1,va_uniq_20$uniq5_20,
        xlab="An�lisis original",
        ylab="Imputaci�n M�ltiple")
```
      
##### Figura 70. Correlaciones valores ajustados errores perseverantes (Modelo 1) (20%)        
```{r echo=FALSE, warning=FALSE, message=FALSE}
pers1<-fitted(model3_perseverative)
pers2_20<-fitted(model1_perseverative_sinNA_20)
pers3_20<-fitted(model1_perseverative_MD_20)
pers4_20<-fitted(model1_perseverative_RS_20)
pers5_20<-fitted(model1_perseverative_im5_20)
va_pers_20<-data.frame(pers1,pers3_20,pers4_20,pers5_20)
cor_va_pers_20_1_3<-with(va_pers_20, cor.test(pers1, pers3_20, alternative="two.sided", method="pearson"))
cor_va_pers_20_1_4<-with(va_pers_20, cor.test(pers1, pers4_20, alternative="two.sided", method="pearson"))
cor_va_pers_20_1_5<-with(va_pers_20, cor.test(pers1, pers5_20, alternative="two.sided", method="pearson"))
cor_va_pers_20_1_3_pvalue<-as.character(ifelse(cor_va_pers_20_1_3$p.value<0.001, "<0.001",cor_va_pers_20_1_3$p.value))
cor_va_pers_20_1_4_pvalue<-as.character(ifelse(cor_va_pers_20_1_4$p.value<0.001, "<0.001",cor_va_pers_20_1_4$p.value))
cor_va_pers_20_1_5_pvalue<-as.character(ifelse(cor_va_pers_20_1_5$p.value<0.001, "<0.001",cor_va_pers_20_1_5$p.value))
par(mfrow = c(1,3))
plot(va_pers_20$pers1,va_pers_20$pers3_20,
        xlab="An�lisis original",
        ylab="Imputaci�n Media")
plot(va_pers_20$pers1,va_pers_20$pers4_20,
        xlab="An�lisis original",
        ylab="Imputaci�n Regresi�n")
plot(va_pers_20$pers1,va_pers_20$pers5_20,
        xlab="An�lisis original",
        ylab="Imputaci�n M�ltiple")
```
      
##### Figura 71. Correlaciones valores ajustados dise�os �nicos (Modelo 3) (30%)         
```{r echo=FALSE, warning=FALSE, message=FALSE}
uniq1<-fitted(model3_unique)
uniq2_30<-fitted(model3_unique_sinNA_30)
uniq3_30<-fitted(model3_unique_MD_30)
uniq4_30<-fitted(model3_unique_RS_30)
uniq5_30<-fitted(model3_unique_im5_30)
va_uniq_30<-data.frame(uniq1,uniq3_30,uniq4_30,uniq5_30)
cor_va_uniq_30_1_3<-with(va_uniq_30, cor.test(uniq1, uniq3_30, alternative="two.sided", method="pearson"))
cor_va_uniq_30_1_4<-with(va_uniq_30, cor.test(uniq1, uniq4_30, alternative="two.sided", method="pearson"))
cor_va_uniq_30_1_5<-with(va_uniq_30, cor.test(uniq1, uniq5_30, alternative="two.sided", method="pearson"))
cor_va_uniq_30_1_3_pvalue<-as.character(ifelse(cor_va_uniq_30_1_3$p.value<0.001, "<0.001",cor_va_uniq_30_1_3$p.value))
cor_va_uniq_30_1_4_pvalue<-as.character(ifelse(cor_va_uniq_30_1_4$p.value<0.001, "<0.001",cor_va_uniq_30_1_4$p.value))
cor_va_uniq_30_1_5_pvalue<-as.character(ifelse(cor_va_uniq_30_1_5$p.value<0.001, "<0.001",cor_va_uniq_30_1_5$p.value))
par(mfrow = c(1,3))
plot(va_uniq_30$uniq1,va_uniq_30$uniq3_30,
        xlab="An�lisis original",
        ylab="Imputaci�n Media")
plot(va_uniq_30$uniq1,va_uniq_30$uniq4_30,
        xlab="An�lisis original",
        ylab="Imputaci�n Regresi�n")
plot(va_uniq_30$uniq1,va_uniq_30$uniq5_30,
        xlab="An�lisis original",
        ylab="Imputaci�n M�ltiple")
```
      
##### Figura 71. Correlaciones valores ajustados errores perseverantes (Modelo 1) (30%)        
```{r echo=FALSE, warning=FALSE, message=FALSE}
pers1<-fitted(model3_perseverative)
pers2_30<-fitted(model1_perseverative_sinNA_30)
pers3_30<-fitted(model1_perseverative_MD_30)
pers4_30<-fitted(model1_perseverative_RS_30)
pers5_30<-fitted(model1_perseverative_im5_30)
va_pers_30<-data.frame(pers1,pers3_30,pers4_30,pers5_30)
cor_va_pers_30_1_3<-with(va_pers_30, cor.test(pers1, pers3_30, alternative="two.sided", method="pearson"))
cor_va_pers_30_1_4<-with(va_pers_30, cor.test(pers1, pers4_30, alternative="two.sided", method="pearson"))
cor_va_pers_30_1_5<-with(va_pers_30, cor.test(pers1, pers5_30, alternative="two.sided", method="pearson"))
cor_va_pers_30_1_3_pvalue<-as.character(ifelse(cor_va_pers_30_1_3$p.value<0.001, "<0.001",cor_va_pers_30_1_3$p.value))
cor_va_pers_30_1_4_pvalue<-as.character(ifelse(cor_va_pers_30_1_4$p.value<0.001, "<0.001",cor_va_pers_30_1_4$p.value))
cor_va_pers_30_1_5_pvalue<-as.character(ifelse(cor_va_pers_30_1_5$p.value<0.001, "<0.001",cor_va_pers_30_1_5$p.value))
par(mfrow = c(1,3))
plot(va_pers_30$pers1,va_pers_30$pers3_30,
        xlab="An�lisis original",
        ylab="Imputaci�n Media")
plot(va_pers_30$pers1,va_pers_30$pers4_30,
        xlab="An�lisis original",
        ylab="Imputaci�n Regresi�n")
plot(va_pers_30$pers1,va_pers_30$pers5_30,
        xlab="An�lisis original",
        ylab="Imputaci�n M�ltiple")
```

      
##### Tabla 24. Resumen correlaciones entre valores ajustados: Modelo Original vs Modelos con datos faltantes en Dise�os �nicos      
**Correlaciones** | **Original vs Impt Media** | **Original vs Regresi�n** | **Original vs IM (5)**
--------------------------------------------- | ---------------- | ---------------- | ----------------   
**Dise�o** | **Coef. Pearson, IC95%, (p-valor)** | **Coef. Pearson, IC95%, (p-valor)** | **Coef. Pearson, IC95%, (p-valor)**  
**Modelo 3: 10% datos faltantes **    | `r round(cor_va_uniq1_3$estimate,digits=4)`, `r round(cor_va_uniq1_3$conf.int[1],digits=4)` to  `r round(cor_va_uniq1_3$conf.int[2],digits=4)`, (`r cor_va_uniq1_3_pvalue`)  | `r round(cor_va_uniq1_4$estimate,digits=4)`, `r round(cor_va_uniq1_4$conf.int[1],digits=4)` to  `r round(cor_va_uniq1_4$conf.int[2],digits=4)`, (`r cor_va_uniq1_4_pvalue`)  | `r round(cor_va_uniq1_5$estimate,digits=4)`, `r round(cor_va_uniq1_5$conf.int[1],digits=4)` to  `r round(cor_va_uniq1_5$conf.int[2],digits=4)`, (`r cor_va_uniq1_5_pvalue`)    
**Modelo 3: 20% datos faltantes **       | `r round(cor_va_uniq_20_1_3$estimate,digits=4)`, `r round(cor_va_uniq_20_1_3$conf.int[1],digits=4)` to  `r round(cor_va_uniq_20_1_3$conf.int[2],digits=4)`, (`r cor_va_uniq_20_1_3_pvalue`)  | `r round(cor_va_uniq_20_1_4$estimate,digits=4)`, `r round(cor_va_uniq_20_1_4$conf.int[1],digits=4)` to  `r round(cor_va_uniq_20_1_4$conf.int[2],digits=4)`, (`r cor_va_uniq_20_1_4_pvalue`)  | `r round(cor_va_uniq_20_1_5$estimate,digits=4)`, `r round(cor_va_uniq_20_1_5$conf.int[1],digits=4)` to  `r round(cor_va_uniq_20_1_5$conf.int[2],digits=4)`, (`r cor_va_uniq_20_1_5_pvalue`)   
**Modelo 3: 30% datos faltantes **      | `r round(cor_va_uniq_30_1_3$estimate,digits=4)`, `r round(cor_va_uniq_30_1_3$conf.int[1],digits=4)` to  `r round(cor_va_uniq_30_1_3$conf.int[2],digits=4)`, (`r cor_va_uniq_30_1_3_pvalue`)  | `r round(cor_va_uniq_30_1_4$estimate,digits=4)`, `r round(cor_va_uniq_30_1_4$conf.int[1],digits=4)` to  `r round(cor_va_uniq_30_1_4$conf.int[2],digits=4)`, (`r cor_va_uniq_30_1_4_pvalue`)  | `r round(cor_va_uniq_30_1_5$estimate,digits=4)`, `r round(cor_va_uniq_30_1_5$conf.int[1],digits=4)` to  `r round(cor_va_uniq_30_1_5$conf.int[2],digits=4)`, (`r cor_va_uniq_30_1_5_pvalue`)       
_Coef Pearson: Coeficiente de correlaci�n de Pearson; IC: Intervalo de confianza_       
       
##### Tabla 25. Resumen correlaciones entre valores ajustados: Modelo Original vs Modelos con datos faltantes en Errores Perseverantes      
**Correlaciones** | **Original vs Impt Media** | **Original vs Regresi�n** | **Original vs IM (5)**
--------------------------------------------- | ---------------- | ---------------- | ----------------   
**Dise�o** | **Coef. Pearson, IC95%, (p-valor)** | **Coef. Pearson, IC95%, (p-valor)** | **Coef. Pearson, IC95%, (p-valor)**  
**Modelo 3: 10% datos faltantes **      | `r round(cor_va_pers1_3$estimate,digits=4)`, `r round(cor_va_pers1_3$conf.int[1],digits=4)` to  `r round(cor_va_pers1_3$conf.int[2],digits=4)`, (`r cor_va_pers1_3_pvalue`) | `r round(cor_va_pers1_4$estimate,digits=4)`, `r round(cor_va_pers1_4$conf.int[1],digits=4)` to  `r round(cor_va_pers1_4$conf.int[2],digits=4)`, (`r cor_va_pers1_4_pvalue`)  | `r round(cor_va_pers1_5$estimate,digits=4)`, `r round(cor_va_pers1_5$conf.int[1],digits=4)` to  `r round(cor_va_pers1_5$conf.int[2],digits=4)`, (`r cor_va_pers1_5_pvalue`)    
**Modelo 3: 20% datos faltantes **       | `r round(cor_va_pers_20_1_3$estimate,digits=4)`, `r round(cor_va_pers_20_1_3$conf.int[1],digits=4)` to  `r round(cor_va_pers_20_1_3$conf.int[2],digits=4)`, (`r cor_va_pers_20_1_3_pvalue`)  | `r round(cor_va_pers_20_1_4$estimate,digits=4)`, `r round(cor_va_pers_20_1_4$conf.int[1],digits=4)` to  `r round(cor_va_pers_20_1_4$conf.int[2],digits=4)`, (`r cor_va_pers_20_1_4_pvalue`)   | `r round(cor_va_pers_20_1_5$estimate,digits=4)`, `r round(cor_va_pers_20_1_5$conf.int[1],digits=4)` to  `r round(cor_va_pers_20_1_5$conf.int[2],digits=4)`, (`r cor_va_pers_20_1_5_pvalue`)   
**Modelo 3: 30% datos faltantes **       | `r round(cor_va_pers_30_1_3$estimate,digits=4)`, `r round(cor_va_pers_30_1_3$conf.int[1],digits=4)` to  `r round(cor_va_pers_30_1_3$conf.int[2],digits=4)`, (`r cor_va_pers_30_1_3_pvalue`)  | `r round(cor_va_pers_30_1_4$estimate,digits=4)`, `r round(cor_va_pers_30_1_4$conf.int[1],digits=4)` to  `r round(cor_va_pers_30_1_4$conf.int[2],digits=4)`, (`r cor_va_pers_30_1_4_pvalue`)  | `r round(cor_va_pers_30_1_5$estimate,digits=4)`, `r round(cor_va_pers_30_1_5$conf.int[1],digits=4)` to  `r round(cor_va_pers_30_1_5$conf.int[2],digits=4)`, (`r cor_va_pers_30_1_5_pvalue`)       
_Coef Pearson: Coeficiente de correlaci�n de Pearson; IC: Intervalo de confianza_       