Wolfram Language

Umfassenderer Zugang zur Knowledgebase

Stipendien der National Science Foundation

Die US National Science Foundation (NSF) hat 2015 fast 12.000 Stipendien vergeben. In diesem Beispiel werden Stipendien, Forscher und die Institutionen, denen sie angehören, analysiert mithilfe von Daten, die von www.nsf.gov/awardsearch/download.jsp bezogen werden. Sie können sich einen Entity-Store mit diesen Daten als ResourceObject herunterladen und anschließend die Verteilung von Stipendienhöhe, quantitativen und qualitativen Eigenschaften der eingereichten Projekte und Stipendien sowie die geographische Verteilung der involvierten Institutionen untersuchen.

Laden Sie als ersten Schritt einen Entity-Store mit den NSF-Daten aus einem ResourceObject.

In[1]:=
Click for copyable input
nsfStore = ResourceData[ ResourceObject[ Association[ "Name" -> "National Science Foundation Grants - 2015", "UUID" -> "0e9655df-86b6-4e20-bcc9-87365562357b", "ResourceType" -> "DataResource", "Version" -> "1.0.0", "Description" -> "Data on National Science Foundation grants (and \ associated investigators and institutions) awarded in the the year \ 2015.", "ContentSize" -> Quantity[0, "Bytes"], "ContentElements" -> {"EntityStore"}]]]
Out[1]=

Registrieren Sie den Store für diese Sitzung.

In[2]:=
Click for copyable input
PrependTo[$EntityStores, nsfStore];

Sehen Sie sich mithilfe des "NSFGrant"-Entitätentyps aus dem Store die verfügbaren Eigenschaften von Stipendien an.

In[3]:=
Click for copyable input
EntityValue["NSFGrant", "Properties"]
Out[3]=

Rufen Sie Daten über ein zufällig augewähltes Stipendium ab.

Den kompletten Wolfram Language-Input zeigen
In[4]:=
Click for copyable input
TextGrid[List @@@ (RandomEntity["NSFGrant"]["PropertyAssociation"] // SortBy[#, ByteCount] & // Normal // Take[#, 16] &), Dividers -> All, Background -> {Automatic, {{LightBlue, None}}}] // TraditionalForm
Out[4]//TraditionalForm=

Plotten Sie die Verteilung der Stipendienhöhen.

In[5]:=
Click for copyable input
awardAmounts = EntityValue["NSFGrant", "AwardAmount"];
In[6]:=
Click for copyable input
Histogram[awardAmounts, ScalingFunctions -> {Identity, "Log"}, PlotRange -> All, AxesLabel -> Automatic]
Out[6]=

Zeigen Sie die drei höchsten Stipendien im Detail.

In[7]:=
Click for copyable input
EntityValue[ EntityClass["NSFGrant", "AwardAmount" -> TakeLargest[3]], "Dataset"]
Out[7]=

Untersuchen Sie die Gesamthöhe der Stipendien pro Abteilung.

Den kompletten Wolfram Language-Input zeigen
In[8]:=
Click for copyable input
TextGrid[SortBy[{#1, Total[#2[[All, -1]]]} & @@@ Normal[GroupBy[ EntityValue["NSFGrant", {"Directorate", "AwardAmount"}], First]], Last] // DeleteMissing[#, 1, 2] & // Reverse, Alignment -> {{Left, Decimal}, Automatic}, Dividers -> All, Background -> {Automatic, {{LightBlue, None}}}]
Out[8]=

Vergleichen Sie die Verteilung der ersten Ziffern der Dollar-Beträge mithilfe des Benfordschen Gesetzes.

Den kompletten Wolfram Language-Input zeigen
In[9]:=
Click for copyable input
With[{$s = QuantityMagnitude[ EntityValue["NSFGrant", EntityProperty["NSFGrant", "AwardAmount"]]]}, ListPlot[{Rest[Sort[Tally[IntegerDigits[#][[1]] & /@ $s]]], Table[{d, Length[$s] Log10[1 + 1/d]}, {d, 9}]}, Filling -> Axis, PlotLegends -> {"NSF grants", "Benford"}]]
Out[9]=

Erstellen Sie eine Schlagwortwolke der häufigsten Wörter in Mathematik-, Physik- und Chemiestipendien.

In[10]:=
Click for copyable input
keywords = EntityValue[EntityClass["NSFGrant", "Division" -> #], "KeywordTally"] & /@ {"Division Of Mathematical Sciences", "Division Of Physics", "Division Of Chemistry"};
In[11]:=
Click for copyable input
Row[WordCloud[ Merge[Association @@ (Rule @@@ #) & /@ DeleteMissing[#], Total]] & /@ keywords]
Out[11]=

Visualisieren Sie die NSF-Stipendien je nach Höhe und ZIP-Code (US-Postleitzahl).

Den kompletten Wolfram Language-Input zeigen
In[12]:=
Click for copyable input
amountsandinsts = EntityValue[ "NSFGrant", {EntityProperty["NSFGrant", "AwardAmount"], EntityProperty["NSFGrant", "Institution"]}];
In[13]:=
Click for copyable input
amountsinzips = (#[[1, 1]] -> Total[#[[All, -1]]]) & /@ Normal[GroupBy[Transpose[{EntityValue[ amountsandinsts[[All, -1]], EntityProperty["NSFInstitution", "ZIPCode"] ], amountsandinsts[[All, 1]]}], First]][[All, -1]];
In[14]:=
Click for copyable input
GeoRegionValuePlot[SortBy[amountsinzips, Last], ColorFunction -> ColorData["GreenPinkTones"], GeoRange -> Entity["Country", "UnitedStates"], PlotLegends -> Histogram]
Out[14]=

Verwandte Beispiele

en es fr ja ko pt-br ru zh