Stellen Sie sich Ihre Daten vor, bevor Sie sie erfassen.


Die Übersetzung wurde für Studenten des Kurses „Applied Analytics on R“ erstellt .




Als Datenwissenschaftler erhalten wir häufig einen Datensatz und werden gebeten, ihn zu verwenden, um Informationen zu erhalten. Wir verwenden R zum Verarbeiten, Visualisieren, Modellieren, Vorbereiten von Tabellen und Grafiken, um Ergebnisse auszutauschen oder zu veröffentlichen. Wenn wir die Daten auf diese Weise betrachten, spielt es keine Rolle, woher die Daten stammen. Die Stichprobengröße, der Satz von Merkmalen und ihre Skalen sind festgelegt. Die zum Sammeln oder Generieren von Daten verwendeten Verfahren sind jedoch äußerst wichtig für zukünftige Analysen sowie für die Qualität der Informationen, die wir letztendlich erhalten können. Der Datenerfassungsprozess beeinflusst, wie Daten analysiert werden sollen. Für Studien, die die Ursache messen, ist es wichtig, welche Daten berücksichtigt werden sollten und welche nicht.


Da diese Prozesse sehr wichtig sind, wollten wir ein Tool erstellen, mit dem Wissenschaftler und andere Forscher ihre Daten vor der Erfassung präsentieren (emulieren) können, damit Änderungen in der Datenerfassungsphase vorgenommen werden können, bevor es zu spät ist.


Wenn die Daten bereits erfasst wurden, können Sie sich das Tool vor der Analyse vorstellen. Wenn wir Entscheidungen über die Datenverarbeitung und -modellierung auf der Grundlage der Ergebnisse treffen, die wir aus den einzelnen Vorgängen erhalten, oder statistische Modelle verwenden, sind wir unwissentlich anfällig für Verzerrungen wie den „Garten divergierender Pfade“ oder P-Hacking , die uns möglicherweise dazu veranlassen, das Analyseverfahren zu wählen das wird das beste Ergebnis geben. Wir verwenden tatsächliche Daten, weil wir keine gute Alternative haben: Es gibt keine Daten mit derselben Struktur und denselben Merkmalen, die wir gesammelt haben.


In diesem Artikel wird das Fabricatr- Paket (aus der DeclareDesign-Paketsuite ) vorgestellt, dessen Aufgabe es ist, die Datenstruktur und die Funktionen zu modellieren. Lesen Sie eine DeclareDesign- Rezension zu RViews, in der die Philosophie beschrieben wird. Fabricatr hilft Ihnen dabei, über Ihre Daten nachzudenken, bevor Sie mit der Analyse oder Sammlung beginnen. Welche Art von Daten? Wie sind sie strukturiert? Welche Messungen werden Sie vornehmen? Was sind ihre Bereiche und wie korrelieren sie? Mit fabratr können Sie Dummy-Daten simulieren, bevor Sie echte Daten erfassen und verschiedene Bewertungsstrategien testen, ohne sich Gedanken über Änderungen Ihrer Annahmen machen zu müssen.


Stellen Sie sich Ihre Datenstruktur vor


Im einfachsten Fall erstellt Fabricatr eine einstufige Datenstruktur mit einer bestimmten Menge.


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. 

IDTEMP_FAHRENHEIT
00156.6
00246.3
00390,5
00475.1
00585.1
006102.8

Soziologische Daten sind oft hierarchisch . Zum Beispiel gibt es in Schulen Klassen, in Klassen gibt es Schüler. Mit dem Befehl add_level löst Fabricatr auch dieses Problem. Standardmäßig sind neue Ebenen in höheren Ebenen verschachtelt.


 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. 

SCHULEN_CLASSROOMSKLASSENZIMMERSTUDENT
11201001
11201002
11201003
11201004
11201005
11201006

In der realen Welt entstehen häufig unberechenbare, überlappende Hierarchien. Beispielsweise können Schülerdaten sowohl von der High School als auch von der High School abgerufen werden. In diesem Fall befinden sich die Schüler in zwei verschiedenen Schulen und diese Schulen sind nicht miteinander verbunden. Nachfolgend finden Sie ein Beispiel für die Erstellung solcher "Kreuz" -Daten. Der Parameter rho bestimmt, wie viel Primärrang und Zweitrang korrelieren sollen.


 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() 


Ebenso können Sie Längsschnittdaten über cross_levels generieren :


 fabricate( students = add_level(N = 2), years = add_level(N = 20, year = 1981:2000, nest = FALSE), student_year = cross_levels(by = join(students, years)) ) 

STUDENTENJAHREJahrSTUDENT_YEAR
101198101
201198102
102198203
202198204
103198305
203198306

Stellen Sie sich Ihre Zeichen vor


R verfügt über viele großartige Tools zur Funktionsmodellierung. In einigen Fällen sind die üblichen Variablentypen jedoch überraschend schwer zu modellieren. Fabricatr verfügt über eine kleine Anzahl von Funktionen mit einfacher Syntax zum Erstellen von Attributen mit häufig verwendeten Typen. Hier beschreiben wir zwei Beispiele, der Rest ist im Artikel .


Attribute mit Intraclass-Korrelation


Mit den oben beschriebenen Tools können Sie Daten erstellen, die blockinterne und blockübergreifende Variationen aufweisen, z. B. Variationen in Klassenzimmern und Variationen zwischen Klassenzimmern. In vielen Fällen ist es notwendig, den Grad der Intra-Class-Korrelation (ICC) genauer zu bestimmen. Hier helfen draw_normal_icc und draw_binary_icc .


 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 

Bestellte Ergebnisse


Wir haben auch Werkzeuge für diskrete Zufallsvariablen (einschließlich geordneter Ergebnisse). Wir nehmen eine latente Variable (z. B. test_ability ) und konvertieren sie in ein geordnetes Attribut ( 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() 


fabratr ist mit fast jeder R-Variablenerstellungsfunktion kompatibel. In diesem Artikel haben wir einige großartige R-Pakete beschrieben, die dazu beitragen, soziologische Attribute nachzuahmen.


Wohin als nächstes gehen


Dieser Artikel bietet einen allgemeinen Überblick über die Fabricatr- Funktionalität. Weitere Informationen finden Sie im Artikel Erste Schritte mit Fabricatr .


Sie können Fabricatr über CRAN installieren:


 install.packages("fabricatr") library(fabricatr) 



Hast du eine Frage? Schreiben Sie in die Kommentare!

Source: https://habr.com/ru/post/de460187/


All Articles