User manual for fraping package
User Manual
Medina Ruiz A. I.
June 12, 2022
Introduction
Introducción
Download packages
En la paquetería fraping se implementan
las funciones necesarias para realizar el análisis de datos de FRAP, sin
embargo, para que esta funcione correctamente debe instalarse también la
paquetería itz. Ambos son
repositorios de GitHub y su instalación
se lleva a cabo mediante la función install_github
de la
paquetería devtools
de R
.
devtools::install_github("artitzco/itz")
devtools::install_github("artitzco/fraping")
De esta forma, las librerías quedarán instaladas en su equipo, por lo que cada que inicie un nuevo proyecto, para el análisis de datos de FRAP, únicamente tendrá que importar las librerías correspondientes:
library(itz)
library(fraping)
La función newDataFrap
crea una base para un nuevo grupo
de datos de FRAP, la función sintetiza la información y devuelve una
lista que permite al usuario manipular sus datos con mayor facilidad.
Los parámetros que admite son el nombre del grupo y la intensidad del
fotoblanqueo en porcentaje. Para más detalles ir a newDataFrap.
Para evitar futuros problemas, el nombre del grupo
- No debe incluir espacios,
- Debe inicial con una letra,
- Sólo se admiten los caracteres especiales “.” y “_“.
A <- newDataFrap("Neurites", 80)
B <- newDataFrap("Secondary.Neurites", 80)
C <- newDataFrap("Dendrites", 80)
Import data
Una vez inicializados los grupos de datos es hora de añadir la
información. Una forma de hacerlo es por medio de la función
'newDataFrap'$addDir
, la cual requiere que el usuario
organice las tablas de FRAP en tres ficheros de su equipo: el primero
con los datos de recuperación, el segundo con las tablas de control y el
tercero con la información del fondo. Los parámetros que admite la
función 'newDataFrap'$addDir
son la duración del
experimento en segundos, el índice del fotograma en el que se aplica el
fotoblanqueo, la ubicación de los ficheros de datos, creados
previamente, (recuperación, control y fondo, en el mismo orden). Los
datos del fondo pueden ser omitidos, sin embargo, debe tener en cuenta
que esto repercute directamente en la estandarización de los datos.
A$addDir(480, 4,
"data/GFP/GFP Secondary Neurite",
"data/GFP/GFP Secondary Neurite Control",
"data/GFP/GFP Secondary Neurite Back")
B$addDir(480, 4,
"data/LIFEACT GFP/LIFEACT GFP Secondary Neurite",
"data/LIFEACT GFP/LIFEACT GFP Secondary Neurite Control",
"data/LIFEACT GFP/LIFEACT GFP Secondary Neurite Back")
C$addDir(480, 4,
"data/LIFEACT GFP/LIFEACT GFP Dendrite",
"data/LIFEACT GFP/LIFEACT GFP Dendrite Control",
"data/LIFEACT GFP/LIFEACT GFP Dendrite Back")
Al momento de crear un nuevo grupo de datos, por medio de la función
newDataFrap
, el programa asigna al grupo un color aleatorio
que servirá para diferenciarlo del resto a la hora de realizar las
gráficas. En caso de que el usuario quiera reasignar dicho color puede
hacerlo por medio de la función 'newDataFrap'$setColor
, la
cual recibe como parámetro el valor del color en formato hex,
también puede elegir uno del vector colors()
o asignarlo
por medio de la función color
de la paquetería itz.
A$setColor("#05753D")
B$setColor("#0000A6")
C$setColor("#E014F7")
Antes de realizar un ajuste paramétrico es posible que el usuario
prefiera realizar uno o más gráficos de los datos, para hacer una
inspección visual de los mismos, esto se logra con la función
plotRecover
, recibe como parámetros las bases creadas con
newDataFrap
, tantas como se requiera, además de diversos
parámetros que permitirán personalizar los gráficos. Para más detalles
ir a plotRecover.
plotRecover(A, B, C, plot.lines=T)
plotRecover(A, B, C, plot.shadow=T, plot.mean=T)
plotRecover(A, B, C, plot.points=T)
Choose a probability model
El modelo paramétrico propuesto para describir el comportamiento de la curva de curva de recuperación de la fluorescencia a partir del momento del fotoblanqueo, es el siguiente:
\[F(t)=f_{min}+\alpha\,(1-f_{min})\,p(t-t_0|\Theta),\] donde \(p\) es una función de distribución acumulada parametrizada por \(\Theta\), \(t_0\) es el tiempo del fotoblanqueo y \(f_{min}\) es el valor mínimo de la fluorescencia después del fotoblanqueo, también se define el valor teórico \(f_{max}\) como el valor máximo que puede alcanzar la fluorescencia después del fotoblanqueo, y está dado por: \[f_{max}= f_{min}+\alpha(1-f_{min}).\]
Puede observarse que la función \(F(t)\) está definida en el intervalo de tiempo \(t\in[t_0, \infty)\). De forma análoga, se define la función \(F^{^{AB}}(t)\) para representar a la curva de recuperación de la fluorescencia después del fotoblanqueo la cual está definida en el intervalo de tiempo \(t\in[0, \infty)\):
\[F^{^{AB}}(t)=f_{min}+\alpha\,(1-f_{min})\,p(t|\Theta).\]
En el apéndice de este documento se puede
encontrar más información acerca de la construcción del modelo. Para que
el usuario pueda realizar el ajuste paramétrico, para el posterior
análisis de datos sus datos, tendrá que ocuparse únicamente de elegir el
modelo de probabilidad, \(p\), más
adecuado. Mediante la función newFit
es posible declarar un
nuevo modelo de probabilidad, la función recibe como parámetros el
nombre que se le quiera dar al modelo, la función de distribución
acumulada, el nombre de los parámetros de la función de probabilidad y
una lista con los rangos de valores para dichos parámetros. Para más
detalles ir a newFit.
Exp<-newFit("Exponential", pexp,"rate", list(c(0,1)))
Gam<-newFit("Gamma", pgamma, c("shape","rate"), list(c(0,5), c(0,5)))
Wei<-newFit("Weibull", pweibull, c("shape","scale"), list(c(0,5),c(0,2000)))
Uno de los criterios más importantes para elegir entre distintos
modelos de probabilidad es mediante el error medio cuadrático, aquellos
modelos que tengan menor error deben ser mayormente preferidos. El error
medio cuadrático está dado por la siguiente expresión: \[E_i =\frac{1}{m_i}\sum_{j=1}^{m_i}
[f_i(t_j)-F(t_j)]^2,\] donde \(\{f_1,..,f_n\}\) es un grupo de datos
fluorescencia y \(\{t_1,t_2,\cdots,t_{m_i}\}\) son todos
aquellos valores mayores al tiempo de fotoblanqueo cuantificados para
\(f_i\). La función
compareFit
comparar el error medio cuadrático de diferentes
modelos de probabilidad ajustados a un grupo de datos, por medio de una
gráfica Q-Q y el histograma del error de cada uno de los modelos. La
función recibe como parámetros al grupo de datos en cuestión, una lista
de los modelos que se requieran comparar, así como una serie de
parámetros que permiten personalizar el gráfico. Para más detalles ir a
compareFit.
compareFit(B, fit=l(Exp, Gam, Wei), col.lines=c("red","yellow"), lty.lines=c(2,1), lwd.lines=2, lwd.mean=2)
compareFit(C, fit=l(Exp, Gam, Wei), col.lines=c("red","yellow"), lty.lines=c(2,1), lwd.lines=2, lwd.mean=2)
Para más información acerca de la elección de un buen modelo de probabilidad ir al apéndice.
Fit a parametric model
Para este caso, en particular, se tiene que el modelo Weibull arroja
mejores resultados, por lo que se recurre a la función Wei
,
para realizar el ajuste correspondiente de los datos, la función
Wei
, aplicada en un grupo de datos específico, devuelve una
lista con la información obtenida por el ajuste paramétrico, así como la
estimación de la función de recuperación de la fluorescencia \(F(t)\), entre otros datos relevantes, para
más detalles ir a newFit.
Para realizar el gráfico del ajuste paramétrico de la recuperación de
la fluorescencia se utiliza la función plotFit
la cual
recibe como parámetros, en primer lugar, a los grupos de datos por
ajustar y posteriormente el modelo de probabilidad que se haya elegido
para cada grupo de datos, entre parámetros opcionales que permiten
personalizar y dar formato a cada gráfica, ir a plotFit para saber más. Si el modelo de probabilidad
elegido es el mismo para todos los grupos de datos, basta con
especificarlo una única vez como se ve a continuación:
plotFit(B, C, fit=Wei, plot.lines=T)
plotFit(B, C, fit=Wei, plot.shadow=T, plot.mean=T, alp.shadow=0.2, ylim=c(0.2, 1), xdigits=0)
Con la función plotFit
se pueden graficar estimaciones
futuras, de la curva de recuperación de la fluorescencia, con solo
modificar el rango del gráfico. Las gráficas obtenidas por las funciones
plotRecover
y plotFit
pueden ser apiladas
cambiando el parámetro opcional new.plot
a
FALSE
.
plotFit(B, fit=Wei, plot.shadow=T, alp.shadow=0.3, xlim=c(0,500), ylim=c(0.2, 1))
plotRecover(B, AB=T, plot.lines=T, new.plot=F)
Otro uso para la función plotFit
es hacer una
comparación visual entre dos o más modelos de probabilidad sobre un
mismo grupo de datos.
plotRecover(B, plot.shadow =T, ylim=c(0.2, 1.2), xdigits=0,lwd.border=1, col="#808080")
plotFit(B, B, fit=l(Wei, Exp), plot.lines=T, new.plot=F, displacement=T, col=c("blue2","red2"))
Compare data sets
Conventional analysis
Por medio de la función compareParam
es posible comparar
dos grupos de datos por medio de las variables asociadas al ajuste del
modelo paramétrico. Los parámetros que recibe esta función son los dos
grupos de datos, el modelo de probabilidad que ajusta a cada grupo de
datos, la variable que se desea comparar, entre otros valores que
permiten personalizar el gráfico. para saber más ir a compareParam. Los nombres de las variables
pueden obtenerse de la siguiente forma:
colnames(Wei(B)$table)
## [1] "shape" "scale" "alpha" "fmax" "UF" "MF" "error"
La función compareParam
realiza un gráfico Q-Q de la
variable elegida, cambiando el parámetro new.plot=FALSE
es
posible apilar los gráficos. Los detalles de la prueba \(t\mbox{-}student\) para la diferencia de
medias al \(95\%\) de confianza se
obtienen cambiando el parámetro return=TRUE
(en
consecuencia, se omitirá el gráfico), el nivel de confianza y la
hipótesis alternativa pueden se modificados mediante los parámetros
alternative
y conf.level
respectivamente, para
más detalles ir a compareParam.
compareParam(B, C, fit=Wei, param="shape")
De esta forma es posible realizar un análisis convencional de la recuperación de la fluorescencia, es decir, comparar la Fracción Inmóvil (UF) y la Fracción Móvil (MF). Recuerde que \[UF=\frac{1-f_{max}}{1-f_{min}}\] \[MF=\frac{f_{max}-f_{min}}{1-f_{min}}\] \[UF+MF=1\]
compareParam(B, C, fit=Wei, param="UF", xlim=c(0,1), ylim=c(0,1),lty.lines=c(2,1), col.lines=c("white","red"), lwd.lines=2)
compareParam(B, C, fit=Wei, param="MF", new.plot=F, lwd.lines=2)
compareParam(B, C, fit=Wei, param="UF", return=T)#>>><<<
##
## Welch Two Sample t-test
##
## data: UF_Weibull_Secondary.Neurites and UF_Weibull_Dendrites
## t = -0.51751, df = 4.2562, p-value = 0.6305
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -0.2846008 0.1933821
## sample estimates:
## mean of x mean of y
## 0.08361768 0.12922699
compareParam(B, C, fit=Wei, param="MF", return=T)#>>><<<
##
## Welch Two Sample t-test
##
## data: MF_Weibull_Secondary.Neurites and MF_Weibull_Dendrites
## t = 0.51751, df = 4.2562, p-value = 0.6305
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -0.1933821 0.2846008
## sample estimates:
## mean of x mean of y
## 0.9163823 0.8707730
También, con la función compareParam
es posible comparar
dos modelos de probabilidad, ajustados a un mismo grupo de datos, con
respecto al error que produce cada ajuste, puede notar que esta gráfica
ya se encuentra incluida dentro del mosaico que arroja la función
compareFit
vista anteriormente.
compareParam(B, B, fit=l(Exp,Wei), param="error", col.lines=c("red", "yellow"), lwd.lines=2, lty.lines=c(2,1), ydigits=2, xdigits=2)
compareParam(B, B, fit=l(Exp,Wei), param="error", return=T)#>>><<<
##
## Welch Two Sample t-test
##
## data: error_Exponential_Secondary.Neurites and error_Weibull_Secondary.Neurites
## t = 1.2307, df = 21.424, p-value = 0.2318
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -0.09746458 0.38089484
## sample estimates:
## mean of x mean of y
## 0.7222331 0.5805180
Mean curve analysis
El análisis de la curva media consiste en evaluar el comportamiento medio de la recuperación de la fluorescencia a lo largo del tiempo, la curva media está dada por:
\[\overline F(t)=\frac{1}{n}\sum_{i=1}^{n}F^{^{AB}}_i(t),\]
donde \(n\) es el tamaño del conjunto de datos en cuestión y \(F^{AB}_i\) es la curva de recuperación de la fluorescencia después del fotoblanqueo asociada a la cuantificación de la fluorescencia \(f_i\).
plotFit(B, fit=Wei, plot.lines=T, plot.mean=T, col.mean="purple",lwd.mean=2, xdigits=0, ydigits=2, alp.lines=0.5)
La función compareMean
permite contrastar las curvas
medias de dos grupos de datos por medio de una prueba \(t\mbox{-}student\) para la diferencia de
medias aplicada de manera continua en un periodo de tiempo. La función
recibe como parámetros a los grupos de datos por comparar, el modelo
probabilidad que ajusta a los datos, entre otros valores que permiten
personalizar la gráfica.
El gráfico que devuelve representa al \(p\mbox{-}value\) de la prueba \(t\mbox{-}student\), la línea de referencia
indica el nivel de significancia. Cambiando el parámetro
return=TRUE
se obtienen los detalles de la prueba
almacenados en una lista (omitiendo la realización de la gráfica), el
nivel de confianza y la hipótesis alternativa pueden ser modificados
mediante los parámetros alternative
y
conf.level
respectivamente, para más detalles ir a compareMean.
compareMean(B, C, fit=Wei, lty.lines=c(2,1), col.lines=c("red","purple"), ydigits=2)
Cambiando el parámetro p.value=FALSE
se calculará la
diferencia de medias entre los dos grupos de datos, la línea de
referencia estará situada en cero. En este caso al cambiar el parámetro
return=TRUE
se obtiene un vector con la diferencia de
medias entre ambas curvas.
compareMean(B, C, fit=Wei, p.value=F, lty.lines=c(2,1), col.lines=c("red","magenta"), ydigits=3)
Simulation
La implementación de métodos de simulación para el análisis de la recuperación de la fluorescencia es una de las principales aportaciones de este trabajo. La simulación permite incrementar el tamaño de una muestra sin alterar sus medidas de tendencia centra ni dispersión, esto es especialmente útil para los casos en los que no se cuenta con un tamaño de muestra suficientemente grande, recuerde que las pruebas de hipótesis que dependen de procesos límite son particularmente sensibles al tamaño de la muestra. Por otro lado, el proceso de simulación se retroalimenta con una elección adecuada del modelo de probabilidad, esto se explica más adelante.
La simulación del modelo de recuperación de la fluorescencia \(F(t)\) se logra gracias a la simulación de
los parámetros \(\Theta\) del modelo de
probabilidad \(p(t|\Theta)\), ir al apéndice para saber más. La función simFit
permite simular los datos ajustados a un modelo de probabilidad, recibe
como parámetro obligatorio a un grupo de datos ajustados a un modelo de
probabilidad y como parámetros opcionales el tamaño de la muestra
simulada y una semilla de simulación, para más detalles sobre la semilla
de simulación ir al apéndice.
Para el caso del ajuste Weibull la simulación de los datos se realiza
de la siguiente forma simFit(Wei(B))
y
simFit(Wei(C))
, para más especificaciones sobre los datos
que arroja esta función ir simFit. Por otro lado,
las funciones plotFit
, compareParam
y
compareMean
tienen implementado el método de simulación,
para acceder a esta función es necesario cambiar el parámetro
simulated=FALSE
. Podemos replicar las gráficas hechas
anteriormente ahora con datos simulados:
plotFit(B, C, fit=Wei, simulated=T, plot.lines=T)
plotFit(B, C, fit=Wei, simulated=T, plot.shadow=T, plot.mean=T, alp.shadow=0.2, ylim=c(0.2, 1), xdigits=0)
plotFit(B, fit=Wei, simulated=T, plot.shadow=T, alp.shadow=0.3, xlim=c(0,500), ylim=c(0.2, 1))
plotRecover(B, AB=T, plot.lines=T, new.plot=F)
plotRecover(B, AB=T, plot.shadow=T,ylim=c(0.2, 1.2), xdigits=0,lwd.border=1, col="#808080")
plotFit(B, B, fit=l(Wei, Exp), simulated=T, plot.lines=T, new.plot=F, displacement=T, col=c("blue2","red2"))
compareParam(B, C, fit=Wei, simulated=T, param="shape")
compareParam(B, C, fit=Wei, param="UF", simulated=T, xlim=c(0,1), ylim=c(0,1),lty.lines=c(2,1), col.lines=c("white","red"), lwd.lines=2)
compareParam(B, C, fit=Wei, param="MF", simulated=T, new.plot=F, lwd.lines=2)
compareParam(B, C, fit=Wei, simulated=T, param="UF", return=T)
##
## Welch Two Sample t-test
##
## data: UF_WeibullSim_Secondary.Neurites and UF_WeibullSim_Dendrites
## t = -1.4645, df = 97.842, p-value = 0.1463
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -0.0891179 0.0134351
## sample estimates:
## mean of x mean of y
## 0.07055279 0.10839419
compareParam(B, C, fit=Wei, simulated=T, param="MF", return=T)
##
## Welch Two Sample t-test
##
## data: MF_WeibullSim_Secondary.Neurites and MF_WeibullSim_Dendrites
## t = 1.4645, df = 97.842, p-value = 0.1463
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -0.0134351 0.0891179
## sample estimates:
## mean of x mean of y
## 0.9294472 0.8916058
plotFit(B, fit=Wei, simulated=T, plot.lines=T, plot.mean=T, col.mean="purple",lwd.mean=2, xdigits=0, ydigits=2, alp.lines=0.5)
compareMean(B, C, fit=Wei, simulated=T, lty.lines=c(2,1), col.lines=c("red","purple"), ydigits=2)
compareMean(B, C, fit=Wei, simulated=T, p.value=F, lty.lines=c(2,1), col.lines=c("red","magenta"), ydigits=3)
Appendix
The fluorescence recovery model
La cuantificación de la fluorescencia, denotada por \(f\), durante el proceso de la técnica de FRAP se describe a continuación: en un inicio es constante pues no hay variación de la fluorescencia, al momento del fotoblanqueo, denominado \(t_0\), la fluorescencia cae hasta un valor mínimo \(f_{min}\) y a partir de este momento comienza un proceso gradual de recuperación de la fluorescencia que cumple necesariamente con dos condiciones, la primera es que la recuperación es no decreciente a lo largo del tiempo, y la segunda es que la fluorescencia alcanza el valor límite \(f_{max}\) que no puede ser mayor que el valor inicial antes del botoblanqueo. Lo anterior se representa en la siguiente gráfica.
En ese sentido, el modelo propuesto para la recuperación de la fluorescencia debe cumplir con las características anteriores, el modelo general para la recuperación de la fluorescencia después del fotoblanqueo es el siguiente:
\[F(t)=f_{min}+\alpha\,(1-f_{min})\,p(t-t_0|\Theta)\]
En donde \(p\) es una función de distribución acumulada continua (CDF), parametrizada por \(\Theta\).
Observaciones-
La función \(F(t)\) está definida en el intervalo \([t_0,\infty)\)
-
El valor \(f_{max}\) está dado por \[f_{max} =\lim_{t\to\infty}F(t)\]
-
El valor \(\alpha\) está acotado por los valores \[\alpha\in[0,1]\]
-
La función de distribución acumulada \(p\) debe estar asociada a una variable aleatoria que con soporte en \((0,\infty)\), recuerde que la CDF se define de la siguiente manera:
\[p(t|\Theta)=\int_0^td(x|\Theta)\,\mbox{d}x\] donde \(d\) es una función de densidad paramétrica.
De forma análoga, se define la función \(F^{^{AB}}(t)\) para representar a la curva de recuperación de la fluorescencia después del fotoblanqueo la cual está definida en el intervalo de tiempo \(t\in[0, \infty)\):
\[F^{^{AB}}(t)=f_{min}+\alpha\,(1-f_{min})\,p(t|\Theta).\]
Probemos que \(F\) cumple con las características de la recuperación de la fluorescencia después del fotoblanqueo:
- \(F(t_0)=f_{min}\)
- \(F(t)\) es no decreciente
- \(f_{max}=f_{min}+\alpha\,(1-f_{min})\) and \(f_{max}\in[f_{min}, 1]\)
Se evalua
\[\begin{aligned} F(t_0) &=f_{min}+\alpha\,(1-f_{min})\,p(t_0-t_0|\Theta)\\ &=f_{min}+\alpha\,(1-f_{min})\,p(0|\Theta)\\ &=f_{min}+\alpha\,(1-f_{min})\int_0^0d(x|\Theta)\,\mbox{d}x\\ &=f_{min}+\alpha\,(1-f_{min})\,(0)\\ &=f_{min} \end{aligned}\] \[\therefore F(t_0)=f_{min}\]
Considere a \(t_1,t_2\in\mathbb R^+\) tales que \(t_1\leq t_2\), entonces
\[\begin{aligned} t_1-t_0\leq &\;t_2-t_0\\ \Rightarrow p(t_1-t_0|\Theta)\leq &\;p(t_2-t_0|\Theta)\\ f_{min}+\alpha\,(1-f_{min})\,p(t_1-t_0|\Theta)\leq &\;f_{min}+\alpha\,(1-f_{min})\,p(t_2-t_0|\Theta) \end{aligned}\] \[\therefore F(t_1)\leq F(t_2)\]
Lo anterior prueba que el modelo paramétrico \(F\) es no decreciente a lo largo del tiempo.
Se calcula el límite de \(F(t)\) cuando \(t\) tiende a infinito:
\[\begin{aligned} f_{max}=\lim_{t\to\infty}F(t) &=\lim_{t\to\infty}f_{min}+\alpha\,(1-f_{min})\,p(t-t_0|\Theta)\\ &=f_{min}+\alpha\,(1-f_{min})\lim_{t\to\infty}\,p(t-t_0|\Theta)\\ &=f_{min}+\alpha\,(1-f_{min})\lim_{t\to\infty}\int_0^{t-t_0}d(x|\Theta)\,\mbox{d}x\\ &=f_{min}+\alpha\,(1-f_{min})\int_0^{\infty}d(x|\Theta)\,\mbox{d}x\\ &= f_{min}+\alpha\,(1-f_{min})\,(1) \end{aligned}\]
\[\therefore f_{max}=f_{min}+\alpha\,(1-f_{min})\] Por otro lado se tiene que \(\alpha\in[0,1]\), entonces
\[\begin{aligned} &0\leq \alpha\leq 1\\ \Rightarrow &0\leq \alpha\,(1-f_{min})\leq 1-f_{min}\\ \Rightarrow &f_{min}\leq f_{min}+\alpha\,(1-f_{min})\leq f_{min}+1-f_{min}\\ \Rightarrow &f_{min}\leq f_{min}+\alpha\,(1-f_{min})\leq 1\\ \Rightarrow &f_{min}\leq f_{max}\leq 1\\ \end{aligned}\] \[\therefore f_{max}\in[f_{min},1]\]Dados un conjunto de datos de fluorescencia \(f\) y una función de distribución acumulada \(p(\bullet|\Theta)\), entonces los parámetros \((\alpha,\Theta)\) son estimados por medio del metodo de mínimos cuadrados, que consiste en minimizar el error medio cuadrático producido entre las curvas \(f\) y \(F\), la función del error medio cuadrático es la siguiente:
\[\begin{aligned}E(\alpha,\Theta)&=\sum_{j=1}^m\left[f(t_j)-F(t_j)\right]^2\\&=\sum_{j=1}^m\left[f(t_j)-f_{min}-\alpha\,(1-f_{min})\,p(t_j-t_0|\Theta)\right]^2\end{aligned}\] donde \(\{t_1,t_2,\cdots,t_m\}\) son todos aquellos tiempos mayores a \(t_0\) cuantificados para \(f\).
Choosing a probability model
La función de distribución acumulada \(p(t|\Theta)\) es la base para construir el
modelo paramétrico de recuperación de la fluorescencia \(F(t|\Theta)\). La elección de la función
\(p\) queda a libre criterio del
usuario, sin embargo, es indispensable que \(p\) tenga soporte en \((0,\infty)\), otro aspecto del que debe
encargarse el usuario es la asignación de los intervalos donde toman
valores los parámetros \(\Theta\), esto
se logra por medio de la función newFit
.
Ejemplo:
Suponga que el usuario ha decidido utilizar una función de probabilidad Pareto, entonces \[p(t|\,\mbox{shape},\mbox{scale})=1-\left(\frac{\mbox{scale}}{t+\mbox{scale}}\right)^{\mbox{shape}}\] \[t>0,\;\;\mbox{scale}>0\;\;\&\;\;\mbox{shape}>0\] Se implementa la función de distribución acumulada Pareto y se declara su ajuste paramétrico asociado:
ppareto <- function(t, shape, scale){
ppar <- NULL
for (t in t)
ppar <- c(ppar, 1-(scale/(t+scale))^shape)
ppar
}
Par <- newFit("Pareto", ppareto, c("shape","scale"), list(c(0,a), c(0,b)))
El código anterior establece que \(\mbox{shape}\in(0,a)\) y \(\mbox{scale}\in(0,b)\). Después de ajustar
el modelo Par
a un grupo de datos el usuario debe verificar
que los valores shape
y scale
se encuentren
completamente contenidos en el interior de los intervalos \((0,a)\) y \((0,b)\) respectivamente, de lo contrario,
tendrá que modificar los valores de \(a\) y/o \(b\) y repetir el procedimiento. Lo anterior
se consigue mediante una inspección visual de las variables devueltas
por el ajuste: se deben ejecutar los códigos
Par(B)$table$shape
y Par(B)$table$scale
e
inspeccionar los resultados, donde B
es un conjunto de
datos de FRAP obtenido por medio de la función
newDataFrap
.
Las funciones creadas por newFit
tienen el propósito de
encontrar los mejores valores \(\Theta\) tales que minimicen el error
cuadrático entre el modelo \(F(t|\Theta)\) y los datos reales de
recuperación de la fluorescencia. Por lo que el principal criterio para
elegir el modelo de probabilidad \(p\)
más adecuado debe ser: preferir el modelo que produzca el menor error
cuadrático medio, esto se logra, como se vio anterior mente, por medio
de la función compareFit
.
compareFit(B, fit=l(Exp, Gam, Wei, Par), col.lines=c("red","yellow"), lty.lines=c(2,1), lwd.lines=2, lwd.mean=2)
Por otro lado, un segundo criterio para evaluar la viabilidad de un modelo de probabilidad \(p\) es viendo cómo se comportan las simulaciones de \(F\). Si existen discrepancias entre los datos reales de fluorescencia y las simulaciones de \(F\) entonces lo más razonable es descartar el modelo \(p\). Ya que esto implicaría que no hay una relación causal entre los parámetros \(\Theta\) y los datos de recuperación de la fluorescencia y, como se verá en el siguiente apéndice, las simulaciones de \(f_{max}\) son particularmente sensibles a las variaciones de \(\Theta\).
plotFit(B, B, fit=l(NULL,Exp), col=c("#916F91","#FF4D66"), plot.lines=c(F,T), plot.mean=c(T,F), lwd.mean=2, plot.shadow=c(T,F), lwd.border=1, alp.border=0.4, alp.shadow=0.3, ylim=c(0.2, 1), xdigits=0, simulated=T, seed=1992, main="Exponential simulation", cex.main=1.5)
plotFit(B, B, fit=l(NULL,Gam), col=c("#916F91","#4DB34D"), plot.lines=c(F,T), plot.mean=c(T,F), lwd.mean=2, plot.shadow=c(T,F), lwd.border=1, alp.border=0.4, alp.shadow=0.3, ylim=c(0.2, 1), xdigits=0, simulated=T, seed=1992, main="Gamma simulation", cex.main=1.5)
plotFit(B, B, fit=l(NULL,Wei), col=c("#916F91","#664DFF"), plot.lines=c(F,T), plot.mean=c(T,F), lwd.mean=2, plot.shadow=c(T,F), lwd.border=1, alp.border=0.4, alp.shadow=0.3, ylim=c(0.2, 1), xdigits=0, simulated=T, seed=1992, main="Weibull simulation", cex.main=1.5)
plotFit(B, B, fit=l(NULL,Par), col=c("#916F91","#B34DB3"), plot.lines=c(F,T), plot.mean=c(T,F), lwd.mean=2, plot.shadow=c(T,F), lwd.border=1, alp.border=0.4, alp.shadow=0.3, ylim=c(0.2, 1), xdigits=0, simulated=T, seed=1992, main="Pareto simulation", cex.main=1.5)
Stochastic simulation theory
La simulación estocástica es un proceso mediante el cual se pretende reproducir el comportamiento de una variable aleatoria, la base de la simulación se sigue del siguiente teorema:
Sea \(X\) es una variable aleatoria y \(\mathbb F_X\) su función de distribución acumulada, sea \(U\) una variable aleatoria con distribución \(\mbox{Uniform}(0,1)\), entonces la variable aleatoria \(\mathbb F^{-1}_X(U)\) tiene la misma distribución que \(X\), es decir:
\[\mathbb F_X = \mathbb F_{\mathbb F^{-1}_X(U)}\]
Proof:
\[\begin{aligned}\mathbb F_{\mathbb F^{-1}_X(U)} &=\mathbb P\left[\mathbb F^{-1}_X(U)\leq t\right] =\mathbb P\left[\mathbb F_X\left(\mathbb F^{-1}_X(U)\right)\leq \mathbb F_X\left(t \right)\right]\\ &=\mathbb P\left[U\leq \mathbb F_X\left(t \right)\right] =\int_0^{\mathbb F_X\left(t \right)}f_U(u)\,\mbox{d}u =\int_0^{\mathbb F_X\left(t \right)}1\,\mbox{d}u\\ &=\left.u\right|_0^{\mathbb F_X\left(t \right)}={\mathbb F_X\left(t \right)}-0={\mathbb F_X\left(t \right)} \end{aligned}\] \[\therefore {\mathbb F_X\left(t \right)}=\mathbb F_{\mathbb F^{-1}_X(U)}\]
Nótese que como \(U\) es una variable uniforme, se tiene que \(f_U(u)=1,\;\; 0<u<1\). (\(f_U\) es la función de densidad de \(U\))
El teorema anterior permite simular cualquier variable aleatoria \(X\) siempre que se conozca su función de distribución acumulada \(F_X\). Sea \(\{u_1,u_2,\cdots,u_n\}\) una muestra aleatoria de valores observados de la variable aleatoria \(\mbox{Uniform}(0,1)\), entonces \(\{\mathbb F_X^{-1}(u_1),\mathbb F_X^{-1}(u_2),\cdots,\mathbb F_X^{-1}(u_n)\}\) es una muestra de valores simulados de la variable \(X\). En términos computacionales, para realizar el proceso de simulación de simulación, la generación de una muestra aleatoria uniforme se lleva a cabo por medio de algoritmos de generación de números pseudoaleatorios.
Habrá situaciones en las que se requiera simular el comportamiento de una muestra de datos \(x_1,x_2,\cdots,x_n\) de alguna distribución desconocida, por lo que no se dispone de función de distribución acumulada, en estos caso para realizar la simulación se utiliza a la función de distribución acumulada empírica (ecdf), la cual se define de la siguiente manera:
\[\widehat{\mathbb F}_{x_1,x_2,\cdots,x_n}(t)=\frac{1}{n}\sum_{i=1}^n\mathbb {I}_{x_i\leq t}\]
donde \(\mathbb{I}_{x_i\leq t}=\left\lbrace\begin{aligned} 1,\; x_i\leq t\\ 0,\; x_i> t\end{aligned}\right.\)