Resumen: El presente trabajo describe una serie de herramientas de representación y análisis de las propiedades continuas de la conducta, diseñadas en lenguaje R y basadas en la propuesta teórico-metodológica del uso de medidas molares para el estudio de la conducta. Se describe cada medida, así como la respectiva herramienta diseñada en el programa para generar la representación correspondiente. Posteriormente, se ilustra su utilidad mediante el análisis del patrón espaciotemporal del desplazamiento de una rata que se expuso a una condición en la que se manipuló la probabilidad de entrega de agua en función del tiempo y el espacio en una cámara experimental ampliada. Se discute la utilidad de las herramientas diseñadas en el contexto del análisis molar de la conducta, así como en otros posibles escenarios.
Palabras clave: flujo conductual, medidas molares, programación, lenguaje R, ratas.
Abstract: This paper introduces a series of tools for the representation and analysis of continuous properties of behavior, designed in the R language and based on the theoretical-methodological proposal of the use of molar measures for the study of behavior. Each measure is described, as well as their respective tool designed in the program to produce the corresponding representation. Its usefulness is then illustrated by analyzing the spatio-temporal pattern of a rat’s displacement under a manipulation of the probability of water delivery as a function of time and space in an expanded experimental chamber. The usefulness of tools designed in the context of molar behavior analysis, as well as in other possible scenarios is discussed.
Keywords: behavior stream, molar measures, programming, R language, rats.
Artículos de investigación
Análisis de Dimensiones Continuas del Comportamiento: Un Tutorial en R
Analysis of Continuous Dimensions of Behavior: An R Tutorial
Recepción: 20 Diciembre 2021
Aprobación: 03 Marzo 2022
El presente trabajo describe una serie de herramientas diseñadas empleando el lenguaje . (R Core Team, 2021) para generar representaciones y llevar a cabo análisis de datos acordes con la propuesta de Ribes-Iñesta (2007, 2018) enfocada al análisis de las propiedades continuas del comportamiento a partir de cinco medidas molares: la direccionalidad, el vigor, la variación, la preferencia y persistencia. Tales medidas cobran relevancia en el contexto del estudio del comportamiento, en el que la mayoría de los autores se ha enfocado en el estudio y análisis de unidades discretas de la conducta (e.g., presiones de una palanca, picotazos a una tecla, intromisiones de cabeza en un comedero, etc.) dejando de lado la característica esencial del comportamiento de ocurrir como un flujo (Schoenfeld & Farmer, 1970). Es importante destacar que, a partir de la observación y registro del desplazamiento continuo del organismo a través del espacio experimental a lo largo del tiempo de exposición a las condiciones experimentales, es posible segmentar el tiempo en frames (de duración arbitraria), pero sin perder la noción de que lo que ocurre en cada frame es precedido y seguido por otro frame en el que también ha ocurrido algo. De tal manera que, aunque con una subdivisión arbitaria del tiempo, aún es posible rescatar de los registros la representación de lo que ha ocurrido de manera continua a través del tiempo, ya sea segundo a segundo, a lo largo de cada intervalo entre eventos experimentales, de cada sesión o incluso a través de cada fase experimental. Por otro lado, el conteo de respuestas registradas en un operando, como típicamente se hace en los estudios sobre análisis de la conducta, únicamente indica la frecuencia con la que ocurren tales respuestas discretas, sin dar cuenta de lo que sucede entre una respuesta y la siguiente, además de minimizar la importancia de la ocurrencia de éstas a través del tiempo (como parte del flujo conductual del organismo).
Las medidas molares propuestas por Ribes-Iñesta (2007, 2018) atienden a las propiedades continuas de la conducta en tanto que se basan en el registro momento a momento de lo que hace el organismo dentro del espacio experimental, de tal manera que es posible capturar la configuración de sus patrones de desplazamiento en relación con los eventos que acontecen y con la ubicación en las que éstos se presentan, permitiendo así un análisis detallado tanto intrasesión como entre sesiones y, por supuesto, entre fases.
De manera más específica, la direccionalidad se refiere al desplazamiento del sujeto dentro del espacio experimental a lo largo de la sesión con respecto de uno o varios objetos de estímulo presentes en la misma; los ejemplos incluyen la orientación del cuerpo, cabeza o vista del organismo; y el desplazamiento desde o hacia ciertos puntos del espacio experimental. El vigor (también denominado esfuerzo) hace referencia a la energía empleada por el organismo para la obtención o acercamiento a los objetos disposicionalmente pertinentes por lo que puede representarse como cambios en la velocidad de desplazamiento, distancias recorridas, cambios en la aceleración, entre otras. La variación (que no debe ser confundida con la variedad) pretende reflejar los diferentes patrones conductuales empleados por el organismo durante las sesiones; no hace referencia a la cantidad de diferentes patrones sino al uso diferencial de los mismos ante diferentes condiciones espaciotemporales. La preferencia es una medida del tiempo que el organismo pasa en ciertas zonas del espacio experimental, el cuál puede estar segmentado de forma arbitraria (p.ej. celdas) o bien de forma funcional (p.ej. zonas adyacentes al comedero/bebedero). Por su parte, la persistencia se refiere al empleo de patrones no funcionales o no requeridos para el cumplimiento de las contingencias presentes en la situación.
A la fecha, se han realizado varios experimentos en los que se ha ilustrado la utilidad y pertinencia de las medidas molares propuestas originalmente y revisadas por Ribes-Iñesta (2007; 2018). Si bien no es objeto del presente trabajo presentar una revisión pormenorizada de dichos experimentos (e.g., Ribes-Iñesta et al., 2020; Ribes-Iñesta & Ruiz, 2021; Ribes-Iñesta & Tamayo, 2020, 2021; Ruiz & Guerrero, 2021), es importante destacar dos conclusiones que se desprenden de tales estudios: a) que las dimensiones continuas de la conducta no necesariamente co-varían en la misma dirección (depende de las contingencias programadas) y b) que el efecto que las medidas molares reflejan no es necesariamente afín a lo que muestra un análisis de respuestas discretas. En este contexto, resulta pertinente señalar que otros autores, aunque con una lógica diferente, también han destacado la importancia de un análisis de las propiedades espaciotemporales del comportamiento como una alternativa más adecuada para el estudio de la conducta como un continuo (e.g., Pear, 2004).
En la siguiente sección, se describen una serie de funciones creadas a partir del lenguaje . diseñadas para representar cada una de las cinco medidas molares en el contexto del desplazamiento de ratas en un espacio experimental ampliado. Se consideró la pertinencia del uso de . a partir de sus características como un lenguaje de licencia libre, de código abierto y ampliamente versátil para la programación de técnicas y procedimientos de análisis (cf. Wickham, 2019).
R es un software gratuito para desarrollar análisis estadísticos y construir gráficos, entre otros usos (Ihaka & Gentleman, 1996). Es de código abierto, por lo que cualquier persona puede acceder a él y contribuir. Al instalar R, se cuenta con un paquete Base con un amplio número de funciones. Sin embargo, es posible ampliar las funciones al descargar e instalar los paquetes necesarios del sitio electrónico del Comprehensive R Archive Network (CRAN, https://www.R-project. org/packages). La versión de R más reciente es la 4.1.0, la cual fue publicada el 18 de mayo de 2021. Las funciones que se describen a continuación se crearon con la versión más reciente, aunque se ha probado su correcto funcionamiento en las versiones anteriores del software.
R es un lenguaje que funciona a partir de líneas de comandos que esencialmente se construyen a partir de dos partes: objetos y funciones, unidas por el símbolo “<-” (que significa “es creado a partir de”). Un objeto en . puede tomar un valor específico (e.g., una constante), una variable (númerica, lógica, categórica, etc.), un conjunto de variables (del mismo o de diferente tipo), una base de datos completa, entre otros. Una función en . es toda operación posible, ya sea que se empleen las funciones incluidas en el paquete Base de ., de los paquetes descargados, o bien, funciones creadas por el usuario a partir de su programación en el entorno de .. La mayor parte del código que se describe se diseñó en la interfaz del software RStudio (RStudio Team, 2021) y, a partir de éste, se generó una versión reducida en código html, mediante los paquetes markdown (Allaire et al. 2019) y knitr (Xie, 2015, 2021); de tal manera que puede consultarse en línea cada detalle del código que se describe (https://www.uv.mx/personal/jorruiz/analisis-continuo-en-r/).
Para el propósito del presente trabajo, se crearon la mayoría de las funciones que se ilustran, algunas a partir de los paquetes incluidos en la instalación original de . y algunas a partir de funciones alojadas en otros paquetes. El uso de las funciones que aquí se presentan requiere que los datos que se van a analizar consistan en registros momento a momento (en frames de determinada duración) del desplazamiento del organismo a través del espacio experimental. La base de datos que contenga la información a analizar debe contar forzosamente con dos columnas, la posición respecto al Eje . y la posición respecto al Eje ., aunque es recomendable que se incluya una tercera que indique el paso del tiempo en las unidades correspondientes (i.e., duración de cada frame). En la Figura 1, se presenta a manera de ejemplo, una base de datos que contiene la última sesión de cuatro fases experimentales correspondientes al experimento que se describe más adelante y que se empleó para aplicar las funciones que se presentan en esta sección. La base de datos incluye una primera columna, que contiene los identificadores del número de frame al que corresponde cada renglón; una segunda columna, con el tiempo transcurrido al inicio de cada frame; una tercera y cuarta columna, que indican la posición del organismo en las coordenadas X-Y en cada frame, para la Sesión 20; y en los siguientes pares de columnas, los valores de las coordenadas X-Y en otras tres sesiones (40, 60 y 80).

Nota. Son necesarias, al menos, una columna que corresponde a la segmentación del paso del tiempo en frames de determinada duración y dos columnas por sesión, las cuales corresponden a la posición del organismo en X y en Y, respectivamente, en cada frame.
La medida de direccionalidad es representada principalmente por las rutas de desplazamiento en un espacio experimental delimitado durante un intervalo de tiempo dado. Sus representaciones comprenden las rutas analógicas del desplazamiento del organismo, así como la distancia respecto de una ubicación asociada a un evento relevante. En cada representación, es posible hacer comparaciones en distintos momentos de cada sesión experimental, entre sesiones experimentales y a lo largo del experimento. Para generar representaciones de direccionalidad, es necesario contar con registros de cambio de posición en forma de coordenadas dentro de un plano cartesiano, así como de la posición de la ocurrencia de los eventos de estímulo.
Para el caso de la representación de rutas analógicas, no hace falta crear una función particular en .. Para una representación bidimensional, es posible usar el comando plot(), en el cual no hay más que especificar las variables que corresponden a las coordenadas X-Y y, en caso de requerirlo, especificar el rango que deberá mostrarse en la figura. La manera más simple en la que se construiría la línea de comandos sería: plot(x,y,type=”l”), en donde . y . hacen referencia a las coordenadas a través de las cuales se desplazó el organismo, o bien, plot(x[1:120],y[1:120] ,type=”l”), en donde [1:120] indica que se representan las coordenadas de los primeros 120 frames de la sesión correspondiente (los valores son sólo un ejemplo, podría ser cualquier rango del conjunto de datos). En ambos casos, el argumento type indica que los datos se graficarán como una línea continua.
El comando plot admite una serie de argumentos que permiten especificar las características particulares de la figura, por ejemplo, los rótulos del eje de las abscisas (xlab=””), los del eje de las ordenadas (ylab=””), controlar el rango de los ejes (xlim, ylim), entre otros. Se recomienda al lector consultar directamente la documentación de la función plot() en el entorno de . para conocer cada uno de los argumentos posibles y sus respectivos efectos sobre la figura.
Para el caso de una representación tri-dimensional, consistente en la representación del desplazamiento en las coordenadas X-Y del plano del espacio experimental a través del tiempo (Eje .), es posible utilizar otra función ya existente, y disponible en el paquete plot3D(Soetaert, 2019): scatter3D(x,y,z, type=”l”,colvar=NULL), en donde x, y y . hacen referencia a las variables que contienen los datos correspondientes a la posición en las coordenadas (. y .) a través del tiempo (.), type tiene la misma función que en comando plot(), el comando colvar especifica por defecto que los datos se presentarán de diferente color en función de la variable . por lo cual debe definirse explícitamente como nulo para que los datos se muestren en un solo color (negro, en automático).
Para la representación de la distancia respecto de una ubicación asociada a un evento relevante, llamada cercanía-lejanía por RibesIñesta et al. (2020; 2021), es necesario crear una función que permita el cálculo de la distancia organismo-objeto en cada frame. Para lograrlo, se programó una función basada en la fórmula (1):

Donde se do–oe refiere a la distancia entre el organismo y el objeto de estímulo, xo y yo se refieren la posición del organismo en las coordenadas X-Y en un momento determinado y xoe y yoe a la ubicación del objeto de estímulo. En el documento html que acompaña a este artículo, se muestran los detalles de la manera en la que se programó la Ecuación (1) y cómo se creó una función aplicable sobre una o varias sesiones a la vez. La forma general de la aplicación de esta función es: closeness(x,y,x_obj,y_obj,n), donde . y . se refieren a las variables que indican la posición del organismo momento a momento en las coordenadas X-Y, x_obj y y_obj se refieren a la ubicación del objeto de estímulo y . se refiere al número de frames en el conjunto de datos.
La medida de vigor, también denominada de esfuerzo, se ha medido como la distancia total recorrida, como velocidad absoluta o como velocidad neta o efectiva. Para obtener cualquiera de las variantes, se requiere calcular como dato primordial la distancia recorrida en cada frame. Para el cálculo de la distancia recorrida, se empleó la fórmula (2):

Donde di se refiere a la distancia recorrida en i-ésimo frame, Xi y Yi se refieren la posición original del organismo en las coordenadas X-Y en un momento determinado Xi+1 y Yi+1 a la ubicación del organismo en el siguiente frame. En el documento html, se muestran los detalles de la manera en la que se programó la Ecuación (2) y cómo se creó una función aplicable sobre una o varias sesiones a la vez. La forma general al aplicar dicha función es: distancia(x,y,n), donde . y . se refieren a las variables que indican la posición del organismo momento a momento en las coordenadas X-Y y . se refiere al número de frames en el conjunto de datos. Como puede apreciarse, la función distancia() es muy parecida a la función closeness(), con la diferencia de que la primera calcula la distancia entre el organismo y el objeto de estímulo y la segunda calcula la distancia del organismo respecto a sí mismo momento a momento.
A partir de la suma de la distancia recorrida a través de todos los frames, es posible calcular la distancia total recorrida por sesión, la velocidad absoluta al dividir la distancia total sobre el tiempo de la sesión, o bien, la velocidad neta al dividir la distancia sobre el tiempo en el que genuinamente hubo movimiento. En el presente manuscrito, se emplea la función cumsum() aplicada a la serie de distancias recorridas frame a frame dentro de la función plot() para producir una figura con la suma acumulativa de la distancia recorrida, de tal manera que la altura máxima de la curva que se grafica corresponde a la distancia total recorrida, mientras que la pendiente de la curva señala la velocidad local del desplazamiento. Además, en la figura producida, se agrega texto con la distancia total recorrida mediante la función text(x,y,adj=0, paste(“DT = “, format(sum(dist_s60,na.rm = T)/100,digits = 4),”m”)), en la que los primeros dos argumentos . y . se deben sustituir con números correspondientes a las coordenadas en las que aparecerá el texto dentro del plano, el argumento adj=0 indica que el texto se alinea hacia la izquierda, mientras que, dentro del comando paste(), se incluye el texto que se ha de mostrar con una cantidad intercalada que corresponde a la suma de la distancia total recorrida (la cual está dividida entre cien para convertirla a metros). Dicha cantidad se muestra con cuatro dígitos en total, incluyendo enteros y decimales. En la figura, también se incluye el cálculo de la velocidad neta para los datos de la sesión en cuestión. Para ello, se emplea una línea de comandos similar a la que se describió para la distancia total recorrida, con la diferencia de que, en lugar de la suma de la distancia total en esta línea, se emplea una función creada para el propósito de calcular la velocidad neta. Dicha función tiene la forma general velocidad. neta(x), en donde x corresponde a la variable que contiene la distancia recorrida en cada frame, a partir de la cual esta función identifica cuándo hubo movimiento y cuándo no de tal manera que calcula la velocidad neta dividiendo la distancia total recorrida entre el tiempo de la sesión en el que hubo movimiento.
La medida de preferencia es representada principalmente por la cantidad de tiempo acumulado en las distintas zonas del espacio experimental. En la publicación de Ribes-Iñesta et al. (2020), se realizó una delimitación de 64 celdas que segmentaron virtualmente el piso de cámara experimental, aunque si se cuenta con un registro de las coordenadas exactas de la posición del organismo, es posible emplear una función de . para producir una figura de preferencia en la que se pueda elegir, al momento de analizar los datos, la cantidad de celdillas en las que se segmenta el espacio al contabilizar las visitas a cada área. Para generar representaciones de permanencia, es suficiente con emplear la función hist3D(z), la cual también se encuentra incluida en el paquete plot3D y donde . se refiere a una tabla conformada por un número de renglones y columnas en las que se distribuye el conteo de visitas. Para crear dicha tabla, sólo se requiere emplear la función cut(x,n) para segmentar la variable . (así como la variable .) en . intervalos, para posteriormente crear la tabla necesaria mediante la función table(). En el documento html, se incluye la escritura de esta serie de comandos para ejemplificar la construcción de una segmentación del espacio experimental en 100 celdillas virtuales.
Otras funciones de . también podrían ser de utilidad en la representación de la medida de preferencia. Una de ellas es la de image2D(z), también incluida en el paquete plot3D y con características semejantes a las de la función hist3D en cuanto a los argumentos requeridos (i.e., se debe especificar una tabla con el conteo de las visitas en cada área definida del espacio experimental). En cuanto a representación, la función image2D arroja un mapa de calor en el que es posible diferenciar la magnitud del tiempo de permanencia en cada área a partir de la coloración de éstas. La otra función es hexbinplot(), del paquete hexbin (Carr et al. 2021), que permite una representación semejante a la de un mapa de calor, aunque usando una escala de grises y en donde las segmentaciones del plano son hexagonales en lugar de cuadrados.
Para la representación de la variación, es relevante considerar la manera en la que se subdivide el tiempo de una sesión experimental, de acuerdo con las contingencias programadas. A partir de la ocurrencia periódica de un evento relevante en la situación experimental, es posible especificar ciclos de tiempo (de duración constante o variable) que se repiten a través de la duración total de la sesión experimental, en donde la medida molar de la variación corresponde a la diversidad de posibles rutas seguidas por el organismo a lo largo de cada ciclo y su posible diferencia respecto de la trayectoria más corta (una línea recta) desde su posición al inicio de cada ciclo y la ubicación de la ocurrencia del objeto de estímulo al final del ciclo. Se programó el código necesario para obtener la diferencia entre la distancia recorrida en cada ciclo de tiempo y la trayectoria ideal. Para lograrlo, se debe aplicar un filtro a los valores de . y . de la sesión en cuestión, para obtener los valores de la posición del organismo al inicio de cada ciclo. Para ello, se desarrolló la función posiciones(x,y,inicios), donde . y . se refieren a las variables que indican la posición del organismo momento a momento en las coordenadas X-Y e inicios se refiere a una variable que indica los números de frame que correspondieron al inicio de cada ciclo. La función posiciones devuelve la posición del organismo en cada inicio de ciclo, de tal manera que la distancia correspondiente a la trayectoria más corta (i.e., en línea recta) entre la posición del organismo al inicio del ciclo y la ubicación del objeto de estímulo se puede obtener mediante la aplicación directa de la Ecuación (1). Para obtener el cálculo de la distancia recorrida en la ruta seguida por el organismo en cada ciclo, es posible emplear la función rollapply(x, width, FUN, by), del paquete zoo, donde . corresponde a una variable que contiene una serie de valores, los cuales son divididos en segmentos de tamaño igual a lo que se especifique en el argumento width. FUN especifica la función que habrá de aplicarse sobre los segmentos de datos; mientras que by señala cada cuantas observaciones se aplica la función sobre los segmentos de datos. En el caso de este trabajo, por ejemplo, se especificó que el vector que contiene las distancias recorridas frame a frame fuesen divididos en segmentos de tamaño igual a 150, debido a que es el número correspondiente para ciclos de 30 segundos con una resolución de 5 frames por segundo y que se aplicara la función de suma cada 150 observaciones, de tal manera que se obtienen las distancias recorridas en cada ciclo. Finalmente, basta con calcular la diferencia entre la trayectoria ideal y la ruta de desplazamiento ciclo por ciclo para obtener la distribución de tales diferencias como un indicador de la variación.
Ruiz y Guerrero (2021) ejemplificaron el uso del cálculo de entropía conjunta como una alternativa para cuantificar el grado de variación en las rutas de desplazamiento. Ésta puede obtenerse por ciclo o por sesión, según el interés de cada investigador. Los autores describen en su trabajo la ecuación que siguieron para obtener dicho cálculo y también la función empleada, entropy(), del paquete entropy (Hausser & Strimmer, 2021).
Para la representación de la persistencia en términos de la ocurrencia repetida de las respuestas discretas pertinentes en el procedimiento pero fuera de un periodo de relevancia, por ejemplo, entradas al bebedero después del periodo de disponibilidad de agua, es suficiente con graficar el dato recolectado por el software en el que se programó la tarea experimental, por ejemplo, a partir del registro realizado mediante MED-PC de las entradas al bebedero. Ribes-Iñesta y Ruiz (2021) describieron como método alternativo para analizar la persistencia el cálculo del número de visitas a las áreas adyacentes a las ubicaciones en las que se presentaba el objeto de estímulo, definiendo a una visita como una estancia menor a 3 segundos en dichas áreas. Para una descripción detallada del algoritmo empleado, véase directamente el trabajo de estos autores.
Aplicación de las funciones a datos experimentales
Se muestra la aplicación de las funciones desarrolladas en . empleando un conjunto de datos recolectados de una rata que se expuso a un procedimiento en el que se varío la probabilidad de ocurrencia de la entrega de agua a través del tiempo y el espacio.
Por motivos prácticos, se omite una presentación a profundidad del contexto teórico que subyace a una preparación como la que se describe.
Sujetos
Se utilizó una rata Wistar hembra de 3 meses de edad y experimentalmente ingenua. Se mantuvo privada de agua durante 23 horas, con acceso al agua sólo durante la sesión experimental y durante media hora de acceso en su jaula-hogar (una hora después de que finalizaba la sesión). Se mantuvo el acceso libre a la comida mientras se encontraba en su jaula-hogar. Se manejó un ciclo de luz/oscuridad de 12 horas. Las sesiones se condujeron siete días a la semana, siempre a la misma hora.
Aparatos
Se utilizó una cámara de desplazamiento de 92cm = 92cm = 30cm para ratas (Coulburn Habitest Labline L91-165). Al centro de cada uno de los paneles se colocó un bebedero conectado a un dispensador de agua (H14-05R-LED, Coulbourn Instruments).
La cámara se colocó dentro de una habitación sonoamortiguada. El control de los eventos experimentales y el registro de la conducta se realizaron mediante una computadora equipada con software MED-PC IV acoplada a una interfase Med-Associates Inc.. (Modelo SG-503), ubicada en una habitación diferente a donde se encontraba la cámara de desplazamiento. El desplazamiento y localización de las ratas se registró mediante una cámara de video (Panasonic RJ36) colocada a una distancia de 1 metro sobre la cámara de desplazamiento. El registro del desplazamiento de las ratas se obtuvo mediante el software Ethovision 2.1, con una resolución de 5 cuadros por segundo (0.2s).
Procedimiento
Se manipularon distintos valores de probabilidad de ocurrencia de un evento (entrega de una gota de agua de 0.03cc) en espacio y tiempo para cuatro posibles ubicaciones y 72 ciclos. Cada ciclo estuvo conformado por 27 segundos sin disponibilidad de agua y 3 segundos de disponibilidad, por lo que la duración de la sesión fue de 36 minutos; la presentación del agua ocurría independientemente de la conducta de la rata.
A través de cuatro fases experimentales, se manipularon los valores de probabilidad de ocurrencia del evento en espacio, p(OEE), y en tiempo, p(OET). En la Fase 1, se mantuvo un valor p(OEE) = 1 y p(OET) = 0.5, en la que se presentaron 36 entregas de agua en un mismo dispensador. En la Fase 2, se mantuvo un valor p(OEE) = 0.5 y p(OET) = 0.5, en la que se presentaron 36 entregas de agua, la mitad de ellas en un mismo dispensador y la otra mitad de manera equiprobable en los otros tres. En la Fase 3, se mantuvo un valor de probabilidad igual a 1 para ambas dimensiones, de tal manera que se presentaron un total de 72 entregas de agua en un mismo dispensador. En la Fase 4, se mantuvo un valor p(OEE) = 0.5 y p(OET) = 1, en la que se presentaron 72 entregas de agua, la mitad de ellas en un mismo dispensador y la otra mitad de manera equiprobable en los otros tres. Como estrategia de control experimental, se asignó la mayor probabilidad de ocurrencias a un dispensador diferente en cada fase. Cada fase estuvo conformada por 20 sesiones, aunque para ilustrar las funciones presentadas en el manuscrito, sólo se empleó la última sesión de cada fase.
Análisis de datos
Se emplearon las funciones que se describieron en la sección anterior y que se muestran en la página electrónica: https://www.uv.mx/ personal/jorruiz/analisis-continuo-en-r/. El código puede ser usado en R copiando y pegando el contenido directamente a un editor de texto simple (e.g., Bloc de notas) para posteriormente abrirlo desde la interfaz de ., o bien, pegándolo directamente en la interfaz de Rstudio (o el editor que se decida usar).
Respecto a la direccionalidad, en la Figura 2 se muestra una representación bidimensional de las rutas analógicas del desplazamiento de la rata en la última sesión de cada fase experimental. En cada panel, la ubicación de cada dispensador se representa con un recuadro y las siglas D1, D2, D3 y D4. Se encontró que, en tanto se mantuvo p(OEE) y p(OET) con un valor de 1.0, la rata se dirigió hacia el dispensador que se encontraba entregando agua con algunos desplazamientos hacia las zonas adyacentes a los dispensadores restantes; sin embargo, cuando p(OET) disminuyó al valor de 0.5, la rata se desplazó en mayor medida hacia otras zonas del espacio experimental. En el caso en que se definieron valores distintos para p(OEE), la rata se dirigió hacia otras zonas de la cámara experimental, pero no hacia aquella que se relacionaba con el dispensador con mayor frecuencia de entregas de agua, aunque pareció desplazarse más por otras zonas cuando el valor de p(OEE) fue menor que 1.0.

Nota. Desplazamiento de la rata a través del espacio de la cámara experimental en la última sesión de cada condición experimental.
En la Figura 3, se muestra una representación tridimensional de las rutas analógicas del desplazamiento de la rata en la última sesión de cada fase experimental. Se indica en la base y en la parte superior de cada panel la ubicación de cada dispensador. A diferencia de las figuras anteriores, en este caso es posible observar de forma más clara lo que sucedió a lo largo de la sesión experimental. Además de lo descrito en la Figura 2, se observa que la rata se dirigió con mayor frecuencia a un solo dispensador en gran parte de la sesión cuando el valor de p(OET) fue igual a 1.0, ya sea que este tuviera un valor de p(OEE) = 1.0 o menor.

Nota. Desplazamiento de la rata a través del espacio de la cámara experimental a lo largo del tiempo de la última sesión de cada condición experimental.
En la Figura 4, se muestra la proximidad-lejanía a cada uno de los dispensadores a través de cada una de las últimas sesiones de cada fase experimental. En cada panel, se incluyen como series de datos las distancias respecto a cada dispensador. Esta figura muestra que la rata se encontraba más cerca de un solo dispensador en las condiciones en que p(OET) fue igual a 1.0, que en aquellas con un valor de 0.5.

Nota. Distancia entre la rata y cada uno de los dispensadores a lo largo del tiempo de la última sesión de cada condición experimental.
En la Figura 5, se muestra el vigor representado como la distancia recorrida acumulada a lo largo de la última sesión de cada fase experimental. En cada panel, se incluye la distancia total recorrida por sesión, así como la velocidad efectiva (distancia recorrida sobre el tiempo en que hubo movimiento). Se encontró que tanto la distancia recorrida durante la sesión como las velocidades efectivas aumentaron en tanto los valores de p(OET) fueron menores que 1.0. Además, se observó que, cuando p(OEE) fue igual a 1.0, la pendiente fue más plana que cuando sus valores se distribuyeron en las ubicaciones restantes, aunque más notablemente cuando también varió el valor de p(OET). Esto último indica que la rata recorrió una distancia mayor cuando varió p(OEE).

Nota. Curva acumulativa de la distancia recorrida momento a momento a lo largo del tiempo de la última sesión de cada condición experimental. En cada panel se incluye la distancia total recorrida (DT) y la velocidad neta (VN) por sesión.
En la Figura 6, se muestra la preferencia como el tiempo acumulado en cada una de las áreas en las que se subdivide el espacio experimental. Se encontró que, cuando p(OEE) tuvo un valor de 1.0, la rata permaneció en mayor medida en la zona cercana al dispensador relacionado con la entrega del agua, mientras que cuando sus valores fueron menores a 1.0, la rata permaneció la mayor cantidad de tiempo en una zona relacionada a un dispensador que no necesariamente fue el asignado con el de mayor valor de probabilidad. En cuanto a la manipulación sobre p(OET), las diferencias sobre el tiempo de permanencia no fueron claras.

Nota. Tiempo acumulado en cada una de 100 subdivisiones del piso de la cámara experimental en la última sesión de cada condición experimental.
En la Figura 7, se muestra la variación representada como la distribución de las diferencias entre la distancia recorrida por la rata en cada ciclo de entrega de agua y la ruta más corta entre la posición inicial de la rata y la ubicación del bebedero relevante. Se encontró que, en tanto la probabilidad de ocurrencia del evento disminuyó, la variación en el desplazamiento de la rata aumentó.

Nota. Diferencia absoluta entre la ruta seguida en cada ciclo de entrega de agua y la trayectoria más corta desde la posición de la rata al inicio del ciclo de la última sesión de cada condición experimental.
En la Figura 8, se muestra la persistencia como la distribución de la frecuencia de re-ingresos a cada bebedero durante los periodos en los que no hubo disponibilidad de agua. Se encontró que hubo mayor persistencia cuando la probabilidad de ocurrencia en espacio y tiempo fue igual a 1 que cuando la probabilidad fue menor.

Nota. Número de re-ingresos a cada dispensador después de haber consumido el agua que entregó en cada ciclo de la última sesión de cada condición experimental.
El propósito del presente trabajo fue ilustrar la utilidad del lenguaje R para el análisis y representación de propiedades continuas del comportamiento, concretamente, basados en la propuesta del uso de medidas molares para el estudio de la conducta (Ribes-Iñesta, 2007, 2018). En ese sentido, consideramos que el conjunto de funciones (las incluidas y las creadas en .) que se describen en este trabajo son útiles por varias razones. En primer lugar, requieren de un dominio mínimo del conocimiento del lenguaje R. Esencialmente basta con saber la manera en la que se ejecuta un archivo en su interfaz e importar las funciones que se describen. En segundo lugar, el diseño de las funciones permite una aplicabilidad a cualquier conjunto de datos sobre desplazamiento en el espacio, ya sea para una sola sesión (o segmento de ésta), o incluso es posible aplicar alguna función particular a todo un conjunto de sesiones con una simple línea de comandos. En tercer lugar, consideramos que el código empleado se mantiene lo más simple posible, al tiempo que los resultados que arroja son amplios y difíciles de generar por algún otro software de uso común en el área de investigación conductual (e.g., Microsoft Excel). En cuarto lugar, el código que aquí se describe puede ser fácilmente modificado para desarrollar variantes de formato de presentación y, si fuera necesario, desarrollar otras funciones de interés para el usuario.
Cabe destacar que R cuenta con muchas otras funciones, algunas relacionadas con el interés particular de los autores sobre las dimensiones continuas del comportamiento, así como para realizar análisis cuantitativos de diferente índole. A la fecha, la literatura (artículos, libros, notas técnicas) sobre el uso de . es extensa y no es objeto del presente trabajo hacer ninguna revisión ni recomendación particular, basta con recomendar como acercamiento inicial la visita a la página electrónica del Proyecto R (https://www.r-project.org/).
Se debe tener en cuenta que es posible realizar análisis y representaciones como los que aquí se describen mediante programas o lenguajes diferentes a .. El interesado en este tipo de análisis podría emplear cualquier alternativa probablemente con la misma probabilidad de éxito. No obstante, dos ventajas de emplear un código diseñado en un software de código abierto como . (e.g., Python) son que, por un lado, no se tiene que pagar un alto costo por una licencia (por ejemplo, la licencia anual de Matlab tiene un costo de 860 dólares, más el costo de cada Toolbox que sea requerida) y, por otro lado, es posible modificar a discreción del usuario las funciones empleadas para sus análisis, mientras que, en programas de autor, se debe emplear el formato prestablecido (por ejemplo, Ethovision).
Finalmente, el código que se presentó y ejemplificó en el presente trabajo también podría ser útil para todos aquellos interesados en el análisis del desplazamiento de los organismos, independientemente de que se comparta o no una visión como la planteada por Ribes-Iñesta (2007, 2018) respecto a las medidas molares. Dado que, como dato, solamente se requiere el registro en coordenadas X-Y a través del tiempo, cualquier usuario independiente del interés teórico o conceptual podría hacer uso del código para generar este tipo de representaciones o derivar algunas similares.
Dirigir correspondencia a: Jorge A. Ruiz. Centro de Estudios e Investigaciones en Conocimiento y Aprendizaje Humano. Agustín Melgar s/n esquina Araucarias. Col.
Revolución. Xalapa, Veracruz. C.P. 91100. E-mail: jorruiz@uv.mx

Nota. Son necesarias, al menos, una columna que corresponde a la segmentación del paso del tiempo en frames de determinada duración y dos columnas por sesión, las cuales corresponden a la posición del organismo en X y en Y, respectivamente, en cada frame.



Nota. Desplazamiento de la rata a través del espacio de la cámara experimental en la última sesión de cada condición experimental.

Nota. Desplazamiento de la rata a través del espacio de la cámara experimental a lo largo del tiempo de la última sesión de cada condición experimental.

Nota. Distancia entre la rata y cada uno de los dispensadores a lo largo del tiempo de la última sesión de cada condición experimental.

Nota. Curva acumulativa de la distancia recorrida momento a momento a lo largo del tiempo de la última sesión de cada condición experimental. En cada panel se incluye la distancia total recorrida (DT) y la velocidad neta (VN) por sesión.

Nota. Tiempo acumulado en cada una de 100 subdivisiones del piso de la cámara experimental en la última sesión de cada condición experimental.

Nota. Diferencia absoluta entre la ruta seguida en cada ciclo de entrega de agua y la trayectoria más corta desde la posición de la rata al inicio del ciclo de la última sesión de cada condición experimental.

Nota. Número de re-ingresos a cada dispensador después de haber consumido el agua que entregó en cada ciclo de la última sesión de cada condición experimental.