UNIVERSIDAD DE COSTA RICA SISTEMA DE ESTUDIOS DE POSGRADO EVALUACIÓN DE LA DIMENSIONALIDAD DE PRUEBAS ESTANDARIZADAS MEDIANTE EL USO DEL MODELO BIFACTOR DE LA TEORÍA DE RESPUESTA AL ÍTEM MULTIDIMENSIONAL Trabajo final de investigación aplicada sometido a la consideración de la Comisión del Programa de Estudios de Posgrado en Estadística para optar al grado y título de Maestría Profesional en Estadística ESTEBAN GEOVANNY NAVARRO MURILLO Ciudad Universitaria Rodrigo Facio, Costa Rica 2022 ii Dedicatoria Le dedico este trabajo a mis padres, Geovanni Navarro Solano y Blanca Rosa Murillo Delgado, que me han apoyado y guiado en todo el proceso de mi formación personal y profesional. Agradecimientos Agradezco a todos los miembros de mi familia que han estado siempre de forma incondicional apoyándome en todas las adversidades a las que me he enfrentado. También le agradezco al profesor Guanner Rojas que me ha guiado en el buen desarrollo de este estudio. iii Hoja de aprobación “Este trabajo final de investigación aplicada fue aceptado por la Comisión del Programa de Estudios de Posgrado en Estadística de la Universidad de Costa Rica, como requisito parcial para optar al grado y título de Maestría Profesional en Estadística.” ____________________________________________ Dr. Guaner Rojas Rojas Profesor Guía ____________________________________________ Dra. Eiliana Montero Rojas Lectora ____________________________________________ M.Sc. Karol Jiménez Alfaro Lectora ____________________________________________ Esteban Geovanny Navarro Murillo Sustentante iv Índice Dedicatoria .......................................................................................................................................... ii Agradecimientos ................................................................................................................................. ii Hoja de aprobación .............................................................................................................................iii Resumen .............................................................................................................................................. v Lista de cuadros y tablas. .................................................................................................................... vi Lista de figuras. ................................................................................................................................... vi Lista de gráficos. .................................................................................................................................. vi 1. Introducción .................................................................................................................................... 1 1.1 Justificación ............................................................................................................................... 1 1.2 Objetivo del estudio .................................................................................................................. 2 1.3 Objetivos específicos ................................................................................................................. 2 2 Marco teórico ................................................................................................................................... 3 2.1 Teoría clásica de los test ........................................................................................................... 4 2.1.1 Cuestionario o test ............................................................................................................. 4 2.1.2 Dimensionalidad ................................................................................................................. 5 2.1.3 Análisis factorial exploratorio ............................................................................................ 6 2.1.4 Limitaciones de la TCT ........................................................................................................ 7 2.2 Teoría de Respuesta al Ítem (TRI) ............................................................................................. 8 2.2.1 Modelo logístico de dos parámetros ................................................................................. 8 2.2.2 Modelo Bifactor.................................................................................................................. 9 3. Metodología .................................................................................................................................. 11 4. Resultados ..................................................................................................................................... 16 4.1 Aplicación del modelo bifactor a datos simulados bajo una estructura unidimensional ....... 16 4.2 Aplicación del modelo bifactor a datos simulados bajo una estructura multidimensional .... 19 4.2.1 Primer escenario: Efecto del modelo bifactor al ser ajustado a datos creados suponiendo un valor mayor para el parámetro del factor general ........................................... 19 4.2.2 Segundo escenario: Efecto del modelo bifactor al ser ajustado a datos creados suponiendo un valor menor para el parámetro del factor general .......................................... 22 5. Discusión ....................................................................................................................................... 24 6. Referencias .................................................................................................................................... 26 7. Anexos ........................................................................................................................................... 29 7.1 Simulación del modelo bifactor en datos bajo una estructura de dos parámetros ............... 29 7.2 Simulación del modelo bifactor en datos bajo una estructura de multinivel ......................... 38 v Resumen La presente investigación pretende visualizar y estudiar el comportamiento del modelo bifactor de la Teoría de Respuesta al Ítem (TRI) multidimensional, al ser aplicado a datos con diferentes estructuras dimensionales. Para esto, se realizó un estudio de simulación de escenarios, en el cual se obtuvo el valor de la raíz del error cuadrático medio, obtenido al usar el modelo bifactor en datos bajo diferentes estructuras dimensionales; los escenarios estudiados comprenden estructuras unidimensionales o multidimensionales que alteran el valor de los parámetros de generación de los valores simulados. El modelo bifactor resultó ser un método de análisis efectivo para la identificación de estructuras unidimensionales en los datos de estudio; asimismo, se identificó que este mejora su precisión al aumentar el tamaño de la muestra en los estudios. En el caso multidimensional, con los bajos valores obtenidos de la raíz del error cuadrático medio en las simulaciones correspondientes a los escenarios se evidencia que el modelo bifactor es un método adecuado para la identificación de subdimensiones presentes en los datos. Abstract The present investigation aims to visualize and study the behavior of the Bifactor model in the multidimensional Item Response Theory (IRT) when is applied to data with different dimensional structures. For this, a simulation study of scenarios was carried out from which the value of the root of the mean square error obtained by using the Bifactor model was obtained in data under different dimensional structures, the scenarios comprise one-dimensional structures and multidimensional structures altering the value of the generation parameters of the simulated data. The Bifactor model turned out to be an effective analysis method for the identification of one-dimensional structures in the study data, also identifying that it improves its precision by increasing the sample size in the studies. In the multi-dimensional case, the low values obtained by the root mean square error in the simulations corresponding to these scenarios, is evidence that the Bifactor model is an adequate method for the identification of subdimensions present in the data. vi Lista de cuadros y tablas. Cuadro 1. Ejemplo simbólico de la estructura de una base de datos unidimensional ....................... 7 Cuadro 2. Mapa de control de parámetros de la simulación para datos con una estructura unidimensional .................................................................................................................................. 11 Cuadro 3. Mapa de control de parámetros de la simulación para datos con una estructura multidimensional .............................................................................................................................. 12 Lista de figuras. Figura 1 Estructura dimensional de factores y subfactores del modelo bifactor ............................. 10 Figura 2. RECMP de los parámetros de la aplicación del modelo bifactor en datos con estructura unidimensional bajo el escenario con los parámetros α=1.5 y β= 0.7. ............................................. 17 Figura 3. RECMP de los parámetros de la aplicación del modelo bifactor en datos con estructura unidimensional bajo el escenario con los parámetros α=0.7 y β= 1.5. ............................................. 18 Figura 4 RECMP de los parámetros de los subfactores de la aplicación del modelo bifactor en una estructura multidimensional para el escenario ag=1.5, a1=0.3 y a2=0.5. ........................................ 21 Figura 5 RECMP de los parámetros de los subfactores de la aplicación del modelo bifactor en una estructura multidimensional para el escenario ag=1, a1=1.7 y a2=3. .............................................. 23 Lista de gráficos. Gráfico 1. RECMP del efecto general de la aplicación del modelo bifactor en una estructura multidimensional (ag=1.5, a1=0.3 y a2=0.5) ..................................................................................... 20 Gráfico 2. RECMP del efecto general de la aplicación del modelo bifactor cuando el efecto general es menor al de los subfactores (ag=1, a1=1.7 y a2=3) ...................................................................... 22 file:///C:/Users/enavarrom/Desktop/Trabajo%20de%20graduación%20Esteban%20Navarro%20Murillo.docx%23_Toc104814545 1 1. Introducción 1.1 Justificación En ocasiones, se construyen indicadores y se generan puntuaciones de pruebas o cuestionarios asumiendo una única dimensión; sin embargo, esto se realiza sin tomar en cuenta los posibles subdimensiones presentes en estos. Comúnmente, en la construcción de indicadores y cuestionarios se analiza la unidimensionalidad de los ítems solamente mediante el análisis de factorial, el cual los utiliza como indicadores para la identificación de los factores en los datos, lo que podría ser metodológicamente incorrecto. El análisis de factores se emplea como uno de los métodos para la evaluación de la unidimensionalidad en la construcción de índice y escalas. Esto se realiza mediante la magnitud del primer valor propio obtenido al factorizar la matriz de correlación de los ítems, o bien, al evaluar la varianza total explicada por el primer factor obtenido en el análisis (Piera, 1996). Existen más criterios de evaluación de unidimensionalidad a través del uso del análisis de factores, como el criterio de inspección visual del gráfico de sedimentación, entre otros que se utilizan en conjunto, para lograr un consenso en cuanto al cumplimiento del supuesto de unidimensionalidad de los ítems. En la práctica, el análisis factorial puede detectar la presencia de subdimensiones (subescalas). Cada una de estas debería analizarse por separado, mientras que el modelo multidimensional permite realizar un análisis total de las dimensiones generales y específicas. Al relacionar la aplicación del Análisis de Factores Exploratorio (AFE) con el modelo bifactor de la Teoría de Respuesta al Ítem (TRI), se debe destacar que este enfoca su análisis en los indicadores formados por un conjunto de ítems; mientras que el bifactor utiliza los ítems como indicadores que pueden llegar a agruparse en subconjuntos dimensionales. Sin embargo, para realizar este análisis, se debe considerar en qué condiciones un modelo multidimensional se desempeña o ajusta a una estructura en los datos de un test. El modelo bifactor también puede utilizarse como una metodología de evaluación de la unidimensionalidad de los datos, ya que la estructura bifactor puede medir la magnitud de la desviación por unidimensionalidad, al comparar las cargas factoriales del modelo bajo una estructura unidimensional con las cargas factoriales obtenidas del factor general correspondiente 2 al bifactor (Lou y Al-Harbi, 2016). Se obtiene así un método aún más robusto y con un enfoque desde la TRI, a partir del cual se puede obtener una estimación de los parámetros de dificultad y discriminación de los ítems. El modelo bifactor se ha utilizado para evaluar la habilidad y comprensión de lenguaje en cuanto a escucha, habla y escritura, mediante un solo análisis. Según el estudio realizado por Dun y Mcgrey (2020), el modelo bifactor es una metodología en la cual se logran analizar los subconstructos relacionados con la habilidad de desempeñarse en un segundo idioma. Dun y Mcgrey (2020) concluyen con que los patrones y magnitudes de las cargas factoriales que no pueden ser explicadas por el factor general suministran información muy valiosa para evaluar la dimensionalidad de los ítems y también para la agrupación en los factores de los ítems. La finalidad de este estudio consiste en encontrar las situaciones en las cuales el modelo Bifactor de la Teoría de Respuesta al Ítem (TRI) puede identificar las estructuras dimensionales en los ítems de un test. Este modelo ha sido utilizado en diversos campos en los que la medición de alguna característica mediante la construcción de un puntaje ha sido requerida. 1.2 Objetivo del estudio Evaluar la estructura dimensional de los test en los que se sospecha la presencia de subdimensiones o subescalas, mediante la aplicación del modelo Bifactor de la Teoría de Respuesta al Ítem. 1.3 Objetivos específicos • Comparar modelos multidimensionales y unidimensionales de la TRI en la evaluación de la estructura dimensional de un test. • Generar un proceso sistemático de análisis de alternativas de respuesta con el modelo Bifactor en una prueba estandarizada. 3 2 Marco teórico La psicometría es considerada la rama de la psicología encargada del análisis de los fenómenos psicológicos en las personas, la cual mediante la cuantificación de atributos en la construcción de un test logra analizar el comportamiento de la unidad de estudio frente al fenómeno. Esta también se entiende como la especialidad de la psicología que estudia los procesos de medición (Martínez, Hernández & Hernández, 2006) por lo que se ocupa de desarrollar los fundamentos para la construcción y administración de los test. Al ser una disciplina muy utilizada en diversos campos, por ejemplo, en el área de la educación, economía, estadística y en la misma psicología, la definición de la psicometría suele cambiar dependiendo del uso. Por tanto, una definición más aceptada de esta especialidad radica en que, la psicometría es una rama de la psicología que, mediante el sustento teórico y la aplicación de metodologías enfocadas a la administración de un test, se ocupa de la estimación de los fenómenos psicológicos, con el objetivo de realizar descripciones, clasificaciones, diagnósticos, explicaciones o predicciones que permitan orientar una acción o tomar decisiones sobre el comportamiento de las personas, en el ejercicio profesional de la psicología (Meneses et al., 2013, p. 38). Comúnmente, el estudio de las características psicológicas, o bien, la medición de una aptitud, se realiza a través de la aplicación de una prueba, cuestionario o un test. Los resultados obtenidos de estas herramientas han sido analizados bajo diferentes metodologías a lo largo del tiempo, entre estas predominan las basadas en la Teoría Clásica de los Test (TCT) y las basadas en la teoría de respuesta al Ítem (TRI). Una parte esencial de la psicometría radica en la medición, pues esta es la base de cualquier estudio de análisis temático. Este término clásicamente se define como la asignación numérica a los objetos o eventos de acuerdo con la regla (Stevens, 1946). Sin embargo, esta definición se puede considerar un poco desactualizada, pues la medición no solo contempla la enumeración de objetos sino también la práctica de metodologías de codificación, clasificación, categorización y captura de la información de los objetos de estudio. 4 En el campo de la psicología, la medición constituye una herramienta que le permite al psicólogo cuantificar características humanas y objetivizar procesos de evaluación (Malo Salvatierra, 2008), por lo que este proceso se puede considerar como el primer paso en la guía de cualquier estudio, pues, posterior a este, se realizan las diferentes metodologías pertenecientes a las teorías de información de los tests que facilitaran la recolección y análisis de los datos por parte del investigador. Esta se puede definir como la cuantificación de los objetos u acciones de estudio con el fin de analizar su comportamiento bajo algún entorno. 2.1 Teoría clásica de los test La teoría clásica de los test se crea a partir de la necesidad de evaluar, estimar y verificar su fiabilidad y validez (Muniz, 2010). Nace en la primera mitad del siglo XX, producto de diferentes publicaciones realizadas por el psicólogo Charles Spearman (1904, 1907, 1914). En estas, propone el modelo clásico de medición lineal de puntuaciones, que en un futuro se llamará como la teoría clásica de los test. Que consiste en que la puntuación empírica (𝑋) de un sujeto se descompone por dos componentes de forma aditiva, la puntuación verdadera del sujeto (𝑉) y un error aleatorio asociado (𝑒), donde se establece como objetivo principal analizar la fiabilidad de la medida, con tal estimar y minimizar este error. 𝑋 = 𝑉 + 𝑒 (1) Subsecuentemente, diferentes autores, con base en el modelo clásico propuesto por Spearman, fueron estableciendo diferentes metodologías de análisis de los test. 2.1.1 Cuestionario o test Esta se refiere a la herramienta de recolección de información de los usuarios empleada en los estudios, puede contener escalas y preguntas abiertas o cerradas de una o más temáticas. Son catalogados como instrumentos de medida, mediante los cuales el analista lleva a cabo inferencias, con las que puede tomar decisiones sobre los aspectos evaluados para la población objetivo del test (Muniz, 2010). El cuestionario o test es una herramienta básica en el campo de la psicometría, pues beneficia la captura de información que no puede ser observable; por ende, muchas de las temáticas sociales suelen ser estudiadas apoyándose en el uso de algún tipo de cuestionario, prueba o test. 5 2.1.2 Dimensionalidad La dimensionalidad de los test se asume como el conjunto de rasgos responsables de la actuación del sujeto o unidad de estudio frente al test. Lo usual en los diferentes análisis de los test, tanto en la TCT como en la TRI, es asumir el supuesto de unidimensionalidad, el cual implica que todos los ítems del constructo brinden información de una única aptitud o rasgo es suficiente para explicar los resultados de los sujetos y las relaciones entre los ítems (Martínez Arias, Hernández Lloreda & Hernández Lloreda, 2006). Sin embargo, la necesidad de estudiar fenómenos sociales con mayor complejidad, ha propiciado la necesidad de asumir la existencia de más de un rasgo para explicar las respuestas de un test. Esto último es mayormente conocido como la muldimensionalidad de los test y es la razón principal de la confección y uso de los diferentes modelos multidimensionales, al igual que el modelo Bifactor, en el cual se basa este proyecto. Los instrumentos psicométricos se construyen con el fin de medir y analizar las aptitudes de la población mediante una prueba estandarizada. Teóricamente, estas pruebas suelen realizarse mediante la selección y confección de ítems que midan al menos un constructo, actitud o rasgo general (a lo que llamaremos dimensión o factor general). Sin embargo, en la práctica se ha presentado que la presencia de más de un subfactor o subdimensión creado a partir de un conjunto de ítems dentro del instrumento de medición puede afectar el análisis del factor general, o bien, su estudio puede llegar a brindar más información de la población con respecto su aptitud frente a algún suceso. Las metodologías basadas en la TCT enfocan sus análisis en la construcción de indicadores unidimensionales (el cual es uno de los supuestos en la mayoría de los casos), por lo que la información producida por los subfactores se llega a perder en su aplicación. 6 2.1.3 Análisis factorial exploratorio En la actualidad, existen metodologías de medición que contemplan la unidimensionalidad como uno de sus supuestos; por eso, en la práctica se observa que, frecuentemente, en los análisis de algún indicador obtenido a partir de un test o cuestionario, su unidimensionalidad es probada mediante el análisis de factores exploratorio (Thompson, 2004), pues el objetivo principal de este método radica en la búsqueda de una estructura de dimensiones o constructos latentes, a partir de las correlaciones entre las variables observadas. Generalmente, este análisis se realiza cuando se busca identificar un solo factor o dimensión que logre explicar la variabilidad conjunta de las variables en una única dimensión y así probar el supuesto de unidimensionalidad presente en la mayoría de las metodologías pertenecientes a la TCT. El problema de llevar a cabo este tipo de análisis radica en que al demostrar la existencia de un factor general y realizar el análisis, se está perdiendo toda la información correspondiente a las varianzas comunes entre un grupo de variables que sí se están representando en alguno de los otros factores, o bien, estas se encuentran dentro de un subfactor del factor general. Existen diferentes métodos de selección de la cantidad de factores en un AFE presentes en un conjunto de datos. No obstante, visualizar qué ítem contribuye con la varianza común de un factor se lleva a cabo mediante las cargas factoriales de los ítems para cada factor. Esto se realiza al observar qué tan cercano es el valor de la carga factorial del ítem dentro del factor. En el cuadro 1 se presenta un ejemplo simbólico de lo que ocurre cuando se le aplica un análisis de factores a un conjunto de datos unidimensional. La letra “x” representa cargas factoriales dentro del rango de 0.7 a 1, y la “o” representa cargas factoriales en el rango de - 1 a - 0.7, esto tomando que ambas letras representan cargas factoriales altas para el total de la varianza explicada por el modelo AFE . Con la explicación anterior del ejemplo se puede observar cómo el factor 1 puede explicar la totalidad de la varianza en cada uno de los ítems. Sin embargo, se debe resaltar que los factores F2, F3 y F4 poseen valores de cargas factoriales importantes, por lo cual, en este ejemplo, se puede estar en presencia de un conjunto de datos con una estructura multidimensional o datos con una estructura dimensional jerárquica. 7 Cuadro 1. Ejemplo simbólico de la estructura de una base de datos unidimensional Ítems Dimensiones F1 F2 F3 F4 F5 F6 Ítem1 x O O x Ítem2 x O O x Ítem3 x x O Ítem4 x x O Ítem5 O x Ítem 6 x O x 2.1.4 Limitaciones de la TCT Como se expone en Gómez y Hidalgo (2003), las metodologías de medición pertenecientes a la TCT poseen ocasionalidades que suelen sesgar o limitar la interpretabilidad de los resultados del estudio al comparar su alcance con las metodologías expuestas en la TRI. En este mismo artículo se exponen que la TCT se limita en: 1. La definición de tests paralelos es muy restrictiva. 2. Homocedasticidad de los errores de medida. 3. Dependencia muestral de las propiedades psicométricas de los tests. 4. Dependencia muestral de las características de los ítems. 5. Dependencia de X (puntuación observada) de la longitud del test (Gómez & Hidalgo, 2003, p. 19) Dado a estas circunstancias, las metodologías pertenecientes a la TRI representan una solución a escenarios donde los datos a analizar poseen un grado de complejidad mayor, o bien, cuando el objetivo del estudio pretende indagar más en el comportamiento de los ítems que en el resultado final del indicador obtenido de la aplicación de los tests. 8 2.2 Teoría de Respuesta al Ítem (TRI) Dado el creciente auge del análisis de nuevos constructos y enfoques de análisis psicométricos de información, se propició la creación de diferentes metodologías como complemento de las expuestas en la TCT. En la TRI, los modelos se enfocan en la estimación de parámetros que permitan evaluar la calidad técnica de cada uno de los ítems o reactivos por separado (comportamiento modelado mediante una función matemática denominada curva característica del ítem CCI) y del instrumento como un todo y, a la vez, estimar el nivel que cada examinado u objeto de estudio presenta en el constructo de interés (Montero, 2000). El foco de atención de este estudio se centraliza en la aplicación del modelo bifactor en una estructura multidimensional; sin embargo, debido a la propia definición del modelo es necesario el uso de algún otro para el cálculo de sus estimaciones. Para este, análisis se decidió optar por el modelo logístico de dos parámetros como el modelo de base y ajustado para el cálculo de las probabilidades del modelo bifactor. 2.2.1 Modelo logístico de dos parámetros Este modelo de análisis perteneciente a la TRI asume que la CCI se estima por la función logística y contempla dos parámetros de los ítems, el índice de dificultad b y el índice de discriminación a. La fórmula de obtención de probabilidad del modelo logístico de dos parámetros utilizada es la siguiente. 𝑃𝑖(𝑢𝑖 = 1|θj, 𝑎i, 𝑏i) = 𝑒𝑎𝑖(θj−𝑏𝑖) 1 + 𝑒𝑎𝑖(θj−𝑏𝑖) (2) Donde: i es el ítem i dentro del cuestionario j es la persona j θj es la habilidad de la persona j 𝑎i es la discriminación del ítem i 𝑏i es la dificultad del ítem i Debido a la facilidad de uso del modelo logístico de dos parámetros y su aporte de información analítica en el estudio con el uso de los parámetros de dificultad y discriminación de los ítems y la habilidad del sujeto, este se tomó como modelo base para la aplicación el modelo bifactor, al cual 9 se le aplicó una adaptación con la estructura multidimensional bifactor para realizar la simulación en el cumplimiento del objetivo del estudio. 2.2.2 Modelo Bifactor Originalmente este modelo fue descrito en la década de 1930 1940 en los trabajos de Holzinger, Harman y Swineford; sin embargo, el uso de este modelo se vio opacado por las numerosas aplicaciones que brindaron las rotaciones en los modelos factoriales en la época. Este modelo empezó a tomar relevancia a partir de fechas más recientes, en donde se ha redescubierto este como una alternativa de metodología para las estructuras multidimensionales en la TRI y en los modelos de ecuaciones estructurales (Reise, 2012). El modelo estructural del bifactor especifica la covarianza entre un conjunto de respuestas a ítems que pueden ser explicadas por un factor general, el cual refleja la varianza común entre la totalidad de los elementos de la escala y los subfactores del grupo que reflejan una varianza común adicional entre los grupos de ítems (Reise, 2012). Este modelo es mayormente utilizado cuando se sospecha de la presencia de subdimensiones o subconstructos que podrían aportar más información al análisis a la escala de un test. Como se señaló en una apartado anterior la metodología más utilizada para la identificación de dimensiones de los constructos es el AFE; sin embargo, en las últimas tres décadas se ha propiciado el uso y desarrollo de modelos factoriales para el análisis de información obtenida de ítems categóricos ordenados (Reise, 2012). En la figura 1, se presenta la estructura dimensional teórica de un modelo bifactor con un factor general (FG) y dos subfactores (f1 y f2). En esta se evidencia que todos los ítems del test aportan información al constructo general. Sin embargo, debido a la correlación presente en algunos ítems estos suelen poder agruparse en subfactores que evalúen un subconstructo de interés para el objetivo del análisis, o bien, en el caso de los modelos bifactor confirmatorios las agrupaciones de ítems dentro de los subfactores o subdimensiones se realizan mediante el respaldo teórico necesario (Reise, 2012). 10 La fórmula general de estimación del modelo bifactor recae en: 𝐸(𝑥𝑖 ∗|𝜃1 …𝜃𝑝) = 𝑥∗ = 𝜆𝑖𝐺𝐸𝑁𝜃𝐺𝐸𝑁 + 𝜆𝑖𝑓𝑎𝑐1𝜃𝑓𝑎𝑐1+𝜆𝑖𝑓𝑎𝑐2𝜃𝑓𝑎𝑐2 (3) Donde: 𝜆i: Corresponde a los parámetros de discriminación de los factores del modelo, donde GEN es el factor general, fac1 el subfactor 1 y fac2 el subfactor 2. 𝜃𝑖: Corresponde a los valores de discriminación de los factores de puntuación de latentes de las personas en cada factor. 𝑝: Tamaño de la muestra. Sin embargo, para este estudio, se utilizó la adaptación del modelo bifactor con el modelo logístico de dos parámetros expuesto anteriormente en la fórmula (2). Por lo tanto, la fórmula utilizada se expresa de la siguiente forma: 𝑃𝑖(𝑢𝑖 = 1|𝜆i, 𝜃𝑖) = 𝑒𝜆𝑖𝐺𝐸𝑁𝜃𝑖𝐺𝐸𝑁+𝜆𝑖𝑓𝑎𝑐1𝜃𝑖𝑓𝑎𝑐1+𝜆𝑖𝑓𝑎𝑐2𝜃𝑖𝑓𝑎𝑐2 1 + 𝑒𝜆𝑖𝐺𝐸𝑁𝜃𝑖𝐺𝐸𝑁+𝜆𝑖𝑓𝑎𝑐1𝜃𝑖𝑓𝑎𝑐1+𝜆𝑖𝑓𝑎𝑐2𝜃𝑖𝑓𝑎𝑐2 (4) Donde: 𝜆i: Corresponde a los parámetros de los factores del modelo, donde GEN es el factor general, fac1 el subfactor 1 y fac2 el subfactor 2. 𝜃𝑖: Corresponde a los valores de discriminación de los factores de puntuación de latentes de las personas en cada factor. FG Ítem 1 Ítem 2 Ítem 3 Ítem 6 Ítem 8 Ítem 4 Ítem 5 Ítem 7 f2 f1 Figura 1 Estructura dimensional de factores y subfactores del modelo bifactor 11 3. Metodología Como se ha mencionado, este estudio pretende evaluar la veracidad de la aplicación del modelo bifactor para identificar la presencia de subfactores o subdimensiones que los modelos y análisis pertenecientes a la TCT no pueden identificar, debido a su propia estructura y visión de estudio de la información proveniente de un instrumento de medición. Para abordar este objetivo, se decidió realizar un estudio mediante simulaciones de escenarios para así medir el valor de la raíz del error cuadrático medio de cada una de las réplicas de esta. Con este valor se pretende obtener una visión de la efectividad del modelo bifactor para la identificación de la estructura de los datos a analizar en los test. Por esto, se aplicó la simulación a datos pertenecientes a una estructura unidimensional y a datos pertenecientes a una estructura multidimensional. El enfoque general de las simulaciones realizadas corresponde a la aplicación de 100 réplicas a cada uno de los escenarios a evaluar. Estos escenarios fueron elegidos con el fin de verificar la ejecución, ajuste y estimación de parámetros en la identificación de las estructuras dimensionales al aplicar el modelo bifactor alterando el tamaño de muestra, la cantidad de ítems del cuestionario y los parámetros correspondientes del modelo. En los cuadros 2 y 3 se presenta, de forma detallada, cada uno de los escenarios evaluados en el ejercicio de las simulaciones. Cuadro 2. Mapa de control de parámetros de la simulación para datos con una estructura unidimensional Escenario Tamaños de muestra Cantidad de ítems Valores de parámetros Primer escenario n = 500 i = 15 Dificultad = 1.5 n = 1000 i = 30 Discriminación = 0.7 n = 2000 i = 60 Segundo escenario n = 500 i = 15 Dificultad = 0.7 n = 1000 i = 30 Discriminación= 1.5 n = 2000 i = 60 Los parámetros para la estructura unidimensional fueron elegidos de forma que simulen un test de conocimientos. El parámetro de dificultad puede oscilar de menos infinito a infinito; sin embargo, los parámetros se estiman con mayor precisión en un intervalo de -3 a 3, mientras que el poder de 12 discriminación del modelo debe ser estrictamente positivo (Attorresi et al., 2009). Por tanto, se eligió los valores presentados en el cuadro 2, ya que estos representan ítems de moderada a alta dificultad y con una discriminación adecuada. Del cuadro 2 se puede tomar la siguiente expresión como ejemplo del cálculo del primer escenario con la aplicación de la fórmula (2), donde n= 500, i=15, dificultad=1.5 y discriminación= 0.7. Tomando la habilidad de la persona con 0.4 𝑃𝑖(𝑢𝑖 = 1|θ = 0.4, b = 1.5, a = 0.7) = 𝑒1.5(0.4−0.7) 1+𝑒1.5(0.4−0.7) =0.38 Por lo tanto para estos parámetros al aplicarlos en la forma se obtiene una probabilidad 0.38 de que una persona con una habilidad de 0.4 acierte el ítem i. Según lo expresado para el cuadro 3, los valores utilizados para la simulación de escenarios para la estructura multidimensional corresponden a parámetros de la discriminación de los ítems para un factor general y dos subfactores latentes. Los valores se seleccionaron bajo la misma lógica que los escenarios unidimensionales. También cabe destacar que estos valores se tomaron como referencia del ejemplo expuesto por Reese (2012), en el cual los valores de los parámetros de discriminación resultantes de la aplicación del modelo bifactor oscilan de 0.5 a 3. Cuadro 3. Mapa de control de parámetros de la simulación para datos con una estructura multidimensional Escenario Tamaños de muestra Cantidad de ítems Valores de parámetros Primer escenario n = 500 i = 15 Factor general = 1.5 n = 1000 i = 30 Primer subfactor = 0.3 n = 2000 i = 60 Segundo subfactor = 0.5 Segundo escenario n = 500 i = 15 Factor general = 1 n = 1000 i = 30 Primer subfactor = 1.7 n = 2000 i = 60 Segundo subfactor = 3 *Los valores de los parámetros corresponden a los coeficientes utilizados en la formula del cálculo del modelo bifactor, del cual se podrán obtener las cargas factoriales correspondientes De igual forma, el ejemplo de la generación del primer escenario para la estructura multidimensional representada en el cuadro 3, que evalúa los valores en las fórmulas 3 y 4, donde n = 500, i = 15, factor general = 1.5, primer subfactor = 0.3 y segundo subfactor = 0.5, es el siguiente: 13 𝐸(𝑥𝑖 ∗|𝜃𝑓𝑎𝑐1_1 … 𝜃𝐺𝐸𝑁500, 𝜃𝑓𝑎𝑐11 … 𝜃𝑓𝑎𝑐1 500, 𝜃𝑓𝑎𝑐2 …𝜃500) = 𝑥∗ = 1.5𝑖𝐺𝐸𝑁𝜃𝐺𝐸𝑁 + 0.3𝑖𝑓𝑎𝑐1𝜃𝑓𝑎𝑐1+0.5𝑖𝑓𝑎𝑐2𝜃𝑓𝑎𝑐2 𝑃𝑖(𝑢𝑖 = 1|𝜆𝑖,..,, 𝜃𝑖) = 𝑒1.5𝑖𝐺𝐸𝑁𝜃𝐺𝐸𝑁+0.3𝑖𝑓𝑎𝑐1𝜃𝑓𝑎𝑐1+0.5𝑖𝑓𝑎𝑐2𝜃𝑓𝑎𝑐2 1 + 𝑒1.5𝑖𝐺𝐸𝑁𝜃𝐺𝐸𝑁+0.3𝑖𝑓𝑎𝑐1𝜃𝑓𝑎𝑐1+0.5𝑖𝑓𝑎𝑐2𝜃𝑓𝑎𝑐2 Para la generación de los datos bajo la estructura unidimensional, se utilizó la formula establecida para la obtención de probabilidades del modelo logístico de dos parámetros de la TRI (1), en la cual se estableció como parámetros de discriminación y dificultad los valores presentes en el cuadro 1 y como parámetro de habilidad se utilizaron datos obtenidos de la distribución de probabilidad normal estándar. Se utilizó el mismo valor de discriminación y dificultad para la creación de las probabilidades en todas las diferentes cantidades de ítems utilizados en la simulación; es decir, por ejemplo, el escenario con el cuestionario con 15 ítems fue generado con el mismo valor de discriminación y de dificultad en todos los 15 ítems. Luego, con estas probabilidades se procedió a obtener un vector dicotómico mediante la distribución binomial y así obtener todo lo necesario para la aplicación del modelo bifactor a los datos generados. Para la generación de los datos utilizados para los escenarios correspondientes a estructuras multidimensionales, fue necesaria la creación de una matriz específica detallada con la precisión de la pertenencia de un ítem a su respectivo factor general y su respectivo subfactor. Esta se realizó al asignar un 1 al ítem en la columna respectiva al factor relacionado con el mismo y un 0 cuando este no pertenece al factor. Subsecuentemente, en esta simulación se asignó a todos los ítems de cada escenario al factor general en una primera columna; luego, a la primera mitad de los ítems en una segunda columna para el primer subfactor; por último, la segunda mitad de los ítems se asignó a una tercera columna para el segundo subfactor. Para ejemplificar mejor ese proceso, a continuación se presenta la matriz de estructura utilizada para un cuestionario con 6 ítems y dos subfactores (4). [ 1 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1] (4) 14 Con esta matriz construida, se precedió a incluir todos los valores correspondientes de los parámetros de cada uno de los escenarios dentro de la fórmula de cálculo de probabilidad del modelo del bifactor. Para esta simulación, se procedió a obtener las probabilidades del modelo mediante un lógito de la fórmula de cálculo del modelo bifactor, según la matriz de estructura específica para el escenario. Al igual que en los escenarios de estructura unidimensional, para obtener el vector de respuesta binaria y poder realizar la simulación del modelo bifactor, se procedió a aplicar las probabilidades obtenidas a una distribución binomial de 0 a 1. Para poder realizar conclusiones a partir de las simulaciones realizadas, se optó por obtener el valor de la raíz del error cuadrático medio obtenido en cada modelo, el cual se promedió en todas las réplicas para poder definir un dato único de referencia en todos los escenarios. A este valor promedio se le denominó, para efectos de este estudio, como la Raíz del Error Cuadrático Medio Promedio o RECMP, cuyas fórmulas se expresan a continuación. 𝐸𝐶𝑀 = ∑ (𝐸(𝑦𝑝) − 𝑦𝑝) 𝑝 1 𝑛 (5) Donde: 𝑝: Cantidad de ítems 𝑦𝑝: Valor real de la observación 𝑝 𝑛: Tamaño de muestra A partir de la fórmula 5 se obtiene que: 𝑅𝐸𝐶𝑀𝑃 = ∑ √𝐸𝐶𝑀𝑖 𝑖 1 𝑖 (6) Donde: 𝑖: Cantidad de iteraciones 15 La simulación establecida para el análisis de este documento corresponde a iterar 100 veces la aplicación del modelo bifactor a bases de datos con diferentes estructuras dimensionales, con el fin de demostrar la veracidad del uso del modelo para situaciones de datos unidimensionales y multidimensionales. El trabajo de generación de los datos bajo las diferentes estructuras dimensionales y cada uno de los escenarios de simulación, el desarrollo de la simulación y la graficación de los resultados fueron realizados en el paquete estadístico R en su versión 4.0.2. En específico, el cálculo de todos los modelos bifactor fueron realizados con la librería Mirt del mismo paquete estadístico, desarrollada con el objetivo de analizar los modelos de rasgos latentes bajo estructuras de ítems unidimensionales y multidimensionales (Chalmers, 2012). El código desarrollado para este estudio se presenta en el Anexos 8.1 y 8.2. 16 4. Resultados La simulación realizada tiene como propósito el observar el efecto y veracidad obtenida al aplicar el modelo bifactor de la TRI bajo una estructura de datos unidimensional y multidimensional. Como se explicó anteriormente, este efecto fue analizado mediante el cálculo del promedio de la RECM general y el de cada uno de sus parámetros, producidos en cada iteración del modelo en las diferentes estructuras. 4.1 Aplicación del modelo bifactor a datos simulados bajo una estructura unidimensional Para evaluar el efecto del modelo bifactor en la estructura unidimensional, como se menciona en la metodología, se establecieron dos casos diferentes de análisis, como referencia con el modelo logístico de dos parámetros. En el primero, el valor del parámetro de discriminación es mayor al de dificultad, y en el segundo el parámetro de dificultad es mayor al de discriminación. El gráfico A de la figura 2 muestra el RECM general promedio para el parámetro de la discriminación presente en el modelo de logístico de dos parámetros, cuando el parámetro de discriminación es 1.5 y el de dificultad es de 0.7, según cantidad de ítems y tamaño de muestra obtenido de las 100 iteraciones. El principal resultado de este análisis es que conforme se aumenta el tamaño de muestra y la cantidad de ítems en el estudio, el modelo bifactor produce menor error en el cálculo del parámetro de discriminación. El gráfico B de la figura 2 presenta el resultado del RECM promedio obtenido para el parámetro de dificultad cuando el modelo bifactor es utilizado en datos con una estructura unidimensional y el valor del parámetro de discriminación es mayor al de dificultad. Al igual que el caso anterior, el RECMP para el parámetro de dificultad del modelo se reduce conforme se aumenta el tamaño de muestra y la cantidad de ítems en el cuestionario. Los promedios del RECM obtenidos para ambos parámetros, cuando el parámetro de discriminación es mayor al de dificultad, son menores a 1 y se acercan mucho al cero, por lo que se puede intuir que el modelo bifactor es una alternativa de análisis que provee una precisión bastante aceptable para la estimación de los dos parámetros del modelo logístico de dos parámetros. Esto último debido a que los valores de RECM que este produzca, en la mayoría de los casos, va a ser en promedio cercano a cero, lo cual es evidencia de una buena estimación de los parámetros en cuestión. 17 Figura 2. RECMP de los parámetros de la aplicación del modelo bifactor en datos con estructura unidimensional bajo el escenario con los parámetros α=1.5 y β= 0.7. A) RECMP del efecto de la discriminación B) RECMP del efecto de la dificultad En la Figura 3, gráficos A y B, se muestra el RECMP de los parámetros de discriminación y dificultad, respectivamente, obtenidos en la simulación cuando el parámetro de dificultad posee un valor mayor al parámetro de discriminación. En este escenario, se puede observar que el valor promedio del RECMP obtenido de las repeticiones del modelo disminuye gradualmente con forme se aumenta el tamaño de muestra. Por lo que se evidencia que el aumentar la muestra aumenta la precisión del modelo bifactor para la estimación de los parámetros de discriminación y de dificultad de la estructura del modelo logístico de dos parámetros. Sin embargo, al observar el comportamiento de la RECMP en el escenario en el cual se varía la cantidad de ítems utilizados en el instrumento o cuestionario, se percibe gráficamente que no existe un patrón destacable en la cantidad de ítems utilizados para lograr reducir el valor de la RECMP, tanto para el parámetro de dificultad como para la discriminación de los ítems. Comportamiento principalmente presente en el escenario cuando el tamaño de muestra es de 2000. 18 Figura 3. RECMP de los parámetros de la aplicación del modelo bifactor en datos con estructura unidimensional bajo el escenario con los parámetros α=0.7 y β= 1.5. A) RECMP del efecto de la discriminación B) RECMP del efecto de la dificultad En resumen, el modelo bifactor es capaz de identificar y modelar los parámetros de un test construido bajo una estructura de modelaje logístico de dos parámetros. Este lo realiza mediante la producción de valores de la RECMP relativamente bajos, con tamaños de muestra grandes, que repercuten y mejoran el pronóstico de los parámetros. Sin embargo, incrementar la cantidad de ítems en un cuestionario solo mejora el cálculo de los parámetros a partir del modelo bifactor cuando se conoce que el parámetro de discriminación de los ítems es mayor al parámetro de dificultad. 19 4.2 Aplicación del modelo bifactor a datos simulados bajo una estructura multidimensional Parte del objetivo de este estudio se encuentra evaluar la precisión del modelo bifactor para identificar y pronosticar los parámetros específicos de un test, bajo una estructura multidimensional. Los siguientes resultados corresponden a el cálculo del valor de la RECMP para la simulación de la aplicación del modelo bifactor en datos creados a partir de una estructura multidimensional bifactor. Esta estructura, como se aclara en la metodología, corresponde a un factor o dimensión general, la cual se ve complementada por dos subfactores o subdimensiones. Para realizar una mejor comprobación del uso del modelo bifactor, se plantearon dos escenarios diferentes; el primero cuando el parámetro del factor general es mayor al de los subfactores, y el segundo cuando el parámetro de los subfactores son mayores al parámetro de factor general. En ambos escenarios, se contempló el cambio del valor de la RECMP obtenido por el incremento del tamaño de muestra y la cantidad de ítems utilizados en la aplicación de un instrumento de medición. 4.2.1 Primer escenario: Efecto del modelo bifactor al ser ajustado a datos creados suponiendo un valor mayor para el parámetro del factor general El análisis del comportamiento del modelo bifactor bajo esta estructura de datos fue abordado mediante la interpretación de los resultados presentes en el gráfico 1 y la figura 4. Estos gráficos representan el resultado del promedio de la raíz del error cuadrático medio de la estimación de los parámetros (en este caso, llamados parámetro de discriminación) obtenido de las 100 iteraciones. La estructura de los datos simulados para este escenario corresponde a datos generados bajo una estructura multidimensional, en la cual el factor general corresponde a una carga de 1.5, el primer subfactor asociado al general posee un valor de carga de 0.3 y el segundo subfactor asociado un 0.5. 20 En el gráfico 1 se observa el efecto del factor general en la simulación, aquí se evidencia que el aumento de la cantidad de ítems no aporta mucho en la reducción del valor de la RECM promedio, lo cual indica que el modelo bifactor puede llegar a identificar la presencia de una dimensión general mediante un test con una cantidad de ítems moderada. El valor de la RECM promedio obtenido para cada combinación de tamaño de muestra y cantidad de ítems en el test se estabiliza a partir de un tamaño de muestra 1000, por lo que la representación gráfica se puede llegar a interpretar como tres líneas paralelas al eje. Sin embargo, el aumento del tamaño de muestra contribuye en reducción del valor de la RECMP, pero dado que la reducción es tan pequeña, esta puede llegar a ser despreciable. Gráfico 1. RECMP del efecto general de la aplicación del modelo bifactor en una estructura multidimensional (ag=1.5, a1=0.3 y a2=0.5) 21 Para el caso de los subfactores asociados al factor general, correspondientes a valores de discriminación de 0.3 y 0.5, los resultados del valor del RECMP en la simulación se observan en los gráficos de la figura 4. El efecto producido por el modelo bifactor en la simulación para la estimación de los parámetros de los subfactores del factor general, parece demostrar que el modelo es capaz de identificar plenamente la presencia de dos subfactores que complementan la información del factor general. Esto se puede intuir dado que el valor de la RCEMP para ambos subfactores en todas las combinaciones dentro del escenario propuesto resultaron ser de un valor relativamente bajo cercano a cero. De este es importante destacar que en los gráficos A y B de la figura 4 se observa que el valor de la RECMP de la estimación de los parámetros de los subfactores se ve reducida por el aumento en el tamaño de la muestra. También se observa que incluir una mayor cantidad de ítems ayuda a reducir aún más el valor de la RECMP del parámetro del primer subfactor. Figura 4 RECMP de los parámetros de los subfactores de la aplicación del modelo bifactor en una estructura multidimensional para el escenario ag=1.5, a1=0.3 y a2=0.5. A) RECMP del primer subfactor B) RECMP del segundo subfactor 22 4.2.2 Segundo escenario: Efecto del modelo bifactor al ser ajustado a datos creados suponiendo un valor menor para el parámetro del factor general Para este segundo escenario de la aplicación del modelo bifactor a los datos creados bajo una estructura de datos multidimensional, los resultados se presentan en el gráfico 2 y la figura 5. La intención del análisis de este escenario es el observar el comportamiento de la aplicación del modelo bifactor cuando el valor de los parámetros de discriminación de los ítems correspondientes a los subfactores (1.7 y 3) son mayores al valor asignado para el factor general. En el gráfico 2 se observa que el efecto de la simulación en la estimación del parámetro de factor general no se ve influido por la cantidad de los ítems utilizados en el test. Esto ya que en el gráfico no se logra identificar un patrón determinado en el valor de la RECMP al aumentar la cantidad de ítems en el cuestionario; sin embargo, el valor de la RECMP sí disminuye al aumentar el tamaño de la muestra. Gráfico 2. RECMP del efecto general de la aplicación del modelo bifactor cuando el efecto general es menor al de los subfactores (ag=1, a1=1.7 y a2=3) Para el caso de la estimación de los parámetros de discriminación de los subfactores, el indicador del RECMP se puede observar en los gráficos A y B de la figura 5. En ambos, se puede observar cómo aumentar la cantidad de ítems no influye la reducción del indicador de la RECMP. 23 De forma similar ocurre con la eventualidad de aumentar el tamaño de muestra. En esta situación, se resalta que en la mayoría de las combinaciones realizadas en la simulación el valor de la RECMP se reduce, a excepción del caso de la estimación de la carga factorial del segundo subfactor, en la cual el valor de la RECMP aumenta al aumentar el tamaño de muestra al considerar 15 o 60 ítems. A pesar de que en este escenario de la simulación no se encontraron patrones de comportamiento del valor de la RECMP de la estimación de los parámetros de los subfactores, el promedio global de este indicador no supera valores superiores a 2, por lo que el modelo bifactor sigue presentado un buen rendimiento en el cálculo de los parámetros relacionados con los factores. Otra situación que puede ser planteada como una hipótesis para una nueva investigación es el hecho de que cuando los subfactores poseen una carga factorial superior al factor general, estos podrían tratarse de factores independientes al factor general, lo cual daría como resultado un conjunto de datos con una estructura multidimensional solamente con factores generales. Figura 5 RECMP de los parámetros de los subfactores de la aplicación del modelo bifactor en una estructura multidimensional para el escenario ag=1, a1=1.7 y a2=3. A) RECMP del primer subfactor B) RECMP del segundo subfactor 24 5. Discusión Este trabajo contribuye a la premisa que el AFE no es la única alternativa para analizar la dimensionalidad de los datos, lo cual no significa que esta metodología deba dejar de utilizarse, sino que su uso depende mucho del contexto y el objetivo del test. Lo anterior porque si este precisa solamente obtener una calificación de una aptitud a través de una escala o un conteo de características, se puede asumir perfectamente la unidimensionalidad, si así lo indicó el AFE y la teoría sustantiva. Si el objetivo del test o prueba recae en la explicación de diferentes comportamientos presentes en un mismo constructo, o bien, en observar la relación, identificar y analizar diferentes subdimensiones presentes en un mismo constructo, se debe optar por otras metodologías como el modelo bifactor multidimensional, según se expone en este proyecto, ya que las metodologías basadas en la teoría clásica de los test no proporcionarían información correspondiente a los subdimensiones o subconstructos presentes en el desarrollo del test. Mediante un diseño de simulación, se logró identificar el comportamiento del modelo bifactor en diferentes perfiles de estructura dimensionales de información. Entre los principales resultados destaca que el modelo bifactor, independientemente del perfil analizado, siempre obtiene un valor de RECMP bastante bajo, menor a 2 en todas las simulaciones realizades y menor a 1 en su mayoría. En los casos donde se evaluó el modelo bifactor para los perfiles de información bajo la estructura unidimensional, se encontró que existe un patrón importante en el cual al aumentar el tamaño de muestra de la aplicación del test, el valor de la RECMP se reduce. Sin embargo, la cantidad de ítems utilizados en el test parece solo influir en el valor de la RECMP cuando el parámetro de discriminación de los ítems es mayor al parámetro de dificultad de ítem. Para los escenarios de aplicación del modelo bifactor en datos con una estructura multidimensional, se presentó que para el escenario en el cual el parámetro del factor general es mayor que el de los subfactores, el valor del factor general converge a partir de la aplicación del test a 1000 personas, por lo que la aplicación del mismo test a una mayor cantidad de muestra el modelo ajustaría un valor muy similar al obtenido para la muestra de n=1000. En el caso de los parámetros de los subfactores de este mismo, se presentó un patrón muy establecido donde al aumentar el tamaño de muestra y la cantidad de los ítems sí contribuye en la reducción del valor de la RECMP. 25 En el caso del perfil de la aplicación del bifactor a datos bajo una estructura multidimensional en la cual el parámetro de los subfactores es mayor a del factor general, se obtuvo que la estimación del parámetro para el factor general no se altera al aumentar la cantidad de los ítems del test, pero sí el tamaño de muestra. Para la estimación de los parámetros de los subfactores se presentó que no existe un patrón definido que altere el resultado del valor de la RECMP; sin embargo, sí se evidencia que cuanto más alto sea el valor del parámetro del subfactor en este perfil, más inestable se vuelve el comportamiento de la RECMP. Debido a este comportamiento surge el cuestionamiento de la hipótesis para una nueva investigación, pues cuando los subfactores poseen una carga factorial superior al factor general, estos podrían tratarse de factores independientes del factor general, lo cual da como resultado un conjunto de datos con una estructura multidimensional solamente con factores generales o mejor establecido como un conjunto de datos bajo una estructura factorial con dos factores. En general, el modelo bifactor demostró ser una metodología robusta y eficiente para el ajuste de los parámetros presentes en las diferentes estructuras dimensionales y es capaz de identificar y diferenciar los parámetros de una estructura con la otra. El modelo puede ser utilizado para complementar información importante acerca de las diferentes temáticas que se encuentran relacionadas con el constructo que evalúa un test, o bien, ser el eje central del ámbito de la investigación cuando se pretenda realizar un ejercicio en cuyo objetivo sea tan importante el análisis del constructo general como el de los subconstructos o subdimensiones. 26 6. Referencias Attorresi, H. F., Lozzia, G. S., Abal, F. J. P., y Galibert, M. S. (2009). Teoría de Respuesta al Ítem Conceptos básicos y aplicaciones para la medición de constructos psicológicos, Revista Argentina de clínica psicológica, 18, 179-188. Chalmers, R., P. (2012). mirt: A Multidimensional Item Response Theory Package for the R Environment. Journal of Statistical Software, 48(6), 1-29. doi: https://doi.org/10.18637/jss.v048.i06 Dunn, K. J., & McCray, G. (2020). The Place of the Bifactor Model in Confirmatory Factor Analysis Investigations Into Construct Dimensionality in Language Testing. Frontiers in Psychology, 11:1357 https://doi.org/10.3389/fpsyg.2020.01357 Frutos de Miguel, J. (2019). Los modelos bifactor vs los modelos factoriales mixtos en la estructura factorial del TDAH. Anuario de Psicología, 49, 113-125. https://doi.org/10.1344/anpsic2019.49.12 Gómez-Benito, J., y Hidalgo-Montesinos, M. D. (2003). Desarrollos recientes en psicometría. Avances en Medición, 1 (1), 17-36. Lord, F. (1952). A theory of test scores. Psychometric Monographs (Psychometric Monograph), 7. Luo, Y., y Al-Harbi, K. (2016). The Utility of the Bifactor Method for Unidimensionality Assessment When Other Methods Disagree: An Empirical Illustration. SAGE Open, 6(4), 1-7. https://doi.org/10.1177/2158244016674513 Malo Salvatierra, D. A. (2008). The measurement of psychology as a tool and ethics as a reflection on the exercise of a psychologist. Psicogente, 11(19), 46-51. Martínez Arias, M. del R., Hernández Lloreda, M. V., y Hernández Lloreda, M. J. (2014). Psicometría. http://site.ebrary.com/id/11038429 https://doi.org/10.18637/jss.v048.i06 https://doi.org/10.3389/fpsyg.2020.01357 https://doi.org/10.1344/anpsic2019.49.12 https://doi.org/10.1177/2158244016674513 http://site.ebrary.com/id/11038429 27 Meneses, J., y Barrios Cerrejón, M. T. (2013). Psicometría. http://public.ebookcentral.proquest.com/choice/publicfullrecord.aspx?p=3222679 Mirt.pdf. (s/f). Recuperado el 1 de junio de 2021, de https://cran.r- project.org/web/packages/mirt/mirt.pdf Montero, E. (2009). La teoría de respuesta a los itemes: Una moderna alternativa para el análisis psicométrico de instrumentos de medición. Revista de Matemática: Teoría y Aplicaciones, 7(1-2), 217-228. https://doi.org/10.15517/rmta.v7i1-2.191 Muñiz Fernández, J. (2018). Introducción a la Psicometría. Pirámide. Muñiz, J. (2010). Las teorías de los tests: teoría clásica y teoría de respuesta a los ítems. Papeles del Psicólogo, 31(1), 57–66. Piera, P. (1996). Evaluación de la unidimensionalidad de los ítems mediante análisis factorial. Psicothema, 8 ( 2), 397-410. R. Philip Chalmers (2012). mirt: A Multidimensional Item Response Theory Package for the R Environment. Journal of Statistical Software, 48(6), 1-29. doi:10.18637/jss.v048.i06 Reise, S. P. (2012). The Rediscovery of Bifactor Measurement Models. Multivariate Behavioral Research, 47(5), 667–696. https://doi.org/10.1080/00273171.2012.715555 Spearman, C. (1904). The Proof and Measurement of Association between Two Things. The American Journal of Psychology, 15(1), 72–101. https://doi.org/10.2307/1412159 Spearman, C. (1907). Demonstration of Formulæ for True Measurement of Correlation. The American Journal of Psychology, 18(2), 161–169.. https://doi.org/10.2307/1412408 http://public.ebookcentral.proquest.com/choice/publicfullrecord.aspx?p=3222679 https://cran.r-project.org/web/packages/mirt/mirt.pdf https://cran.r-project.org/web/packages/mirt/mirt.pdf https://doi.org/10.15517/rmta.v7i1-2.191 https://doi.org/10.1080/00273171.2012.715555 https://doi.org/10.2307/1412159 https://doi.org/10.2307/1412408 28 Spearman, C. (1913). Correlations of Sums or Differences. British Journal of Psychology, 1904-1920, 5(4), 417–426. https://doi.org/10.1111/j.2044-8295.1913.tb00072.x Stevens, S. S. (1946). On the Theory of Scales of Measurement. Science, New Series, 103(2684), 677– 680. Thompson, B. (2004). Exploratory and confirmatory factor analysis: Understanding concepts and applications. American Psychological Association. https://doi.org/10.1111/j.2044-8295.1913.tb00072.x 29 7. Anexos 7.1 Simulación del modelo bifactor en datos bajo una estructura de dos parámetros library(dplyr) library(mirt) t <- proc.time() #base para modelos de parámetros #Habilidad será Z(0,1) #Discriminación 1.5-0.7 #dificultada 1.5-0.7 #n:tamaño de muestra #it:iteraciones o repeticiones #j:cantidad de items #########--Modelo de 2 parametro--######## n<-c(500,1000,2000) it<-100 j<-c(15,30,60) b<-0.7 a<-1.5 ax<-NA habilidad<-lapply(n,function(x) replicate(it,rnorm(x,0,1))) save(habilidad,file="habilidad.Rdata") #dificultad<-lapply(j, function(x) rep(b,x)) #discriminacion<-lapply(j, function(x) rep(a,x)) ##funcion caso general dificultad y discriminacion diferente por item #modelopar2=function(z,b,a){ # prob=data.frame(matrix(NA,nrow=length(z),ncol=length(b))) # for(i in 1:length(b)){prob[,i]=1/(1+exp(-a[i]*(z-b[i])))} # res=apply(prob, c(1,2), function(x) rbinom(1,1,x)) # result=list(probabilidad=prob,respuestas=res);return(result)} #funcion especifica misma dificultad y discriminacion por item, más eficiente modelopar2.1=function(z,b,a,j){ prob<-replicate(j,1/(1+exp(-a*(z-b)))) res=apply(prob, c(1,2), function(x) rbinom(1,1,x)) result=list(probabilidad=prob,respuestas=res);return(result)} ##eficiencia de funciones #t <- proc.time() #an<-modelopar2(z=habilidad[[3]][,1],b=dificultad[[3]],a=discriminacion[[3]]) #tiempo1<-proc.time() - t t <- proc.time() an<-modelopar2.1(z=habilidad[[3]][,1],b=b,a=a,j=j[3]) tiempo2<-proc.time() - t tiempo2 ########################################################################## #--poblacion con modelo de 2 parametros--# #N:500,j:15,b:0.7,a:1.5 prob.500.15.07.1.5.2p=list() resp.500.15.07.1.5.2p=list() for(i in 1:it){mod=modelopar2.1(habilidad[[1]][,i],b=b,a=a,j=j[1]) prob.500.15.07.1.5.2p[[i]]=mod$probabilidad 30 resp.500.15.07.1.5.2p[[i]]=mod$respuestas} #simulacion modelo specific <- c(rep(1,j[1])) modelos<-lapply(resp.500.15.07.1.5.2p, function(x) bfactor(as.data.frame(x), specific,quadpts = 10)) for (i in 1:it) { ax[i]<-modelos[[i]]@ OptimInfo$converged } bf.500.15.07.1.5.2p<-modelos[ax] #error cuadratico medio del parametro de dificultad ecm.dif.500.15.07.1.5.2p.l<-lapply(bf.500.15.07.1.5.2p, function(x) ((MDIFF(x)-b)^2)) ecm.dif.500.15.07.1.5.2p<-matrix(unlist(ecm.dif.500.15.07.1.5.2p.l),nrow = j[1],ncol=length(modelos[ax])) #error cuadratico medio del parametro de discriminacion ecm.dis.500.15.07.1.5.2p.l<-lapply(bf.500.15.07.1.5.2p, function(x) ((MDISC(x)-a)^2)) ecm.dis.500.15.07.1.5.2p<-matrix(unlist(ecm.dis.500.15.07.1.5.2p.l),nrow = j[1],ncol=length(modelos[ax])) e.dis.500.15.07.1.5<-apply(ecm.dis.500.15.07.1.5.2p, 1, function(x) sqrt(mean(x))) e.dif.500.15.07.1.5<-apply(ecm.dif.500.15.07.1.5.2p, 1, function(x) sqrt(mean(x))) e.500.15.07.1.5.2p<-c(discriminacion=mean(e.dis.500.15.07.1.5),dificultad=mean(e.dif.500.15.07.1.5)) #N:1000,j:15,b:0.7,a:1.5 prob.1000.15.07.1.5.2p=list() resp.1000.15.07.1.5.2p=list() for(i in 1:it){mod=modelopar2.1(habilidad[[2]][,i],b=b,a=a,j=j[1]) prob.1000.15.07.1.5.2p[[i]]=mod$probabilidad;resp.1000.15.07.1.5.2p[[i]]=mod$respuestas} #simulacion modelo specific <- c(rep(1,j[1])) modelos<-lapply(resp.1000.15.07.1.5.2p, function(x) bfactor(as.data.frame(x), specific,quadpts = 10)) for (i in 1:it) { ax[i]<-modelos[[i]]@ OptimInfo$converged } bf.1000.15.07.1.5.2p<-modelos[ax] #error cuadratico medio del parametro de dificultad ecm.dif.1000.15.07.1.5.2p.l<-lapply(bf.1000.15.07.1.5.2p, function(x) ((MDIFF(x)-b)^2)) ecm.dif.1000.15.07.1.5.2p<-matrix(unlist(ecm.dif.1000.15.07.1.5.2p.l),nrow = j[1],ncol=length(modelos[ax])) #error cuadratico medio del parametro de discriminacion ecm.dis.1000.15.07.1.5.2p.l<-lapply(bf.1000.15.07.1.5.2p, function(x) ((MDISC(x)-a)^2)) ecm.dis.1000.15.07.1.5.2p<-matrix(unlist(ecm.dis.1000.15.07.1.5.2p.l),nrow = j[1],ncol=length(modelos[ax])) e.dis.1000.15.07.1.5<-apply(ecm.dis.1000.15.07.1.5.2p, 1, function(x) sqrt(mean(x))) e.dif.1000.15.07.1.5<-apply(ecm.dif.1000.15.07.1.5.2p, 1, function(x) sqrt(mean(x))) e.1000.15.07.1.5.2p<-c(discriminacion=mean(e.dis.1000.15.07.1.5),dificultad=mean(e.dif.1000.15.07.1.5)) #N:2000,j:15,b:0.7,a:1.5 prob.2000.15.07.1.5.2p=list() resp.2000.15.07.1.5.2p=list() for(i in 1:it){mod=modelopar2.1(habilidad[[3]][,i],b=b,a=a,j=j[1]) prob.2000.15.07.1.5.2p[[i]]=mod$probabilidad;resp.2000.15.07.1.5.2p[[i]]=mod$respuestas} #simulacion modelo specific <- c(rep(1,j[1])) modelos<-lapply(resp.2000.15.07.1.5.2p, function(x) bfactor(as.data.frame(x), specific,quadpts = 10)) for (i in 1:it) { ax[i]<-modelos[[i]]@ OptimInfo$converged } 31 bf.2000.15.07.1.5.2p<-modelos[ax] #error cuadratico medio del parametro de dificultad ecm.dif.2000.15.07.1.5.2p.l<-lapply(bf.2000.15.07.1.5.2p, function(x) ((MDIFF(x)-b)^2)) ecm.dif.2000.15.07.1.5.2p<-matrix(unlist(ecm.dif.2000.15.07.1.5.2p.l),nrow = j[1],ncol=length(modelos[ax])) #error cuadratico medio del parametro de discriminacion ecm.dis.2000.15.07.1.5.2p.l<-lapply(bf.2000.15.07.1.5.2p, function(x) ((MDISC(x)-a)^2)) ecm.dis.2000.15.07.1.5.2p<-matrix(unlist(ecm.dis.2000.15.07.1.5.2p.l),nrow = j[1],ncol=length(modelos[ax])) e.dis.2000.15.07.1.5<-apply(ecm.dis.2000.15.07.1.5.2p, 1, function(x) sqrt(mean(x))) e.dif.2000.15.07.1.5<-apply(ecm.dif.2000.15.07.1.5.2p, 1, function(x) sqrt(mean(x))) e.2000.15.07.1.5.2p<-c(discriminacion=mean(e.dis.2000.15.07.1.5),dificultad=mean(e.dif.2000.15.07.1.5)) e.500.15.07.1.5.2p e.1000.15.07.1.5.2p e.2000.15.07.1.5.2p ##N:500,j:30,b:0.7,a:1.5 ##500.30.07.1.5 prob.500.30.07.1.5.2p=list() resp.500.30.07.1.5.2p=list() for(i in 1:it){mod=modelopar2.1(habilidad[[1]][,i],b=b,a=a,j=j[2]) prob.500.30.07.1.5.2p[[i]]=mod$probabilidad;resp.500.30.07.1.5.2p[[i]]=mod$respuestas} #simulacion modelo specific <- c(rep(1,j[2])) modelos<-lapply(resp.500.30.07.1.5.2p, function(x) bfactor(as.data.frame(x), specific,quadpts = 10)) for (i in 1:it) { ax[i]<-modelos[[i]]@ OptimInfo$converged } bf.500.30.07.1.5.2p<-modelos[ax] #error cuadratico medio del parametro de dificultad ecm.dif.500.30.07.1.5.2p.l<-lapply(bf.500.30.07.1.5.2p, function(x) ((MDIFF(x)-b)^2)) ecm.dif.500.30.07.1.5.2p<-matrix(unlist(ecm.dif.500.30.07.1.5.2p.l),nrow = j[2],ncol=length(modelos[ax])) #error cuadratico medio del parametro de discriminacion ecm.dis.500.30.07.1.5.2p.l<-lapply(bf.500.30.07.1.5.2p, function(x) ((MDISC(x)-a)^2)) ecm.dis.500.30.07.1.5.2p<-matrix(unlist(ecm.dis.500.30.07.1.5.2p.l),nrow = j[2],ncol=length(modelos[ax])) e.dis.500.30.07.1.5<-apply(ecm.dis.500.30.07.1.5.2p, 1, function(x) sqrt(mean(x))) e.dif.500.30.07.1.5<-apply(ecm.dif.500.30.07.1.5.2p, 1, function(x) sqrt(mean(x))) e.500.30.07.1.5.2p<-c(discriminacion=mean(e.dis.500.30.07.1.5),dificultad=mean(e.dif.500.30.07.1.5)) ##N:1000,j:30,b:0.7,a:1.5 ##1000.30.07.1.5 prob.1000.30.07.1.5.2p=list() resp.1000.30.07.1.5.2p=list() for(i in 1:it){mod=modelopar2.1(habilidad[[2]][,i],b=b,a=a,j=j[2]) prob.1000.30.07.1.5.2p[[i]]=mod$probabilidad;resp.1000.30.07.1.5.2p[[i]]=mod$respuestas} #simulacion modelo specific <- c(rep(1,j[2])) modelos<-lapply(resp.1000.30.07.1.5.2p, function(x) bfactor(as.data.frame(x), specific,quadpts = 10)) for (i in 1:it) { ax[i]<-modelos[[i]]@ OptimInfo$converged } bf.1000.30.07.1.5.2p<-modelos[ax] #error cuadratico medio del parametro de dificultad 32 ecm.dif.1000.30.07.1.5.2p.l<-lapply(bf.1000.30.07.1.5.2p, function(x) ((MDIFF(x)-b)^2)) ecm.dif.1000.30.07.1.5.2p<-matrix(unlist(ecm.dif.1000.30.07.1.5.2p.l),nrow = j[2],ncol=length(modelos[ax])) #error cuadratico medio del parametro de discriminacion ecm.dis.1000.30.07.1.5.2p.l<-lapply(bf.1000.30.07.1.5.2p, function(x) ((MDISC(x)-a)^2)) ecm.dis.1000.30.07.1.5.2p<-matrix(unlist(ecm.dis.1000.30.07.1.5.2p.l),nrow = j[2],ncol=length(modelos[ax])) e.dis.1000.30.07.1.5<-apply(ecm.dis.1000.30.07.1.5.2p, 1, function(x) sqrt(mean(x))) e.dif.1000.30.07.1.5<-apply(ecm.dif.1000.30.07.1.5.2p, 1, function(x) sqrt(mean(x))) e.1000.30.07.1.5.2p<-c(discriminacion=mean(e.dis.1000.30.07.1.5),dificultad=mean(e.dif.1000.30.07.1.5)) ##N:2000,j:30,b:0.7,a:1.5 ##2000.30.07.1.5 prob.2000.30.07.1.5.2p=list() resp.2000.30.07.1.5.2p=list() for(i in 1:it){mod=modelopar2.1(habilidad[[3]][,i],b=b,a=a,j=j[2]) prob.2000.30.07.1.5.2p[[i]]=mod$probabilidad;resp.2000.30.07.1.5.2p[[i]]=mod$respuestas} #simulacion modelo specific <- c(rep(1,j[2])) modelos<-lapply(resp.2000.30.07.1.5.2p, function(x) bfactor(as.data.frame(x), specific,quadpts = 10)) for (i in 1:it) { ax[i]<-modelos[[i]]@ OptimInfo$converged } bf.2000.30.07.1.5.2p<-modelos[ax] #error cuadratico medio del parametro de dificultad ecm.dif.2000.30.07.1.5.2p.l<-lapply(bf.2000.30.07.1.5.2p, function(x) ((MDIFF(x)-b)^2)) ecm.dif.2000.30.07.1.5.2p<-matrix(unlist(ecm.dif.2000.30.07.1.5.2p.l),nrow = j[2],ncol=length(modelos[ax])) #error cuadratico medio del parametro de discriminacion ecm.dis.2000.30.07.1.5.2p.l<-lapply(bf.2000.30.07.1.5.2p, function(x) ((MDISC(x)-a)^2)) ecm.dis.2000.30.07.1.5.2p<-matrix(unlist(ecm.dif.2000.30.07.1.5.2p.l),nrow = j[2],ncol=length(modelos[ax])) e.dis.2000.30.07.1.5<-apply(ecm.dis.2000.30.07.1.5.2p, 1, function(x) sqrt(mean(x))) e.dif.2000.30.07.1.5<-apply(ecm.dif.2000.30.07.1.5.2p, 1, function(x) sqrt(mean(x))) e.2000.30.07.1.5.2p<-c(discriminacion=mean(e.dis.2000.30.07.1.5),dificultad=mean(e.dif.2000.30.07.1.5)) e.500.30.07.1.5.2p e.1000.30.07.1.5.2p e.2000.30.07.1.5.2p ##N:500,j:60,b:0.7,a:1.5 ##500.60.07.1.5 prob.500.60.07.1.5.2p=list() resp.500.60.07.1.5.2p=list() for(i in 1:it){mod=modelopar2.1(habilidad[[1]][,i],b=b,a=a,j=j[3]) prob.500.60.07.1.5.2p[[i]]=mod$probabilidad;resp.500.60.07.1.5.2p[[i]]=mod$respuestas} #simulacion modelo specific <- c(rep(1,j[3])) modelos<-lapply(resp.500.60.07.1.5.2p, function(x) bfactor(as.data.frame(x), specific,quadpts = 10)) for (i in 1:it) { ax[i]<-modelos[[i]]@ OptimInfo$converged } bf.500.60.07.1.5.2p<-modelos[ax] #error cuadratico medio del parametro de dificultad ecm.dif.500.60.07.1.5.2p.l<-lapply(bf.500.60.07.1.5.2p, function(x) ((MDIFF(x)-b)^2)) ecm.dif.500.60.07.1.5.2p<-matrix(unlist(ecm.dif.500.60.07.1.5.2p.l),nrow = j[3],ncol=length(modelos[ax])) #error cuadratico medio del parametro de discriminacion ecm.dis.500.60.07.1.5.2p.l<-lapply(bf.500.60.07.1.5.2p, function(x) ((MDISC(x)-a)^2)) ecm.dis.500.60.07.1.5.2p<-matrix(unlist(ecm.dis.500.60.07.1.5.2p.l),nrow = j[3],ncol=length(modelos[ax])) 33 e.dis.500.60.07.1.5<-apply(ecm.dis.500.60.07.1.5.2p, 1, function(x) sqrt(mean(x))) e.dif.500.60.07.1.5<-apply(ecm.dif.500.60.07.1.5.2p, 1, function(x) sqrt(mean(x))) e.500.60.07.1.5.2p<-c(discriminacion=mean(e.dis.500.60.07.1.5),dificultad=mean(e.dif.500.60.07.1.5)) ##N:1000,j:60,b:0.7,a:1.5 ##1000.60.07.1.5 prob.1000.60.07.1.5.2p=list() resp.1000.60.07.1.5.2p=list() for(i in 1:it){mod=modelopar2.1(habilidad[[2]][,i],b=b,a=a,j=j[3]) prob.1000.60.07.1.5.2p[[i]]=mod$probabilidad;resp.1000.60.07.1.5.2p[[i]]=mod$respuestas} #simulacion modelo specific <- c(rep(1,j[3])) modelos<-lapply(resp.1000.60.07.1.5.2p, function(x) bfactor(as.data.frame(x), specific,quadpts = 10)) for (i in 1:it) { ax[i]<-modelos[[i]]@ OptimInfo$converged } bf.1000.60.07.1.5.2p<-modelos[ax] #error cuadratico medio del parametro de dificultad ecm.dif.1000.60.07.1.5.2p.l<-lapply(bf.1000.60.07.1.5.2p, function(x) ((MDIFF(x)-b)^2)) ecm.dif.1000.60.07.1.5.2p<-matrix(unlist(ecm.dif.1000.60.07.1.5.2p.l),nrow = j[3],ncol=length(modelos[ax])) #error cuadratico medio del parametro de discriminacion ecm.dis.1000.60.07.1.5.2p.l<-lapply(bf.1000.60.07.1.5.2p, function(x) ((MDISC(x)-a)^2)) ecm.dis.1000.60.07.1.5.2p<-matrix(unlist(ecm.dis.1000.60.07.1.5.2p.l),nrow = j[3],ncol=length(modelos[ax])) e.dis.1000.60.07.1.5<-apply(ecm.dis.1000.60.07.1.5.2p, 1, function(x) sqrt(mean(x))) e.dif.1000.60.07.1.5<-apply(ecm.dif.1000.60.07.1.5.2p, 1, function(x) sqrt(mean(x))) e.1000.60.07.1.5.2p<-c(discriminacion=mean(e.dis.1000.60.07.1.5),dificultad=mean(e.dif.1000.60.07.1.5)) ##N:2000,j:60,b:0.7,a:1.5 ##2000.60.07.1.5 prob.2000.60.07.1.5.2p=list() resp.2000.60.07.1.5.2p=list() for(i in 1:it){mod=modelopar2.1(habilidad[[3]][,i],b=b,a=a,j=j[3]) prob.2000.60.07.1.5.2p[[i]]=mod$probabilidad;resp.2000.60.07.1.5.2p[[i]]=mod$respuestas} #simulacion modelo specific <- c(rep(1,j[3])) bf.2000.60.07.1.5.2p<-lapply(resp.2000.60.07.1.5.2p, function(x) bfactor(as.data.frame(x), specific,quadpts = 10)) #error cuadratico medio del parametro de dificultad ecm.dif.2000.60.07.1.5.2p.l<-lapply(bf.2000.60.07.1.5.2p, function(x) ((MDIFF(x)-b)^2)) ecm.dif.2000.60.07.1.5.2p<-matrix(unlist(ecm.dif.2000.60.07.1.5.2p.l),nrow = j[3],ncol=length(modelos[ax])) #error cuadratico medio del parametro de discriminacion ecm.dis.2000.60.07.1.5.2p.l<-lapply(bf.2000.60.07.1.5.2p, function(x) ((MDISC(x)-a)^2)) ecm.dis.2000.60.07.1.5.2p<-matrix(unlist(ecm.dis.2000.60.07.1.5.2p.l),nrow = j[3],ncol=length(modelos[ax])) e.dis.2000.60.07.1.5<-apply(ecm.dis.2000.60.07.1.5.2p, 1, function(x) sqrt(mean(x))) e.dif.2000.60.07.1.5<-apply(ecm.dif.2000.60.07.1.5.2p, 1, function(x) sqrt(mean(x))) e.2000.60.07.1.5.2p<-c(discriminacion=mean(e.dis.2000.60.07.1.5),dificultad=mean(e.dif.2000.60.07.1.5)) e.500.60.07.1.5.2p e.1000.60.07.1.5.2p e.2000.60.07.1.5.2p #variando el tamaño de muestra ecm.07.1.5.2p<-data.frame(rbind(c(e.500.15.07.1.5.2p,n=500,item=15) ,c(e.1000.15.07.1.5.2p,n=1000,item=15) ,c(e.2000.15.07.1.5.2p,n=2000,item=15) ,c(e.500.30.07.1.5.2p,n=500,item=30) ,c(e.1000.30.07.1.5.2p,n=1000,item=30) ,c(e.2000.30.07.1.5.2p,n=2000,item=30) 34 ,c(e.500.60.07.1.5.2p,n=500,item=60) ,c(e.1000.60.07.1.5.2p,n=1000,item=60) ,c(e.2000.60.07.1.5.2p,n=2000,item=60))) ecm.07.1.5.2p ecm.07.1.5.2p$N<-as.character(ecm.07.1.5.2p$n) ecm.07.1.5.2p$Item<-as.character(ecm.07.1.5.2p$item) save(ecm.07.1.5.2p,file = "ecm.07.1.5.2p.Rdata") proc.time() - t #################### simulación con los parámetros invertidos #########--Modelo de 2 parametro--######## b<-1.5 a<-0.7 ########################################################################## #--poblacion con modelo de 2 parametros--# #N:500,j:15,b:1.5,a:0.7 prob.500.15.1.5.07.2p=list() resp.500.15.1.5.07.2p=list() for(i in 1:it){mod=modelopar2.1(habilidad[[1]][,i],b=b,a=a,j=j[1]) prob.500.15.1.5.07.2p[[i]]=mod$probabilidad resp.500.15.1.5.07.2p[[i]]=mod$respuestas} #simulacion modelo specific <- c(rep(1,j[1])) modelos<-lapply(resp.500.15.1.5.07.2p, function(x) bfactor(as.data.frame(x), specific,quadpts = 10)) for (i in 1:it) { ax[i]<-modelos[[i]]@ OptimInfo$converged } bf.500.15.1.5.07.2p<-modelos[ax] #error cuadratico medio del parametro de dificultad ecm.dif.500.15.1.5.07.2p.l<-lapply(bf.500.15.1.5.07.2p, function(x) ((MDIFF(x)-b)^2)) ecm.dif.500.15.1.5.07.2p<-matrix(unlist(ecm.dif.500.15.1.5.07.2p.l),nrow = j[1],ncol=length(modelos[ax])) #error cuadratico medio del parametro de discriminacion ecm.dis.500.15.1.5.07.2p.l<-lapply(bf.500.15.1.5.07.2p, function(x) ((MDISC(x)-a)^2)) ecm.dis.500.15.1.5.07.2p<-matrix(unlist(ecm.dis.500.15.1.5.07.2p.l),nrow = j[1],ncol=length(modelos[ax])) e.dis.500.15.1.5.07<-apply(ecm.dis.500.15.1.5.07.2p, 1, function(x) sqrt(mean(x))) e.dif.500.15.1.5.07<-apply(ecm.dif.500.15.1.5.07.2p, 1, function(x) sqrt(mean(x))) e.500.15.1.5.07.2p<-c(discriminacion=mean(e.dis.500.15.1.5.07),dificultad=mean(e.dif.500.15.1.5.07)) #N:1000,j:15,b:1.5,a:0.7 prob.1000.15.1.5.07.2p=list() resp.1000.15.1.5.07.2p=list() for(i in 1:it){mod=modelopar2.1(habilidad[[2]][,i],b=b,a=a,j=j[1]) prob.1000.15.1.5.07.2p[[i]]=mod$probabilidad;resp.1000.15.1.5.07.2p[[i]]=mod$respuestas} #simulacion modelo specific <- c(rep(1,j[1])) modelos<-lapply(resp.1000.15.1.5.07.2p, function(x) bfactor(as.data.frame(x), specific,quadpts = 10)) for (i in 1:it) { ax[i]<-modelos[[i]]@ OptimInfo$converged } bf.1000.15.1.5.07.2p<-modelos[ax] #error cuadratico medio del parametro de dificultad ecm.dif.1000.15.1.5.07.2p.l<-lapply(bf.1000.15.1.5.07.2p, function(x) ((MDIFF(x)-b)^2)) 35 ecm.dif.1000.15.1.5.07.2p<-matrix(unlist(ecm.dif.1000.15.1.5.07.2p.l),nrow = j[1],ncol=length(modelos[ax])) #error cuadratico medio del parametro de discriminacion ecm.dis.1000.15.1.5.07.2p.l<-lapply(bf.1000.15.1.5.07.2p, function(x) ((MDISC(x)-a)^2)) ecm.dis.1000.15.1.5.07.2p<-matrix(unlist(ecm.dis.1000.15.1.5.07.2p.l),nrow = j[1],ncol=length(modelos[ax])) e.dis.1000.15.1.5.07<-apply(ecm.dis.1000.15.1.5.07.2p, 1, function(x) sqrt(mean(x))) e.dif.1000.15.1.5.07<-apply(ecm.dif.1000.15.1.5.07.2p, 1, function(x) sqrt(mean(x))) e.1000.15.1.5.07.2p<-c(discriminacion=mean(e.dis.1000.15.1.5.07),dificultad=mean(e.dif.1000.15.1.5.07)) #N:2000,j:15,b:1.5,a:0.7 prob.2000.15.1.5.07.2p=list() resp.2000.15.1.5.07.2p=list() for(i in 1:it){mod=modelopar2.1(habilidad[[3]][,i],b=b,a=a,j=j[1]) prob.2000.15.1.5.07.2p[[i]]=mod$probabilidad;resp.2000.15.1.5.07.2p[[i]]=mod$respuestas} #simulacion modelo specific <- c(rep(1,j[1])) modelos<-lapply(resp.2000.15.1.5.07.2p, function(x) bfactor(as.data.frame(x), specific,quadpts = 10)) for (i in 1:it) { ax[i]<-modelos[[i]]@ OptimInfo$converged } bf.2000.15.1.5.07.2p<-modelos[ax] #error cuadratico medio del parametro de dificultad ecm.dif.2000.15.1.5.07.2p.l<-lapply(bf.2000.15.1.5.07.2p, function(x) ((MDIFF(x)-b)^2)) ecm.dif.2000.15.1.5.07.2p<-matrix(unlist(ecm.dif.2000.15.1.5.07.2p.l),nrow = j[1],ncol=length(modelos[ax])) #error cuadratico medio del parametro de discriminacion ecm.dis.2000.15.1.5.07.2p.l<-lapply(bf.2000.15.1.5.07.2p, function(x) ((MDISC(x)-a)^2)) ecm.dis.2000.15.1.5.07.2p<-matrix(unlist(ecm.dis.2000.15.1.5.07.2p.l),nrow = j[1],ncol=length(modelos[ax])) e.dis.2000.15.1.5.07<-apply(ecm.dis.2000.15.1.5.07.2p, 1, function(x) sqrt(mean(x))) e.dif.2000.15.1.5.07<-apply(ecm.dif.2000.15.1.5.07.2p, 1, function(x) sqrt(mean(x))) e.2000.15.1.5.07.2p<-c(discriminacion=mean(e.dis.2000.15.1.5.07),dificultad=mean(e.dif.2000.15.1.5.07)) e.500.15.1.5.07.2p e.1000.15.1.5.07.2p e.2000.15.1.5.07.2p ##N:500,j:30,b:1.5,a:0.7 ##500.30.1.5.07 prob.500.30.1.5.07.2p=list() resp.500.30.1.5.07.2p=list() for(i in 1:it){mod=modelopar2.1(habilidad[[1]][,i],b=b,a=a,j=j[2]) prob.500.30.1.5.07.2p[[i]]=mod$probabilidad;resp.500.30.1.5.07.2p[[i]]=mod$respuestas} #simulacion modelo specific <- c(rep(1,j[2])) modelos<-lapply(resp.500.30.1.5.07.2p, function(x) bfactor(as.data.frame(x), specific,quadpts = 10)) for (i in 1:it) { ax[i]<-modelos[[i]]@ OptimInfo$converged } bf.500.30.1.5.07.2p<-modelos[ax] #error cuadratico medio del parametro de dificultad ecm.dif.500.30.1.5.07.2p.l<-lapply(bf.500.30.1.5.07.2p, function(x) ((MDIFF(x)-b)^2)) ecm.dif.500.30.1.5.07.2p<-matrix(unlist(ecm.dif.500.30.1.5.07.2p.l),nrow = j[2],ncol=length(modelos[ax])) #error cuadratico medio del parametro de discriminacion ecm.dis.500.30.1.5.07.2p.l<-lapply(bf.500.30.1.5.07.2p, function(x) ((MDISC(x)-a)^2)) ecm.dis.500.30.1.5.07.2p<-matrix(unlist(ecm.dis.500.30.1.5.07.2p.l),nrow = j[2],ncol=length(modelos[ax])) 36 e.dis.500.30.1.5.07<-apply(ecm.dis.500.30.1.5.07.2p, 1, function(x) sqrt(mean(x))) e.dif.500.30.1.5.07<-apply(ecm.dif.500.30.1.5.07.2p, 1, function(x) sqrt(mean(x))) e.500.30.1.5.07.2p<-c(discriminacion=mean(e.dis.500.30.1.5.07),dificultad=mean(e.dif.500.30.1.5.07)) ##N:1000,j:30,b:1.5,a:0.7 ##1000.30.1.5.07 prob.1000.30.1.5.07.2p=list() resp.1000.30.1.5.07.2p=list() for(i in 1:it){mod=modelopar2.1(habilidad[[2]][,i],b=b,a=a,j=j[2]) prob.1000.30.1.5.07.2p[[i]]=mod$probabilidad;resp.1000.30.1.5.07.2p[[i]]=mod$respuestas} #simulacion modelo specific <- c(rep(1,j[2])) modelos<-lapply(resp.1000.30.1.5.07.2p, function(x) bfactor(as.data.frame(x), specific,quadpts = 10)) for (i in 1:it) { ax[i]<-modelos[[i]]@ OptimInfo$converged } bf.1000.30.1.5.07.2p<-modelos[ax] #error cuadratico medio del parametro de dificultad ecm.dif.1000.30.1.5.07.2p.l<-lapply(bf.1000.30.1.5.07.2p, function(x) ((MDIFF(x)-b)^2)) ecm.dif.1000.30.1.5.07.2p<-matrix(unlist(ecm.dif.1000.30.1.5.07.2p.l),nrow = j[2],ncol=length(modelos[ax])) #error cuadratico medio del parametro de discriminacion ecm.dis.1000.30.1.5.07.2p.l<-lapply(bf.1000.30.1.5.07.2p, function(x) ((MDISC(x)-a)^2)) ecm.dis.1000.30.1.5.07.2p<-matrix(unlist(ecm.dis.1000.30.1.5.07.2p.l),nrow = j[2],ncol=length(modelos[ax])) e.dis.1000.30.1.5.07<-apply(ecm.dis.1000.30.1.5.07.2p, 1, function(x) sqrt(mean(x))) e.dif.1000.30.1.5.07<-apply(ecm.dif.1000.30.1.5.07.2p, 1, function(x) sqrt(mean(x))) e.1000.30.1.5.07.2p<-c(discriminacion=mean(e.dis.1000.30.1.5.07),dificultad=mean(e.dif.1000.30.1.5.07)) ##N:2000,j:30,b:1.5,a:0.7 ##2000.30.1.5.07 prob.2000.30.1.5.07.2p=list() resp.2000.30.1.5.07.2p=list() for(i in 1:it){mod=modelopar2.1(habilidad[[3]][,i],b=b,a=a,j=j[2]) prob.2000.30.1.5.07.2p[[i]]=mod$probabilidad;resp.2000.30.1.5.07.2p[[i]]=mod$respuestas} #simulacion modelo specific <- c(rep(1,j[2])) modelos<-lapply(resp.2000.30.1.5.07.2p, function(x) bfactor(as.data.frame(x), specific,quadpts = 10)) for (i in 1:it) { ax[i]<-modelos[[i]]@ OptimInfo$converged } bf.2000.30.1.5.07.2p<-modelos[ax] #error cuadratico medio del parametro de dificultad ecm.dif.2000.30.1.5.07.2p.l<-lapply(bf.2000.30.1.5.07.2p, function(x) ((MDIFF(x)-b)^2)) ecm.dif.2000.30.1.5.07.2p<-matrix(unlist(ecm.dif.2000.30.1.5.07.2p.l),nrow = j[2],ncol=length(modelos[ax])) #error cuadratico medio del parametro de discriminacion ecm.dis.2000.30.1.5.07.2p.l<-lapply(bf.2000.30.1.5.07.2p, function(x) ((MDISC(x)-a)^2)) ecm.dis.2000.30.1.5.07.2p<-matrix(unlist(ecm.dif.2000.30.1.5.07.2p.l),nrow = j[2],ncol=length(modelos[ax])) e.dis.2000.30.1.5.07<-apply(ecm.dis.2000.30.1.5.07.2p, 1, function(x) sqrt(mean(x))) e.dif.2000.30.1.5.07<-apply(ecm.dif.2000.30.1.5.07.2p, 1, function(x) sqrt(mean(x))) e.2000.30.1.5.07.2p<-c(discriminacion=mean(e.dis.2000.30.1.5.07),dificultad=mean(e.dif.2000.30.1.5.07)) e.500.30.1.5.07.2p e.1000.30.1.5.07.2p e.2000.30.1.5.07.2p ##N:500,j:60,b:1.5,a:0.7 ##500.60.1.5.07 37 prob.500.60.1.5.07.2p=list() resp.500.60.1.5.07.2p=list() for(i in 1:it){mod=modelopar2.1(habilidad[[1]][,i],b=b,a=a,j=j[3]) prob.500.60.1.5.07.2p[[i]]=mod$probabilidad;resp.500.60.1.5.07.2p[[i]]=mod$respuestas} #simulacion modelo specific <- c(rep(1,j[3])) modelos<-lapply(resp.500.60.1.5.07.2p, function(x) bfactor(as.data.frame(x), specific,quadpts = 10)) for (i in 1:it) { ax[i]<-modelos[[i]]@ OptimInfo$converged } bf.500.60.1.5.07.2p<-modelos[ax] #error cuadratico medio del parametro de dificultad ecm.dif.500.60.1.5.07.2p.l<-lapply(bf.500.60.1.5.07.2p, function(x) ((MDIFF(x)-b)^2)) ecm.dif.500.60.1.5.07.2p<-matrix(unlist(ecm.dif.500.60.1.5.07.2p.l),nrow = j[3],ncol=length(modelos[ax])) #error cuadratico medio del parametro de discriminacion ecm.dis.500.60.1.5.07.2p.l<-lapply(bf.500.60.1.5.07.2p, function(x) ((MDISC(x)-a)^2)) ecm.dis.500.60.1.5.07.2p<-matrix(unlist(ecm.dis.500.60.1.5.07.2p.l),nrow = j[3],ncol=length(modelos[ax])) e.dis.500.60.1.5.07<-apply(ecm.dis.500.60.1.5.07.2p, 1, function(x) sqrt(mean(x))) e.dif.500.60.1.5.07<-apply(ecm.dif.500.60.1.5.07.2p, 1, function(x) sqrt(mean(x))) e.500.60.1.5.07.2p<-c(discriminacion=mean(e.dis.500.60.1.5.07),dificultad=mean(e.dif.500.60.1.5.07)) ##N:1000,j:60,b:1.5,a:0.7 ##1000.60.1.5.07 prob.1000.60.1.5.07.2p=list() resp.1000.60.1.5.07.2p=list() for(i in 1:it){mod=modelopar2.1(habilidad[[2]][,i],b=b,a=a,j=j[3]) prob.1000.60.1.5.07.2p[[i]]=mod$probabilidad;resp.1000.60.1.5.07.2p[[i]]=mod$respuestas} #simulacion modelo specific <- c(rep(1,j[3])) modelos<-lapply(resp.1000.60.1.5.07.2p, function(x) bfactor(as.data.frame(x), specific,quadpts = 10)) for (i in 1:it) { ax[i]<-modelos[[i]]@ OptimInfo$converged } bf.1000.60.1.5.07.2p<-modelos[ax] #error cuadratico medio del parametro de dificultad ecm.dif.1000.60.1.5.07.2p.l<-lapply(bf.1000.60.1.5.07.2p, function(x) ((MDIFF(x)-b)^2)) ecm.dif.1000.60.1.5.07.2p<-matrix(unlist(ecm.dif.1000.60.1.5.07.2p.l),nrow = j[3],ncol=length(modelos[ax])) #error cuadratico medio del parametro de discriminacion ecm.dis.1000.60.1.5.07.2p.l<-lapply(bf.1000.60.1.5.07.2p, function(x) ((MDISC(x)-a)^2)) ecm.dis.1000.60.1.5.07.2p<-matrix(unlist(ecm.dis.1000.60.1.5.07.2p.l),nrow = j[3],ncol=length(modelos[ax])) e.dis.1000.60.1.5.07<-apply(ecm.dis.1000.60.1.5.07.2p, 1, function(x) sqrt(mean(x))) e.dif.1000.60.1.5.07<-apply(ecm.dif.1000.60.1.5.07.2p, 1, function(x) sqrt(mean(x))) e.1000.60.1.5.07.2p<-c(discriminacion=mean(e.dis.1000.60.1.5.07),dificultad=mean(e.dif.1000.60.1.5.07)) ##N:2000,j:60,b:1.5,a:0.7 ##2000.60.1.5.07 prob.2000.60.1.5.07.2p=list() resp.2000.60.1.5.07.2p=list() for(i in 1:it){mod=modelopar2.1(habilidad[[3]][,i],b=b,a=a,j=j[3]) prob.2000.60.1.5.07.2p[[i]]=mod$probabilidad;resp.2000.60.1.5.07.2p[[i]]=mod$respuestas} #simulacion modelo specific <- c(rep(1,j[3])) modelos<-lapply(resp.2000.60.1.5.07.2p, function(x) bfactor(as.data.frame(x), specific,quadpts = 10)) 38 for (i in 1:it) { ax[i]<-modelos[[i]]@ OptimInfo$converged } bf.2000.60.1.5.07.2p<-modelos[ax] #error cuadratico medio del parametro de dificultad ecm.dif.2000.60.1.5.07.2p.l<-lapply(bf.2000.60.1.5.07.2p, function(x) ((MDIFF(x)-b)^2)) ecm.dif.2000.60.1.5.07.2p<-matrix(unlist(ecm.dif.2000.60.1.5.07.2p.l),nrow = j[3],ncol=length(modelos[ax])) #error cuadratico medio del parametro de discriminacion ecm.dis.2000.60.1.5.07.2p.l<-lapply(bf.2000.60.1.5.07.2p, function(x) ((MDISC(x)-a)^2)) ecm.dis.2000.60.1.5.07.2p<-matrix(unlist(ecm.dis.2000.60.1.5.07.2p.l),nrow = j[3],ncol=length(modelos[ax])) e.dis.2000.60.1.5.07<-apply(ecm.dis.2000.60.1.5.07.2p, 1, function(x) sqrt(mean(x))) e.dif.2000.60.1.5.07<-apply(ecm.dif.2000.60.1.5.07.2p, 1, function(x) sqrt(mean(x))) e.2000.60.1.5.07.2p<-c(discriminacion=mean(e.dis.2000.60.1.5.07),dificultad=mean(e.dif.2000.60.1.5.07)) e.500.60.1.5.07.2p e.1000.60.1.5.07.2p e.2000.60.1.5.07.2p #variando el tamaño de muestra ecm.1.5.07.2p<-data.frame(rbind(c(e.500.15.1.5.07.2p,n=500,item=15) ,c(e.1000.15.1.5.07.2p,n=1000,item=15) ,c(e.2000.15.1.5.07.2p,n=2000,item=15) ,c(e.500.30.1.5.07.2p,n=500,item=30) ,c(e.1000.30.1.5.07.2p,n=1000,item=30) ,c(e.2000.30.1.5.07.2p,n=2000,item=30) ,c(e.500.60.1.5.07.2p,n=500,item=60) ,c(e.1000.60.1.5.07.2p,n=1000,item=60) ,c(e.2000.60.1.5.07.2p,n=2000,item=60))) ecm.1.5.07.2p ecm.1.5.07.2p$N<-as.character(ecm.1.5.07.2p$n) ecm.1.5.07.2p$Item<-as.character(ecm.1.5.07.2p$item) save(ecm.1.5.07.2p,file = "ecm.1.5.07.2p.Rdata") proc.time() - t 7.2 Simulación del modelo bifactor en datos bajo una estructura de multinivel t <- proc.time() library(dplyr) library(mirt) library(ggplot2) modelobif=function(zg,z1,z2,ag,a1,a2,j,n){ prob<-matrix(NA,ncol = j,nrow = n) estructura<-cbind(rep(ag,j),c(rep(a1,j-round(j/2)),rep(0,round(j/2))),c(rep(0,j-round(j/2)),rep(a2,round(j/2)))) for(i in 1:j){prob[,i]<-1/(1+exp(-(estructura[i,1]*zg+estructura[i,2]*z1+estructura[i,3]*z2+rnorm(n,0,1))))} res=apply(prob, c(1,2), function(x) rbinom(1,1,x)) result=list(probabilidad=prob,respuestas=res,estructura=estructura);return(result)} n<-c(500,1000,2000) it<-100 j<-c(15,30,60) ag<-1.5 a1<-0.3 a2<-0.5 ax<-NA 39 zg<-lapply(n,function(x) replicate(it,rnorm(x,0,1))) z1<-lapply(n,function(x) replicate(it,rnorm(x,0,1))) z2<-lapply(n,function(x) replicate(it,rnorm(x,0,1))) ########################################################################## #--poblacion con modelo de 2 parametros--# #N:500,j:15,ag:1.5,a1:0.3,a2:0.5 prob.500.15.1.bif=list() resp.500.15.1.bif=list() for(i in 1:it){ mod<-modelobif(zg=zg[[1]][,i],z1=z1[[1]][,i],z2=z2[[1]][,i],ag=ag,a1=a1,a2=a2,j[1],n[1]) prob.500.15.1.bif[[i]]=mod$probabilidad resp.500.15.1.bif[[i]]=mod$respuestas} #simulacion modelo specific.15 <- c(rep(1,j[1]-round(j[1]/2)),rep(2,round(j[1]/2))) modelos<-lapply(resp.500.15.1.bif, function(x) bfactor(as.data.frame(x), specific.15,quadpts = 10)) for (i in 1:it) { ax[i]<-modelos[[i]]@ OptimInfo$converged } bf.500.15.1.bif<-modelos[ax] #error cuadratico medio del parametro de efecto general #coef(simmod, simplify=TRUE) ecm.eg.500.15.1.bif<-lapply(bf.500.15.1.bif, function(x) ((coef(x, simplify=TRUE)$items[,1]-ag)^2)) ecm.eg.500.15.2.bif<-matrix(unlist(ecm.eg.500.15.1.bif),nrow = j[1],ncol=length(modelos[ax])) e.eg.500.15.2.bif<-apply(ecm.eg.500.15.2.bif, 1, function(x) sqrt(mean(x))) mean(e.eg.500.15.2.bif) ecm.e1.500.15.1.bif<-lapply(bf.500.15.1.bif, function(x) ((coef(x, simplify=TRUE)$items[,2]-a1)^2)) ecm.e1.500.15.2.bif<-matrix(unlist(ecm.e1.500.15.1.bif),nrow = j[1],ncol=length(modelos[ax])) e.e1.500.15.2.bif<-apply(ecm.e1.500.15.2.bif[c(1:(j[1]-round(j[1]/2))),], 1, function(x) sqrt(mean(x))) mean(e.e1.500.15.2.bif) ecm.e2.500.15.1.bif<-lapply(bf.500.15.1.bif, function(x) ((coef(x, simplify=TRUE)$items[,3]-a2)^2)) ecm.e2.500.15.2.bif<-matrix(unlist(ecm.e2.500.15.1.bif),nrow = j[1],ncol=length(modelos[ax])) e.e2.500.15.2.bif<-apply(ecm.e2.500.15.2.bif[c((j[1]-round(j[1]/2)+1):j[1]),], 1, function(x) sqrt(mean(x))) mean(e.e2.500.15.2.bif) e.500.15.1.bif<-c(general=mean(e.eg.500.15.2.bif),primer=mean(e.e1.500.15.2.bif),segundo=mean(e.e2.500.15.2.bif));e .500.15.1.bif #N:1000,j:15,ag:1.5,a1:0.3,a2:0.5 prob.1000.15.1.bif=list() resp.1000.15.1.bif=list() for(i in 1:it){ mod<-modelobif(zg=zg[[2]][,i],z1=z1[[2]][,i],z2=z2[[2]][,i],ag=ag,a1=a1,a2=a2,j[1],n[2]) prob.1000.15.1.bif[[i]]=mod$probabilidad resp.1000.15.1.bif[[i]]=mod$respuestas} #simulacion modelo specific.15 <- c(rep(1,j[1]-round(j[1]/2)),rep(2,round(j[1]/2))) modelos<-lapply(resp.1000.15.1.bif, function(x) bfactor(as.data.frame(x), specific.15,quadpts = 10)) 40 for (i in 1:it) { ax[i]<-modelos[[i]]@ OptimInfo$converged } bf.1000.15.1.bif<-modelos[ax] #error cuadratico medio del parametro de efecto general #coef(simmod, simplify=TRUE) ecm.eg.1000.15.1.bif<-lapply(bf.1000.15.1.bif, function(x) ((coef(x, simplify=TRUE)$items[,1]-ag)^2)) ecm.eg.1000.15.2.bif<-matrix(unlist(ecm.eg.1000.15.1.bif),nrow = j[1],ncol=length(modelos[ax])) e.eg.1000.15.2.bif<-apply(ecm.eg.1000.15.2.bif,1, function(x) sqrt(mean(x))) mean(e.eg.1000.15.2.bif) ecm.e1.1000.15.1.bif<-lapply(bf.1000.15.1.bif, function(x) ((coef(x, simplify=TRUE)$items[,2]-a1)^2)) ecm.e1.1000.15.2.bif<-matrix(unlist(ecm.e1.1000.15.1.bif),nrow = j[1],ncol=length(modelos[ax])) e.e1.1000.15.2.bif<-apply(ecm.e1.1000.15.2.bif[c(1:(j[1]-round(j[1]/2))),],1, function(x) sqrt(mean(x))) mean(e.e1.1000.15.2.bif) ecm.e2.1000.15.1.bif<-lapply(bf.1000.15.1.bif, function(x) ((coef(x, simplify=TRUE)$items[,3]-a2)^2)) ecm.e2.1000.15.2.bif<-matrix(unlist(ecm.e2.1000.15.1.bif),nrow = j[1],ncol=length(modelos[ax])) e.e2.1000.15.2.bif<-apply(ecm.e2.1000.15.2.bif[c((j[1]-round(j[1]/2)+1):j[1]),],1, function(x) sqrt(mean(x))) mean(e.e2.1000.15.2.bif) e.1000.15.1.bif<-c(general=mean(e.eg.1000.15.2.bif),primer=mean(e.e1.1000.15.2.bif),segundo=mean(e.e2.1000.15.2.b if));e.1000.15.1.bif #N:2000,j:15,ag:1.5,a1:0.3,a2:0.5 prob.2000.15.1.bif=list() resp.2000.15.1.bif=list() for(i in 1:it){ mod<-modelobif(zg=zg[[3]][,i],z1=z1[[3]][,i],z2=z2[[3]][,i],ag=ag,a1=a1,a2=a2,j[1],n[3]) prob.2000.15.1.bif[[i]]=mod$probabilidad resp.2000.15.1.bif[[i]]=mod$respuestas} #simulacion modelo specific.15 <- c(rep(1,j[1]-round(j[1]/2)),rep(2,round(j[1]/2))) modelos<-lapply(resp.2000.15.1.bif, function(x) bfactor(as.data.frame(x), specific.15,quadpts = 10)) for (i in 1:it) { ax[i]<-modelos[[i]]@ OptimInfo$converged } bf.2000.15.1.bif<-modelos[ax] #error cuadratico medio del parametro de efecto general #coef(simmod, simplify=TRUE) ecm.eg.2000.15.1.bif<-lapply(bf.2000.15.1.bif, function(x) ((coef(x, simplify=TRUE)$items[,1]-ag)^2)) ecm.eg.2000.15.2.bif<-matrix(unlist(ecm.eg.2000.15.1.bif),nrow = j[1],ncol=length(modelos[ax])) e.eg.2000.15.2.bif<-apply(ecm.eg.2000.15.2.bif,1, function(x) sqrt(mean(x))) mean(e.eg.2000.15.2.bif) ecm.e1.2000.15.1.bif<-lapply(bf.2000.15.1.bif, function(x) ((coef(x, simplify=TRUE)$items[,2]-a1)^2)) ecm.e1.2000.15.2.bif<-matrix(unlist(ecm.e1.2000.15.1.bif),nrow = j[1],ncol=length(modelos[ax])) e.e1.2000.15.2.bif<-apply(ecm.e1.2000.15.2.bif[c(1:(j[1]-round(j[1]/2))),],1, function(x) sqrt(mean(x))) mean(e.e1.2000.15.2.bif) ecm.e2.2000.15.1.bif<-lapply(bf.2000.15.1.bif, function(x) ((coef(x, simplify=TRUE)$items[,3]-a2)^2)) ecm.e2.2000.15.2.bif<-matrix(unlist(ecm.e2.2000.15.1.bif),nrow = j[1],ncol=length(modelos[ax])) e.e2.2000.15.2.bif<-apply(ecm.e2.2000.15.2.bif[c((j[1]-round(j[1]/2)+1):j[1]),],1, function(x) sqrt(mean(x))) 41 mean(e.e2.2000.15.2.bif) e.2000.15.1.bif<-c(general=mean(e.eg.2000.15.2.bif),primer=mean(e.e1.2000.15.2.bif),segundo=mean(e.e2.2000.15.2.b if));e.2000.15.1.bif #N:500,j:30,ag:1.5,a1:0.3,a2:0.5 prob.500.30.1.bif=list() resp.500.30.1.bif=list() for(i in 1:it){ mod<-modelobif(zg=zg[[1]][,i],z1=z1[[1]][,i],z2=z2[[1]][,i],ag=ag,a1=a1,a2=a2,j[2],n[1]) prob.500.30.1.bif[[i]]=mod$probabilidad resp.500.30.1.bif[[i]]=mod$respuestas} #simulacion modelo specific.30 <- c(rep(1,j[2]-round(j[2]/2)),rep(2,round(j[2]/2))) modelos<-lapply(resp.500.30.1.bif, function(x) bfactor(as.data.frame(x), specific.30,quadpts = 10)) for (i in 1:it) { ax[i]<-modelos[[i]]@ OptimInfo$converged } bf.500.30.1.bif<-modelos[ax] #error cuadratico medio del parametro de efecto general #coef(simmod, simplify=TRUE) ecm.eg.500.30.1.bif<-lapply(bf.500.30.1.bif, function(x) ((coef(x, simplify=TRUE)$items[,1]-ag)^2)) ecm.eg.500.30.2.bif<-matrix(unlist(ecm.eg.500.30.1.bif),nrow = j[2],ncol=length(modelos[ax])) e.eg.500.30.2.bif<-apply(ecm.eg.500.30.2.bif,1, function(x) sqrt(mean(x))) mean(e.eg.500.30.2.bif) ecm.e1.500.30.1.bif<-lapply(bf.500.30.1.bif, function(x) ((coef(x, simplify=TRUE)$items[,2]-a1)^2)) ecm.e1.500.30.2.bif<-matrix(unlist(ecm.e1.500.30.1.bif),nrow = j[2],ncol=length(modelos[ax])) e.e1.500.30.2.bif<-apply(ecm.e1.500.30.2.bif[c(1:(j[2]-round(j[2]/2))),],1, function(x) sqrt(mean(x))) mean(e.e1.500.30.2.bif) ecm.e2.500.30.1.bif<-lapply(bf.500.30.1.bif, function(x) ((coef(x, simplify=TRUE)$items[,3]-a2)^2)) ecm.e2.500.30.2.bif<-matrix(unlist(ecm.e2.500.30.1.bif),nrow = j[2],ncol=length(modelos[ax])) e.e2.500.30.2.bif<-apply(ecm.e2.500.30.2.bif[c((j[2]-round(j[2]/2)+1):j[2]),],1, function(x) sqrt(mean(x))) mean(e.e2.500.30.2.bif) e.500.30.1.bif<-c(general=mean(e.eg.500.30.2.bif),primer=mean(e.e1.500.30.2.bif),segundo=mean(e.e2.500.30.2.bif));e .500.30.1.bif #N:1000,j:30,ag:1.5,a1:0.3,a2:0.5 prob.1000.30.1.bif=list() resp.1000.30.1.bif=list() for(i in 1:it){ mod<-modelobif(zg=zg[[2]][,i],z1=z1[[2]][,i],z2=z2[[2]][,i],ag=ag,a1=a1,a2=a2,j[2],n[2]) prob.1000.30.1.bif[[i]]=mod$probabilidad resp.1000.30.1.bif[[i]]=mod$respuestas} #simulacion modelo specific.30 <- c(rep(1,j[2]-round(j[2]/2)),rep(2,round(j[2]/2))) modelos<-lapply(resp.1000.30.1.bif, function(x) bfactor(as.data.frame(x), specific.30,quadpts = 10)) for (i in 1:it) { 42 ax[i]<-modelos[[i]]@ OptimInfo$converged } bf.1000.30.1.bif<-modelos[ax] #error cuadratico medio del parametro de efecto general #coef(simmod, simplify=TRUE) ecm.eg.1000.30.1.bif<-lapply(bf.1000.30.1.bif, function(x) ((coef(x, simplify=TRUE)$items[,1]-ag)^2)) ecm.eg.1000.30.2.bif<-matrix(unlist(ecm.eg.1000.30.1.bif),nrow = j[2],ncol=length(modelos[ax])) e.eg.1000.30.2.bif<-apply(ecm.eg.1000.30.2.bif,1, function(x) sqrt(mean(x))) mean(e.eg.1000.30.2.bif) ecm.e1.1000.30.1.bif<-lapply(bf.1000.30.1.bif, function(x) ((coef(x, simplify=TRUE)$items[,2]-a1)^2)) ecm.e1.1000.30.2.bif<-matrix(unlist(ecm.e1.1000.30.1.bif),nrow = j[2],ncol=length(modelos[ax])) e.e1.1000.30.2.bif<-apply(ecm.e1.1000.30.2.bif[c(1:(j[2]-round(j[2]/2))),],1, function(x) sqrt(mean(x))) mean(e.e1.1000.30.2.bif) ecm.e2.1000.30.1.bif<-lapply(bf.1000.30.1.bif, function(x) ((coef(x, simplify=TRUE)$items[,3]-a2)^2)) ecm.e2.1000.30.2.bif<-matrix(unlist(ecm.e2.1000.30.1.bif),nrow = j[2],ncol=length(modelos[ax])) e.e2.1000.30.2.bif<-apply(ecm.e2.1000.30.2.bif[c((j[2]-round(j[2]/2)+1):j[2]),],1, function(x) sqrt(mean(x))) mean(e.e2.1000.30.2.bif) e.1000.30.1.bif<-c(general=mean(e.eg.1000.30.2.bif),primer=mean(e.e1.1000.30.2.bif),segundo=mean(e.e2.1000.30.2.b if));e.1000.30.1.bif #N:2000,j:30,ag:1.5,a1:0.3,a2:0.5 prob.2000.30.1.bif=list() resp.2000.30.1.bif=list() for(i in 1:it){ mod<-modelobif(zg=zg[[3]][,i],z1=z1[[3]][,i],z2=z2[[3]][,i],ag=ag,a1=a1,a2=a2,j[2],n[3]) prob.2000.30.1.bif[[i]]=mod$probabilidad resp.2000.30.1.bif[[i]]=mod$respuestas} #simulacion modelo specific.30 <- c(rep(1,j[2]-round(j[2]/2)),rep(2,round(j[2]/2))) modelos<-lapply(resp.2000.30.1.bif, function(x) bfactor(as.data.frame(x), specific.30,quadpts = 10)) for (i in 1:it) { ax[i]<-modelos[[i]]@ OptimInfo$converged } bf.2000.30.1.bif<-modelos[ax] #error cuadratico medio del parametro de efecto general #coef(simmod, simplify=TRUE) ecm.eg.2000.30.1.bif<-lapply(bf.2000.30.1.bif, function(x) ((coef(x, simplify=TRUE)$items[,1]-ag)^2)) ecm.eg.2000.30.2.bif<-matrix(unlist(ecm.eg.2000.30.1.bif),nrow = j[2],ncol=length(modelos[ax])) e.eg.2000.30.2.bif<-apply(ecm.eg.2000.30.2.bif,1, function(x) sqrt(mean(x))) mean(e.eg.2000.30.2.bif) ecm.e1.2000.30.1.bif<-lapply(bf.2000.30.1.bif, function(x) ((coef(x, simplify=TRUE)$items[,2]-a1)^2)) ecm.e1.2000.30.2.bif<-matrix(unlist(ecm.e1.2000.30.1.bif),nrow = j[2],ncol=length(modelos[ax])) e.e1.2000.30.2.bif<-apply(ecm.e1.2000.30.2.bif[c(1:(j[2]-round(j[2]/2))),],1, function(x) sqrt(mean(x))) mean(e.e1.2000.30.2.bif) ecm.e2.2000.30.1.bif<-lapply(bf.2000.30.1.bif, function(x) ((coef(x, simplify=TRUE)$items[,3]-a2)^2)) ecm.e2.2000.30.2.bif<-matrix(unlist(ecm.e2.2000.30.1.bif),nrow = j[2],ncol=length(modelos[ax])) e