Kürzlich gab es in der Zeitschrift Science einen Artikel mit dem Titel „Eine Vielzahl öffentlicher Lebensläufe enthüllt die am weitesten wandernden Wissenschaftler der Welt“, in dem Statistiken über Wissenschaftler, die von Land zu Land ziehen, auf der Grundlage öffentlicher Daten aus dem Orcid- System angezeigt wurden. Alle für den Artikel verwendeten Daten wurden auch öffentlich zugänglich gemacht, und ich beschloss zu untersuchen, wo sich Wissenschaftler aus Russland im Allgemeinen und aus meiner Heimat PhysTech im Besonderen zerstreuten.
Einführung
Das Orcid-System (Open Researcher and Contributor ID) ist eine gemeinnützige Organisation, die für das freiwillige obligatorische System zur Identifizierung von Autoren wissenschaftlicher Veröffentlichungen verantwortlich ist, das 2012 erstellt wurde. Die Idee ist, dass Wissenschaftler, die an der Veröffentlichung wissenschaftlicher Artikel teilnehmen, unabhängig voneinander ein Konto erstellen können, mit dem sie eindeutig identifiziert werden und die Personen bei der Berechnung verschiedener Metriken (z. B. des Hirsch-Index) korrekt identifiziert werden können.
Interessanterweise sind alle Quelldaten offen, oder orcid veröffentlicht für den freien Zugriff ein vollständiges Archiv aller Lebensläufe, die für den öffentlichen Zugriff im JSON-Format verfügbar sind. Und mit der ganzen Geschichte der Veränderungen. Das heißt zum Beispiel, dass der bedingte Ivan Ivanovich Ivanov im System angegeben hat, dass er das MIT im Jahr 2000 abgeschlossen hat, dann ein Doktorand in Stanford war und dann seinen Job an der Moskauer Shinoliteyny-Universität aufgegeben hat, dann isst und merkt sich das System im Grunde alles. Das heißt, im Moment stört sich niemand daran, gefälschte Konten zu erstellen, aber viele wissenschaftliche Zeitschriften verlangen bereits ORCID für die Veröffentlichung von Artikeln, sodass davon ausgegangen wird, dass die meisten Konten im System mit guten Absichten erstellt werden.
Zum Zeitpunkt der Veröffentlichung des Artikels in Science gab es in der offenen Orcid-Datenbank Informationen zur Zusammenfassung von ungefähr 3 Millionen Wissenschaftlern auf der ganzen Welt. Die Autoren des Artikels in Science schreiben, dass verschiedene Länder vollständiger vertreten sind (im Vergleich zu Unesco-Statistiken über die Anzahl der Wissenschaftler), und es gibt eine spürbare Tendenz gegenüber Wissenschaftlern, die kürzlich die Graduiertenschule abgeschlossen haben.
Trotz alledem ist dies die umfassendste öffentlich zugängliche Datenbank von Wissenschaftlern und ihren Bewegungen. Im ursprünglichen Artikel teilten die Autoren einfach die ganze Welt in 8 Regionen ein (EU mit Ausnahme von Großbritannien, Großbritannien, den Vereinigten Staaten, Asien, Amerika mit Ausnahme der USA, Australien und Ozeanien, Europa mit Ausnahme der EU und Afrika) und berechneten Statistiken darüber, wie viele Wissenschaftler ihren Wohnort geändert haben Nach dem Abitur und wo sie später hingegangen sind. Sie können sehen, wo jetzt Wissenschaftler leben, die an russischen Universitäten studiert haben, einschließlich. Da jedoch alle Quelldaten öffentlich verfügbar sind, können diejenigen, die dies wünschen, ihre Neugierde unabhängig befriedigen, was ich auch getan habe.
Daten importieren
Ich habe mich entschlossen, die Datenbank nach der ersten Verarbeitung von json nach .csv in SQLite zu importieren, um das Schreiben von Abfragen zu vereinfachen: Ich habe die Datei ORCID_migrations_2016_12_16.csv (1988114 Einträge, 224 MB) hochgeladen:
CodeCREATE TABLE migration(dummy,orcid_id,country,organization_name,Ringgold_id,start_year,end_year,affiliation_type,affiliation_role,is_phd); .import ORCID_migrations_2016_12_16.csv migration
In dieser Tabelle entspricht jede Zeile einem Arbeits- oder Studienort einer Person. Ich habe eine separate Tabelle aller Personen mit Informationen darüber erstellt, in welchem Land und in welchem Jahr sie das letzte Mal studiert haben, und eine weitere Tabelle mit Informationen darüber, wo sie sich jetzt befinden:
create table person_last_education(orcid_id,country,graduated,is_phd); insert into person_last_education(orcid_id,country,graduated,is_phd) select p.orcid_id, m.country, m.end_year, m.is_phd from person as p, migration as m where m.orcid_id=p.orcid_id and m.affiliation_type='EDUCATION' ; create table person_last_location(orcid_id,country);
Es stellte sich heraus, dass die Datenbank Daten zu 1096745 Absolventen auf der ganzen Welt enthält, von denen 321083 promoviert wurden.
Daten verarbeiten
Wir zählen Statistiken für die zehn am häufigsten vertretenen Länder und zeichnen mit ggplot ein Diagramm.
Code library(DBI) migration <- dbConnect(RSQLite::SQLite(), "orcid_2016.sqlite3") by_country<-dbGetQuery(migration, 'select country,count(*) from person_last_education group by 1 order by 2 desc limit 10') ggplot(by_country,aes(x=country,y=`count(*)`))+geom_col() by_country_phd<-dbGetQuery(migration, 'select country,count(*) from person_last_education where is_phd=1 group by 1 order by 2 desc limit 10') ggplot(by_country_phd,aes(x=country,y=`count(*)`))+geom_col()


Überraschung, Russland belegt weltweit den 10. Platz bei der Zahl der registrierten Absolventen, obwohl es nicht mit der Promotion unter die Top 10 der Absolventen kam.
Jetzt schauen wir, wo russische Wissenschaftler jetzt leben, und aus Gründen der Klarheit werden wir sie auf der Weltkarte zeigen und die Gesamtzahl der Absolventen normalisieren. Für eine bequemere Demonstration verwenden wir Plotly . Dies ist ein Paket, das die Erstellung interaktiver Diagramme erleichtert. Es kann lokal oder kostenlos mit Ihrem Server verwendet werden. Es bietet jedoch auch einen Hosting-Service. Eine kleine Anzahl von Diagrammen kann kostenlos veröffentlicht werden.
Wie macht man
Code create table person_last_location(orcid_id,country);
destination_by_country<-dbGetQuery(migration, "select l.country as destination, count(*) as count from person_last_education as o left join person_last_location as l on l.orcid_id=o.orcid_id where o.country='RU' and o.is_phd=1 group by 1") total_from_ru <- destination_by_country %>% summarize(n=sum(count)) fraction_remained <- destination_by_country %>% filter(destination=='RU') %>% mutate(frac=100*count/total_from_ru$n) destination_by_country_n <- destination_by_country %>% filter(destination!='RU') %>% mutate(frac=100*count/total_from_ru$n) p <- plot_geo(destination_by_country_n) %>% add_trace( z = ~frac, color = ~frac, colorscale = 'Bluered', text = ~COUNTRY, locations = ~destination3c, marker = list(line = list(color = toRGB("grey"), width = 0.5)) ) %>% colorbar(title = '', ticksuffix = '%') %>% layout( title = paste('PhD , ',fraction_remained$frac,'%'), geo = list( showframe = FALSE, showcoastlines = FALSE, projection = list(type = 'Mercator') ) ) api_create(p, filename = "phds_from_russia")
Interaktives Diagramm auf Plotly
Ebenso können Sie sehen, wo Wissenschaftler nach Russland kommen.
Interaktives Diagramm auf Plotly
Es gibt ein gewisses Ungleichgewicht, von dem 83% derjenigen, die einen Doktortitel (PhD) erhalten haben, in Russland geblieben sind, aber von allen russischen Wissenschaftlern haben 95% einen Abschluss in Russland erhalten. Dh mehr gegangen als angekommen. Mal sehen, wie es mit diesem Gleichgewicht auf der ganzen Welt läuft.
Code left_country<-dbGetQuery(migration, "select o.country as country,count(distinct o.orcid_id) as departed from person_last_education as o left join person_last_location as l on l.orcid_id=o.orcid_id where o.country!=l.country and o.is_phd=1 group by 1") arrived_to_country<-dbGetQuery(migration, "select l.country as country, count(distinct l.orcid_id) as arrived from person_last_education as o left join person_last_location as l on l.orcid_id=o.orcid_id where o.country!=l.country and o.is_phd=1 group by 1") by_country<-dbGetQuery(migration, 'select l.country as country, count(distinct l.orcid_id) as total from person_last_education as o left join person_last_location as l on l.orcid_id=o.orcid_id where o.is_phd=1 group by 1') balance_by_country <- by_country %>% left_join(left_country,by='country') %>% left_join(arrived_to_country,by='country') %>% mutate(arrived=ifelse(is.na(arrived),0,arrived),departed=ifelse(is.na(departed),0,departed)) %>% mutate(balance=round(100*(arrived-departed)/total,2)) %>% filter(total>10) %>% mutate(country3c=to_iso3c(country),country.ru=decode_ru(country)) p <- plot_geo(balance_by_country) %>% add_trace( z = ~balance, color = ~balance, colorscale = 'Bluered', text = ~country.ru, locations = ~country3c, marker = list(line = list(color = toRGB("grey"), width = 0.5)) ) %>% colorbar(title = '', ticksuffix = '%',limits=c(-100,100)) %>% layout( title = 'PhD (-)/', geo = list( showframe = FALSE, showcoastlines = TRUE, projection = list(type = 'Mercator') ) ) api_create(p, filename = "phds_balance")
Ich habe beschlossen, nur Länder zu zeigen, in denen die Gesamtzahl der promovierten Personen mehr als 10 beträgt. Höchstwahrscheinlich gibt es nur Personen, die das ORCID-System nicht aktiv nutzen.
Interaktives Diagramm auf Plotly
Es scheint, dass in vielen Industrieländern, insbesondere in Europa, Menschen die Graduiertenschule abschließen und irgendwo an einem unterentwickelten Ort arbeiten, der Wettbewerb mit lokalen Absolventen wahrscheinlich nicht so stark ist und es einfacher ist, eine Stelle an der Universität zu bekommen.
Wohin gingen die Sportschulen?
Ich musste ein bisschen an den Absolventen der Physik- und Technologieuniversität basteln, weil jeder den Namen seiner Heimatuniversität etwas anders angibt. Ich musste manuell in der Datenbank nach allem suchen, was wie MIPT aussieht, und ein Typenschild für die Korrespondenz erstellen. Und hier ist was passiert:
Interaktives Diagramm auf Plotly
Es scheint, dass die meisten physischen Techniker (wie ich) verschlüsselt sind und ihren Lebenslauf nicht auf orcid hochladen. Wir werden warten...
Entschuldigung
Alle Statistiken basieren auf den Daten, die Personen in die ORCID-Datenbank eingegeben und für den öffentlichen Zugriff verfügbar gemacht haben. Daher macht es keinen Sinn, etwas wie "Ah, es ist alles Müll - ich persönlich kenne die in Mexiko oder Brasilien lebende Sportabteilung" zu sagen. Wahrscheinlich hat er einfach keinen öffentlichen Lebenslauf über Orcid gemacht.
Alle Skripte werden auf github gehostet, siehe https://github.com/vfonov/sci_migration/blob/master/stats_db.R