
A tradução foi preparada para os alunos do curso "Applied Analytics on R" .
Nós, como cientistas de dados, geralmente recebemos um conjunto de dados e solicitá-lo a usá-lo para obter informações. Usamos R para processamento, visualização, modelagem, preparação de tabelas e gráficos para compartilhar resultados ou publicá-los. Se observarmos os dados dessa maneira, não importa de onde eles vieram. O tamanho da amostra, o conjunto de recursos e suas escalas são fixos. No entanto, os procedimentos usados para coletar ou gerar dados são extremamente importantes para análises futuras, bem como para a qualidade das informações que finalmente podemos obter. O processo de coleta de dados influencia como os dados devem ser analisados. Para estudos que medem a causalidade, é importante quais dados devem ser levados em consideração e quais não.
Como esses processos são muito importantes, queríamos criar uma ferramenta que ajudasse cientistas e outros pesquisadores a apresentar (emular) seus dados antes de serem coletados, para que quaisquer alterações na fase de coleta de dados possam ser feitas antes que seja tarde demais.
Se os dados já estiverem coletados, a ferramenta permitirá que você imagine seus dados antes de analisá-los. Quando tomamos decisões sobre processamento e modelagem de dados com base nos resultados que obtemos de cada operação ou usamos modelos estatísticos, somos inconscientemente vulneráveis a preconceitos como o “jardim de caminhos divergentes” ou p-hacking , o que pode nos levar a escolher o procedimento de análise o que dará o melhor resultado. Usamos dados reais porque não temos uma boa alternativa: não há dados com a mesma estrutura e características que coletamos.
Este artigo apresenta o pacote fabricatr (do pacote de pacotes DeclareDesign ), cuja função é modelar a estrutura e os recursos de dados. Veja uma revisão do DeclareDesign no RViews que descreve sua filosofia. O Fabricatr ajuda você a pensar em seus dados antes de iniciar a análise ou até a coleta. Que tipo de dados? Como eles estão estruturados? Que medidas você fará? Quais são os seus intervalos e como eles se correlacionam? O fabricatr pode ajudá-lo a simular dados fictícios antes de coletar dados reais e testar várias estratégias de avaliação sem se preocupar em alterar suas suposições.
Imagine sua estrutura de dados
No caso mais simples, o fabricatr criará uma estrutura de dados de nível único com uma quantidade especificada.
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.
Os dados sociológicos são frequentemente hierárquicos . Por exemplo, nas escolas há aulas, nas aulas há alunos. Usando o comando add_level, o fabricatr também resolverá esse problema. Por padrão, novos níveis são aninhados em níveis mais altos.
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.
No mundo real, hierarquias erráticas e sobrepostas freqüentemente surgem. Por exemplo, os dados do aluno podem ser obtidos no ensino médio e no ensino médio. Nesse caso, os alunos estarão em duas escolas diferentes e essas escolas não estarão conectadas entre si. Abaixo está um exemplo de como fazer esses dados "cruzados". O parâmetro rho determina quanto primary_rank e second_rank devem se correlacionar.
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()

Da mesma forma, você pode gerar dados longitudinais via 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)) )
Imagine seus sinais
O R possui muitas ferramentas de modelagem de recursos excelentes. No entanto, em alguns casos, os tipos usuais de variáveis são surpreendentemente difíceis de modelar. O Fabricatr possui um pequeno número de funções com sintaxe simples para criar atributos com os tipos mais usados. Aqui descrevemos dois exemplos, o restante está no artigo .
Atributos com correlação intraclasse
Usando as ferramentas descritas acima, você pode criar dados que tenham variações entre blocos e entre blocos, por exemplo, variações nas salas de aula e variações entre salas de aula. Em muitos casos, é necessário estabelecer com mais precisão o nível de correlação intra-classe (ICC). Aqui, draw_normal_icc e draw_binary_icc ajudarão.
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
Também temos ferramentas para variáveis aleatórias discretas (incluindo resultados ordenados). Pegamos uma variável latente (por exemplo, test_ability ) e a convertemos em um 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 é compatível com quase qualquer função de criação de variável R. Neste artigo, descrevemos alguns pacotes R impressionantes que ajudam a imitar atributos relacionados à sociologia.
Para onde ir a seguir
Este artigo é uma visão geral de alto nível da funcionalidade fabricatr . Para uma visão mais profunda, consulte o artigo Introdução ao fabricatr .
Você pode instalar fabricatr via CRAN:
install.packages("fabricatr") library(fabricatr)
Tem uma pergunta? Escreva nos comentários!