
La traducción fue preparada para los estudiantes del curso "Análisis aplicado en R" .
Nosotros, como científicos de datos, a menudo se nos da un conjunto de datos y se nos pide que lo usemos para obtener información. Usamos R para procesar, visualizar, modelar, preparar tablas y gráficos para compartir resultados o publicarlos. Si miramos los datos de esta manera, entonces no importa de dónde provienen los datos. El tamaño de la muestra, el conjunto de características y sus escalas son fijos. Sin embargo, los procedimientos utilizados para recopilar o generar datos son extremadamente importantes para futuros análisis, así como para la calidad de la información que finalmente podemos obtener. El proceso de recopilación de datos influye en cómo deben analizarse los datos. Para los estudios que miden la causalidad, es importante qué datos deben tenerse en cuenta y cuáles no.
Dado que estos procesos son muy importantes, queríamos crear una herramienta que ayudara a los científicos y otros investigadores a presentar (emular) sus datos antes de que se recopilen, de modo que cualquier cambio en la fase de recopilación de datos pueda realizarse antes de que sea demasiado tarde.
Si los datos ya están recopilados, la herramienta le permite imaginar sus datos antes de analizarlos. Cuando tomamos decisiones sobre el procesamiento y el modelado de datos en función de los resultados que obtenemos de cada operación, o utilizamos modelos estadísticos, somos, sin saberlo, vulnerables a sesgos como el "jardín de caminos divergentes" o piratería , lo que puede llevarnos a elegir el procedimiento de análisis. Lo que dará el mejor resultado. Utilizamos evidencia porque no tenemos una buena alternativa: no hay datos con la misma estructura y características que hemos recopilado.
Este artículo presenta el paquete fabricatr (del conjunto de paquetes DeclareDesign ), cuya función es modelar la estructura y las características de los datos. Vea una revisión de DeclareDesign en RViews que describe su filosofía. Fabricatr lo ayuda a pensar en sus datos antes de comenzar el análisis o incluso la recopilación. ¿Qué tipo de datos? ¿Cómo están estructurados? ¿Qué medidas tomarás? ¿Cuáles son sus rangos y cómo se correlacionan? fabricatr puede ayudarlo a simular datos ficticios antes de recopilar datos reales y probar varias estrategias de valoración sin preocuparse por cambiar sus suposiciones.
Imagina tu estructura de datos
En el caso más simple, el fabricante creará una estructura de datos de un solo nivel con una cantidad dada.
library(fabricatr) fabricate(N = 100, temp_fahrenheit = rnorm(N, mean = 80, sd = 20)) ## Warning: `is_lang()` is deprecated as of rlang 0.2.0. ## Please use `is_call()` instead. ## This warning is displayed once per session. ## Warning: `lang_name()` is deprecated as of rlang 0.2.0. ## Please use `call_name()` instead. ## This warning is displayed once per session.
Los datos sociológicos son a menudo jerárquicos . Por ejemplo, en las escuelas hay clases, en las clases hay estudiantes. Usando el comando add_level, fabricatr también resolverá este problema. Por defecto, los nuevos niveles están anidados en los niveles superiores.
library(fabricatr) fabricate( # five schools school = add_level(N = 5, n_classrooms = sample(10:15, N, replace = TRUE)), # 10 to 15 classrooms per school classroom = add_level(N = n_classrooms), # 15 students per classroom student = add_level(N = 15) ) ## Warning: `lang_modify()` is deprecated as of rlang 0.2.0. ## Please use `call_modify()` instead. ## This warning is displayed once per session.
En el mundo real, a menudo surgen jerarquías erráticas y superpuestas. Por ejemplo, los datos de los estudiantes se pueden obtener de la escuela secundaria y de la escuela secundaria. En este caso, los estudiantes estarán en dos escuelas diferentes y estas escuelas no estarán conectadas entre sí. A continuación se muestra un ejemplo de cómo hacer tales datos "cruzados". El parámetro rho determina cuánto se deben correlacionar primario_broma y segundo_broma .
dat <- fabricate( primary_schools = add_level(N = 5, primary_rank = 1:N), secondary_schools = add_level(N = 6, secondary_rank = 1:N, nest = FALSE), students = link_levels(N = 15, by = join(primary_rank, secondary_rank, rho = 0.9)) ) ## `link_levels()` calls are faster if the `mvnfast` package is installed. ggplot(dat, aes(primary_rank, secondary_rank)) + geom_point(position = position_jitter(width = 0.1, height = 0.1), alpha = 0.5) + theme_bw()

Del mismo modo, puede generar datos longitudinales a través de cross_levels :
fabricate( students = add_level(N = 2), years = add_level(N = 20, year = 1981:2000, nest = FALSE), student_year = cross_levels(by = join(students, years)) )
Imagina tus signos
R tiene muchas excelentes herramientas de modelado de características. Sin embargo, en algunos casos, los tipos habituales de variables son sorprendentemente difíciles de modelar. Fabricatr tiene una pequeña cantidad de funciones con sintaxis simple para crear atributos con tipos de uso común. Aquí describimos dos ejemplos, el resto está en el artículo .
Atributos con correlación intraclase
Con las herramientas descritas anteriormente, puede crear datos que tengan variaciones intrabloque e interbloque, por ejemplo, variaciones en las aulas y variaciones entre aulas. En muchos casos, es necesario establecer con mayor precisión el nivel de correlación intraclase (ICC). Aquí draw_normal_icc y draw_binary_icc ayudarán.
dat <- fabricate( N = 1000, clusters = sample(LETTERS, N, replace = TRUE), Y1 = draw_normal_icc(clusters = clusters, ICC = .2), Y2 = draw_binary_icc(clusters = clusters, ICC = .2) ) ICC::ICCbare(clusters, Y1, dat) ## [1] 0.09726701 ICC::ICCbare(clusters, Y2, dat) ## [1] 0.176036
Resultados ordenados
También tenemos herramientas para variables aleatorias discretas (incluidos los resultados ordenados). Tomamos una variable latente (por ejemplo, test_ability ) y la convertimos en un atributo ordenado ( test_score ).
dat <- fabricate( N = 100, test_ability = rnorm(N), test_score = draw_ordered(test_ability, breaks = c(-.5, 0, .5)) ) ggplot(dat, aes(test_ability, test_score)) + geom_point() + theme_bw()

fabricatr es compatible con casi cualquier función de creación de variables R. En este artículo, hemos descrito algunos paquetes R increíbles que ayudan a imitar los atributos relacionados con la sociología.
A donde ir ahora
Este artículo es una descripción general de alto nivel de la funcionalidad del fabricante . Para una mirada más profunda, vea el artículo Introducción a la fabricación .
Puede instalar fabricatr a través de CRAN:
install.packages("fabricatr") library(fabricatr)
Tiene una pregunta Escribe en los comentarios!