{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Overview\n", "\n", "Networks (a.k.a. graphs) are widely used mathematical objects for representing and analysing social systems. \n", "This week is about getting familiar with networks, and we'll focus on four main aspects:\n", "\n", "* Basic mathematical description of networks\n", "* The `NetworkX` library.\n", "* Building the network of Computational Social Scientists.\n", "* Basic analysis of the network of Computational Social Scientists" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Part 1: Basic mathematical description of networks\n", "\n", "This week, let's start with some lecturing. You will watch some videos made by Sune for his course _Social Graphs and Interactions_, where he covers networks in detail. \n", "\n", "> **_Video Lecture_**. Start by watching the [\"History of Networks\"](https://youtu.be/qjM9yMarl70). \n" ] }, { "cell_type": "code", "execution_count": 188, "metadata": {}, "outputs": [ { "data": { "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAUDBAgHBgUIBwgFBQUFBwUHBwYGBwcHBwUHBwcGBwYFBwcHChALBwgOCQUFDRUNDhERExMTBwsWGBYSGBASExIBBQUFCAcIDQgIDxIIDQ0SEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISHhISEhISEhISEhIeEv/AABEIAWgB4AMBIgACEQEDEQH/xAAdAAABBQEBAQEAAAAAAAAAAAAAAgMEBQYHCAEJ/8QAVxAAAgECAwIHCA0KBAMGBwAAAAIDBBIFEyIGMgcUIzNCQ1MBUlRjcnOT1AgRFRYXGCRig5GSlNMlMTREUWR0gqKjYYSzxCFBwXGBpMPh8DVFVbLR4+T/xAAaAQEAAwEBAQAAAAAAAAAAAAAAAgMEBQEG/8QAJhEBAAICAQQCAgMBAQAAAAAAAAIDEhMEFCIyUQFSBRURMUJyI//aAAwDAQACEQMRAD8A8ZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoC597s/wC2D7Z0nYr2PuMY1BFPS1GAxRSJf3O7PPWL3fa/x7ncp+7/AMSOyKeDjoHc9ovYxY7h1DV1lRWbMvT0aXyJBVVzS9zuf4L3aLudzu/Wcj9wJv2wfbGyJgqD4aCl2ZllkRM2lTuu9l0ndn7nc9v0R1XCvYyY7VIjw12zHdjk/wCfdqq7uf7IfNkY/wBmDhQHoH4p+0fhmyv3qu9REfFT2h8N2V+913qJDdD29wk4CB374qW0Phmy/wB6r/UT58VTaDwzZf71XeojdD28wk4EB3v4q20Hhmy/3qv9RPnxWNoPDNmPvVd6iN0PZhJwUDvHxWdoPDNmPvVd6kHxW9oPDNmPvNd6ke7oezCTg4HePit4/wCGbMfeq71I+fFdx7wzZj71Xeonm6Hswk4QB3X4r2PeGbMfeq71IPivY94Zsx96rvUhuh7e4ScKA7r8V7HvDNmPvVd6kHxXse8M2Y+9V3qQ3Q9mEnCwO6fFgx7wzZj7zXepFJjvAPi9D3H7stRgbdxPz5c1Y3+3G6Ps0zcmD2zWT7EVaNa0lF3H/wAGn/BN9hvscMcqadJ+5UYDEjpf3EknrO5J7Xk8W7v/ABEroR/v5/hZDi2y/qLivth7Z2if2OGNJvVez/pq71MjPwAYyv6xgfpqz1ch1VP2+E+iu+rkHth7Z1R+AvFl/PUYL6ef8AbfgRxVevwf08/4BLqqfsdFd9XL/bD2zpfwL4p2+Eenn/BPnwOYl4Rg/pp/wTzqqft8HRXfVzX2w9s6I/BJiK9fhXpJ/wAAZ+Cyv7bDPtz/AIB71VP2edFd9WB9sPbN18GVf2uH/bn/AARHwa1vbYf9uf8ABPd0PZ0V31YgDb/BtW9rh325/wAEjVWwlXFvSUX/AHNN+CN0faHS2/VkAL2TZmdelS+kHqTZWomkRFelvkfL35fz/ZJ7IoYSZwDtCexzxtkRuNbP+1Il/c5au/N9yPvxccb8L2d9NX+pEN0PZhJxYDtHxcsa8K2f9NX+pCfi5414Vs/6av8AUhuh7eYScZA7L8XbGfCtn/T13qR9+LvjPhWz/p6z1Yboe3uEnGQOx/F6xnwnZ/09Z6sfPi+4z4TgHp6z1YboezCTjoHYvi+Yz4RgHp6z1cR8AGM+EYB6es9WG6DzCTkAHX/gAxjwjAPT1nq4fABjHhGBemrPVxug9wk5AB1z4A8Y8IwP01Z6uHwB4x4Rgfpqz1cboe3mEnIwOt/ANi/hGB+mrPVw+AbF/CMD9NWerjdD2YSckA6z8A+L+EYH6as9WD4B8X8IwP01Z6sN0PZhJyYDrPwE4t4RgXpqz1cPgJxbwjAvTVnq43QMJOTAdZ+AnFvCMC9NWerh8BOLeEYF6as9XG6BhJUSHr32OCfkml8xTnkKM9iex0T8l0vmKczchevOH2Zk2Sx1l7DLPDh7g9kXp2PxryKc8PkaCYg30PbvBG/5Oh8inPEUGqWHyz27wVfoMPkU55yyDbCLB8bsOe0GbAF2BYAzIMEqQZkQBgBYgBEggWEgTMgLEAA2ODYAc/4UUsgdu0OgHOeF/UiJ9IE63H9j8HavxuiiVdGfrPVsdMqQIqnHOAPB7sSrZ2XmIDtlXumTlWOvQzOLJqM5VuabFTM1/wCcrblRVlfOSp3K+dyYRIQp3JRCnAhTuRZB+QYkQtUo0gxIhKsGZCatCkchYkisTZCvqy+tRYzFWmpxmgex/NlhX0zFTHcrmly7HrbYysWqwnD5Va/kC2MTwI1N+BwrdflubYxTQIECxB6ECBYgBsQLESAIECxACJBuQcGw8IAAJokAAiQAABAAAAA2AAB5jyT2N7H9LcOpf4WnLafgx2Tla7ieEp5t8o1uC4VQ0KWUmQiWZe+ar55q2G9k09ux+J+Men/1zxQfoPthgNJjFBNR1eulqN/Lc43V+xpw9mfJxDEo/OJBKTongqeY6DVPD5dOe2eC5PkaeLQ5tH7GyOKeF1xGR0jfMy5IDs2y+FcRiy7ryF9mb2C9EDfGVtEcZVl3jKtPjYjO7gZy98AiQQEjqF5BMgbHLxsBAiQWB4GbAFiAEAAANmJ27oGnnSNesQ2xTbQwqy39OMLqzfBBhqwJW2rrkNjX6So4N0W+dDQYzCYrHTrsZLFTM16Gmxa4z9XC3SK3SZmrKycua9NRWTpqLkzMm4QrLiw0iJLQgr+LDEkKk2SYqa+vRN5i2utXZZgJyvnIVfjar3hUyY8t28adDNO+CznIr6hmDGInHr1Pdaudipr9JRVG+aPEtSuZzeZzTBzrHdvY7zK1FWquXybnUJDi3sdJrKzEI2bnIMw7TfdumaxSQIkFiJCsIECxEgDYiQWIkAQIFiAESDY5INnqBAAEhMIEBIAAIFiAAAGwAAADq8+G1PGLPc6N4e3vgLCfZWBl1LH9g3NgiRDYxueSbKxdFrPTjMmzzLuzzp/mpzoEkK96NyUyd6e61jn8mD1K7tXV+nEcTxBd2qn+xBKb2SjTvSLJQKNYw0iYj2sb+cgGM7EF6FJ6Cc3UmGp4wRJhS99IQ1jCvitYu9BB9ueIR7vT9Kj9HVGzkwpu/I0mDv2kZXrWMl75G6VLV/R5Aj3zp0osST6A0EmG3M6rJSO8Y3Pg8veQONZsUfvqg6Uk6ecgnF++em8JjTzhNnweXsP6yvkwp+lTSDWmej2kg6NTSP8Azi48bVm0vA6eWVkmAq29B/QRZNm4Ow/oIa0Wk91fNh7pfNMlJgMXjE/nnGJMHRd2WrTzc84weNn7qr3rn33VQxElHIu7VVyfziI4avo1k/0iQENabe+6UXfEWvqYnidbjH/Ll6+N/OQQCOM13fUj/wAh5rTrb3YF7K3zhtccTSc32BmfPTOy0fxZ0jaabKp+6zGKytth89/wyGLWqtxlsWqVKvbPbBYntusOZ47t5qfJaSfzYrodXfg3NfUr0mKarrFOa1e1tVLvZiJ5BNwXEnn3mvNWhDqmznrNFxUz4xYrlFi20kESWXSO/izJYlj2bu5lgr4pPlYNHjW2DLpjUy1Xis87bzjEGrUxKkmWJNK6zbrwcuyycyIMNnl//YPSYO6ruxkKrr6pF37MzlCNBitW2q+8sQzieno3XdawRJUqsCcvVvVdnZlRQkmkr2fnFDiy8ae3zh48nBb5y9IrMSmjdbYeev7wtqSmuUhYlTLE6Oq84QNCVsvNLEj5jSI/izbcG23MsVfkTt+T5/7JiaTUqKouNMp30kG2FfY9R33LpESFZsfM0uE4Y7b+RTlnIZnPsIECxEh4gbESC7xmQAEAF4CJBsBBYgJBAsReAgAABAAAANgAAACAm9O8cVubWSfzaCOOL1izwecQXi1S0ESNHGj69zmiE9Y1RFUxRqiVWXUWa82I6LAsBmQz+O8cp8GeW+NK2n4vJyHNGgkhV9XaIVpkSDciEafPRdLZ+X8zniZ0dQDNgiQXX1KQQTSytZDHvkaCsWdUaNJ8mRMzMkTKPASDY5O6rvNzg2QeqOdPkqNlx79RfJZzIxVzQQI+mR8t6ePkOu4wLw1Hn90EkexKefLy/EhOjxI73UNkfzAI1XiUCJM909lOmYEdSrq7XzokaZnKC6umqZVfMTDZ0kTL35xnJnaW2RUTkMt4I5+ehIBvDanPW+F74fGITdfix/DaBYIkjXMs7OR+ZCRO9AiyX95GMyQs3VQD1RUqkTytmIke/oEUlZHPqi1w9v1RBYivQIy8pFAQoMKgdEZoo+ULqTdcZpOah8inAr5MBpu8GJNnoG7RP5y6EBYrKDDVpXujaSyPtCn4Qdu/dGHu0OE5fIfpuJPzVH+7Qf4nKuGPHsQTEcQpWxCdMvmKSCDKiyf3ioLngrwfGKyCmpY6SCDAp+Unq5E5WYowbK/hjMawdmfTmT+PnKKvw2KDVNL/AFneeGbBY8NoKJIU5aoky+TQ4tX7JLPQVU89XZiEb1FmGzplSwl9a+f9M/HjFMuldZZ0NBFiqTRQaMWsqJKXL5LjfF/lPFaj/wAozMGGur3WSGj2Tvgr6WePq3zC6aEM5L3BdhqafDqV111siZj6+ZMftZs8tHedm2EwpYpdrZVvyfdSojgj7H9ZMftvDmu6sZt/e26M4OX0iXKlo/JRszDEELQVDxSfyeOLfizdFjSxQEkKzxIkix8mEGCRJ0iTSUzFpHTL0j3enrVfEEbdIcdH8qmt3I+Lxmgr3jgiutvfm0j7aYbw2gyoku56TlH88UbFmvMzTw2kXFob4nXsywkI06XKE5w7GfgrHRoe8NHA6ypcQpKZLNXVkrCYWVHu6wEPBucN2kWCKlg+V8mmWmWWHvnkXpVyfQGDwnBJ4K9GmX9IfMTX1J1ygwqKWK5sy8m5Fnmz/vwZenP9JBOOR7Z+Pg+kQuY8Npnd0VpEeMPe3F2n9BDsQVke2C9rSOPR7VeYfzbjk+yqN04/QEWTY+LvaR/oB2CbHtIveR/bF++GPpJIUU+xi9FYPoyM+x7L2n0c847Bpvd6DxiB7vUzNvGVk2VlVdMlX96Gfe9Vruy1324Bg8bOPFaZumHH4O1jMTJg9YvTq/QQDHE6xel6SlJ60W945F38YvOXvkOeWVS9g/8AJOHGaterg9OQ1pZuh3r3wHPI6+qXqvRzj/urUr1VX9G41vW8Aw0eNzrvR132B73ySLvcb9ANY2EggyUe069J/SIPx7Tp2sH2xreZvX+0vM/eP9AzuCvxVJpY0kqnkeoky/4ic2dXTLLZqsyyr4g0Dvka5pE+ihNzCK9+MYdVaecgqCv2XrHqqCilVo+Yp+c8wXVBQZFOkV1+X1khX7L4U1DSpE3VhM9Jn26eKI5n6Cpd855J6R3z6iPn54jWyFZHglMq6kjfv5AK/DaxnqHibl4Y0164JR7j6tfbFVukb5eZZyRX41gL92rppKJp6RKdMyRI/wBbl8FLSOaVEROLScmnfwFYbgeOWV5LZEePk+UQfkQYoM3NmzIpIEk5RMwfCbP8WZJcQbfhq+TfL6kix4Ct8zSLJWpUbmvmS3no1qYpkbk8ycYnoLKB4I8yd7NB4K+fCo2ZGyqtOL7mXOFBRrT3tGlc+jrHzR+fDXvv4zPBNUbkfYhhMM60tlXJ8pkTWQeq+NJXeqzI8SRJHzE1jFfQPxfk5a6+Pi/KSefLCPCnWy2pq7I+rH5KNsiaO+R8/jHOEBFgRm1b6Sf6IuCmjiW2JbE7OMpo4ayCDlHgghp+L2Ryfu/6STMJ4yzPntG+vq0yogJVXuP5AiBLUTyBdfzD2gQWESCBcggDP7YbN0tdR4g0lNA9TkaJ7OVhIvAxX/k5KZm5bDH/ALOeaqN7WMimzFVS1c1TQNG81O+ik8LpPBf4grsdTid9U3R9paZZKvD3ZY3SDXrOZcMWFUduf3FvzN9DeRbQxV9FDPA3LQaJ4OtpP4g5vthy7vcxm2NPHh2ON11G0rWwxWIXuyezds8LTbke+XvFvm6IxEdZFVX00csaUsnJ1VXH1MPgtP8AvBdsaNbQbLw24TVT/wD1OuxCrTzP6sYLazU7nXaujSloKKCLXDHBlpIcy2ho7ncpr82r/DmWO0azr46PckIVJUyppmSR07SM0GJUzFZPTMmroG3NzrK0qDEorev9APR17vzMEnnJ+SiDDbXXeLCOHUFldavgo2vzZmz5v7UJKJsiKpXzuQacMDcjkaRwkcYJsVhE+ovaRFnVEXfM5JvGt4MqNqrFKKO2+GnfPnJofNnY02LQ24jgq/MyzZ4FzT+cMttCluKYZ5dQanZrcm8shY5CNi0y0s91vOcXj8z+lEzWu8vowxKG6W5lv0c2Igo2iT5M3I9hIQD0bq26OEWOpRmtkXIm6GYPyOyc5rTtAG5ECRB8RIBCkQRk9wenS5XXtCpkwGK1OUq+T+eBYR/NbnA1EKkw1YnuV57LMvlH5kk0iWJb88mCTySHIi3Ppj3ywK+dHu+YHhcaQO0yqkDvHyb6A9zYOyjCrhsa5WyNevxxJzo9GqPlNwIocmFUzdAY9x4P2SekLMJBmmqZMEi76QZfAUbpFyFg2PHrAQN1k3dWxE559w+xoyrqa86LCJBAve3RATNjMg8IkAZkECxBANyDI9IMgRaT8z+XUFftLbxfVPJRZj0/Lxk2nvsfLy9+o5wrKusV1tmWB0vy0zM/nioRclGp5p1rJJ4b6iRJ4HzckjTvFnwvJPO72ZeZH1JbRosS5SpSQJ2d4T01yurRQWSb+sCvjo8qopXapnn6tIxdXUpLByVTGmZuSRuP5NqwqsWin3NYxHTRIummILFHiUMcrIklZJnScmnif8v/AJQsI8NnRkaOqnfz/Ki+JxNe00d7yPzmQSZKyPvrP5AIfFmiieNmvS/QSRE80brpeN9dPzYuQgESDI9IICwgk0qMy6OegennTx3FyMLgmslRiE4JwswfNutlaWqfjKrJRVrp+l0j5UpzDGtm6xW04jPOnj4IJZT0BV0yvTp5BiMaoNT6TDY7fBnCcHH6vZ5bOXnq67xcj5UX/hisoYWrMQo6NFjjSd7LENntRovUx+zySrWpPE1k0D5iSHrqeLtO0GBdxMPhyu7e9PDrT9pwbazGFV3Xpmw2k2wxfjqSrLHHRR78cac8c/2wehqJ5p8ue/s43Lq4MWc4MZX43a2pvo4xEeKo6OpCkoLndlXQSqSjW7UpqUZrPAodFxddEr6Sa1RclYUzaoTFW9pXzuLqJriKTQssIvERvqCQRG5NimucCwGpxN8ukWN3j38x+ZO4cHuyqYTR2XZ9VUcpPOYzgCTXib/Mp4zrUe8QZJzcv2l/+K4Z5yoNNs3zU3lmf2wS3FsJ8/URmk2W3JvLDGer5liqKW5rMxKgYkmTq5JE8XZmlpIi3XMvNjekgmrJJrltZM9PMThBMqpbZOidnZPKWEgzIBCnr0gS5Un83YSr9ISPpEWKA3IRqt3ZHy98e07xU41M6QOytZ4wB6CZ25yKSD+cXPWRJpkeO/s+tKmkdWd7p5LPLyiwoIY2a7fy30SSASY3uRGXrBmr/Mnl05KkIs6aU8sBdel0VvaCI7Usibck3B+fdPlly2sTDMjsr2Lr7wXZ0m1jMEy3OjLY8fWdsSQEAAWEB6sndFsZv/sE8ci78dd/alReg6d0+nUYEKB40v1x8o+YEkyd8LqpkjV2ay/vCNhtZxiBJWikpczq5wFyTJ38YjOj9q26MekESIvexgQoHtW2R438ZeGdH3yDOLVlNAr3ZF9nNyCKC2WCF5IoEeRObj5UJpIiQXu7ozIQEKk1U/nOMFfJhrvLS5jJxWn3I4yzoOYQhpisTLdyn2AKjax6aJ0aeWrgeROoTmeLiKSaCmsZqmrnhv1578yaCeZF5ywZkSJujA/WAUUlBPLWVVtZXUqfJ5OTyJYh6eGeK+SOeSfXzciFm7qvSjI0lfFeiq9+ZuZZUEV6O3NvGnnEF9EXIIAhV/U+fpxYV/U+fpxZBYZkEC9Vz950AkQBkbHJBsgNHsvjEU6PBdy1O+X54fxKG4x9BTLBPmx795tnteJHXrDLZW6PEscW4RqBkd26BS7Lwq9+XvnQ+EzCmqabkt8yfB7QWxOzb8b5ZkdvYpcdprldezOa7Qw2MdwxrB21u2iH5RyhynaGajdrWfWa6CcFFhsKOj6dZCr6a1ibPjFJSppzHcoq/aRWfdL8JoThCBzdG7yHPjcXekXj8l2mKSztCetlnNZyCyNA9w9O9qkAzIMXheIv1E1Fjtvsf6b5LiEvaPTxnU4znnAU6thDqu/n1F5tqvEooOczCmc2XXOfg5/t3/8AFMJ/iqgutk/1nyzP7YVkUuI4LJC16caL3ZbeqvLJqLK8EnEnZKpGukybNcY5HWM26l/m3CrhvlRW7CoG8lXXT8lqunJGQDmcrfMfs5BchFkmta2db07ezkhepfnp/oh6cghuYqMdmaBdJdQPpmVesTQZLaypuUom7XB+IYF4FjGffFJz0f8AeJuJcxNqs0c5IhzzDKxoqyGS7pm8jqWbOugksjTMSTti5zuXXhMzHUxMu9A+XyZNgfUVlJUrUy/o1iR9ZInXFhnWrM1knyf+8esySIn6HliKSpzV3J4POILk3k8smFyalI18jWXRSb/fk0Yjo1XtN/MDxGkhZrMxZ3y3JN7d6V+LVkFKuptfOZYSVMktPdA0d4RTY5rr7tGWLM573pWW6aeSd+cyyznRnRFVtcb5gePXk3Owf5gcG5ueg+nHDqsiFXUay9266x/IHI4VREVdyMkkLEpmRLo988DkgwQsFo1RqqW3lqt9cnbFgQGZxbZ6WWWZoqqSlhq+fjszc4toIViiRI9yNMslSDMgDcgzIFd0PLFyAV9Jqp7foyvjwRFd2vnd78xCwoeaH5AmpdoUprEep3I3y/vBCwnDaN0fIaR+LvlvrnLfFndUTJ376fk7M3OKWeasiqHiXij8YSoskjTmSCBeNcVV4eM5d/QzCNhr4ejJFA0CPT8plxltXws0GlYJ6qNNGeVMiVkS3rTUM82fzfNcjnhMY68TVEMTcbSadOcg6nlx6CaJGmXPjfMeok3+ZHqB2qYnaeONHvy8sZnwGldLGgjsjfMywFz6mh8sXYE/Ow/5gfKgxYIkQfkGJAmZkEC5AIPSC5wKpugmRurKYeoJsqVG6HTIWLKJ957GtKXHKcS2kWhzmhW9+cyzruJWssy9CSPQcC2so2TEXu7857vVjFsYxfHaWFFikoaKR8t5Dmu2+xmIQMnKyfRnofZ51ggS1Y3hkTmzK8IyK6XKuiMurvaoQefJMBqna2aWQm+9tYEuka8ucSxJFe4rK+veU1bCzBC4nGvRH47REaMzEmzSFJm+0iyPcPzoMBkmQIj3gkcXQfnJsrtXAFX2cdibzhqdsJrXc5zwOTKmKIvhEFRGdW2lw3PgfvzNfB0eDPCblkj8uknZvmG62MmvWqftHMfV0bK7raPYTiT0sunc6cZXXYnzuLn3t7PMuelzJuBPNF38d/aXhG8ToktsfnBcc0T3rHl8nybljg/NeCLnabWy5/NiKSFU5tns7MsLFboxjMlNH3sYRIpLYpU6Bm9vqDW7LuSF7xCLesj5MNrKBpaVHUov7HT4P0cfnhtY6Bs1U5tHC3Tj5NzH19MytqLrYi5lmW7RGXVp86DRyUzdW+R5tCLBTVLq6yzyWX1HNoTZL2ZLVjRLx8sctCgo2uRmlkfL3Ix6feTzg+NydDywicABuTSoeKaTB4qmqz5FvePkybk5Tw27hJpLbNIiv6C9OQB4jUm+4xJTOvWyX9mORvZeqrf34HrWo5+HyKgckG5+fj8iccnS5XVumdhhRYKlJb8tr8sckG6SjWJnZcx3k7QckIJkEKvrFis6b+LJpFq6OOXeX+sIERzK6Iy7kgSBBTLEmWu4EgEKu6Hli5BFf1HlhVvajt8w8TRaDmEHJApEtih8inCQgIWLUefFarvA9+ZmFfxCqRdNVnvfUc/AXIgCskz8915PisiaMvnYRHE9dK12uPf8cWAAMCB8bkIJoUnOp5scEdf/ACCwESDY5INlQQIHhADMgwPyCLD3WG73yrbrzE7WYU063qussJ9ucO90kw2F563Fub4pSQZpdYlDbLMrLzb64zDfXg7HBsZLArlp3uM/tRWaHU6HxNLXtMTtRQLfqMtbqwm4ri1Hre1BmDDXtut0G5xJI13SFG6mvYYMzxazojMhZ4tMt2koqupW4n5qLLCJ3K+dwq6khXszF8K2Kyw9vE2kQjQIWcaHiutoNj6/itfRT+DuekKR0nRGXWkh5foPznc9galuJUqt1iFNiyZ7HcKuznjVLI9+QxMlGzO/eHTcJw2lglfLSOlhqOfjj64hbQ4OkTPaphs7HQovzZXZ6pZWyJ+Z6Bp8NoIKZXWFbEkfMMZXprLnCa9pVskbm01lldjFy6M17V1McCXSNGiCLyFGirLbNy/YSSC469HqHgXMd49/RyUJe5iUW0CX0pUlnhs3JOpRyvBs4nm5fthDa72lZsnN8qtudEkNBtYlzOxiI6myqht78847dfB02B9/xbiyNSUzpqke/RzcackPGtyPksJOh5Y5GEnQCB6wiyJfLa25GShnda5gkhVaZDcm2uTqwjRka6b0hF2hxVIGTTJO/ixmDHkqlymSSCaTczOuJ60FnJMnfR3iIOnd34uejSx9Me4M8WV4ruUzrOcID1rO3Lwr+1J/+n/4HJBE+9C3zxZ2GFGyX7X+gbkuTel/oJUhCgS7XJvyf2QmZkrG77+wL5X5gir5V0iXcj5Rx4BmR37yP7YxJM3eSE2QZCCvq5maxrJEy3zHFzpejr2iEqRLltYi0HMQeQQTFlqooiQXIl28QuJxrutOn854HxgMm3pz/bCxu/kIBEggXIjd9/QMyX+LABuQTe/eR/bG3mbpRSAM/rL+QLEJqd2tkTRl8oPAMyALGJ3VEukaNE7SQh/CZAirqYoEvqHjghj6yQ5rt9wzYfh18VE0eI1vi+ahPPm2/CLiGKS3Tzvk9hG/JF1dA71tnwzYfR3x0i+6M3ac1EcP2z4S8QxOV8yd0pewg5KI5/JWM7amGLzbrgPTXsMsbpExLE4pMtMQq0zEk62aE7ztXC0WKQy/qtemW/nT8+dnsbqcOrIaqkd4KqnfMQ928G22dNtXgKSXRpWx8/H2Mxy+dRm18W7CalxJ3ppXZdwo9oalJYnZTR46jKzpJvxnP8ahZWe1jgw7He/4YLaGstd1MzJitrbxptqMEZ9SsYzEsBnXUrRudCtmsnMYlitxRT1lzD0+Gy9IjcTZTUyT7yL2ZiZBCEEJNjTSDWIELCNCNSIzFnTw3FNi+EE3AqB550SPfkOzbNIqrp3I0y0MTsnhTUy3MvyqoTm+xhNhPXpQUd80kcHjJHIKLJjbPaFKCgramRtFOmgXwV7WrtJgObJlpiFI+RPHH/4U85cL+3PunVZFM35Mp9z97/eiV7HvbNcFxxM98vD8TTInzH5KHwaqL7+J/wCSmi/CbudfRsrvpKWrdkY2G3c1i3xrzhlp6bNgvOPB3vODEScJEuGVk1DicV9L0J4Od/ijo+xm09DWRW0ksD/6py/hRwFqqjSeFflVB/ehOS0lS8TXRtJG/aRnborhdB87yM4Te0JBcD76nl/ZfhLxOh05vHk7Or5U7hwZbWtjFO87RcVeN8vLvMvOonCCzgz71fwjVPLoirojQxlXarIymz2+pmee5VMZVpaZKHasdGq4Z5Vpct7IZE5eOMfyXVEjjezRznOiNnps2ipmt6BMNbg2eaNQU0qK90ufNJ2iBZUrKmZLA8N/NxoSd0+1e6gK685pMkyquoz9fj0V1ja0IW1GJMqWqY+N2nnSPpyOQdTpYQh3tVJTKlRp5mSPQPTwxqmnQ8fKZhYVdHGsSIyyI9PuTkKDDc1br736GX1JpzcicFpHe0WYzc4mYg3GkqxX3/R2C471TKZb+rSQ+yTLZlkB62r+bAK/mnA6rCRPuOV+c7KiQ9BNcknUlgV+S8TpkrnpJv8AiQmr4JktuneTjXoiww12eBGbfJIiQBEggXIICBBFoeah8glELDXuiQJnpBmQekGZCARIMD8gwAgRIPCJAGRsJ3VFukZESPrJDDbUcK+DYderVKVU0fVwcqeaxtiFi2JQUqX1MsFKnaSOeedsOH6plV48OijoU7STlZTj+0O09TXPmVM887+Mcv0D0htvw5YfSq8dAkmIzR9Z1RwXbPhLxPE2fPnkyewj5KIxM9TcRZHuLteAfq6xnYYvECLyYJAvESCCAe6RreDLbmq2fxGGppm0dfB1VZCY+8Lw92PeeBbQ4ftThqVVFLGlVGmuOTnYf3WoMztLg8sDOsy/SdUeS9j9qqzB6xKmgnkpZv7U38QeneDnhyocTihgxNo8OxDxn6JMcu/gujRzsFFiULGfxKmO4VeD4fUpfGicp1kDmWxbY+mZtL1af3Tn6JwdDq4Tccno1IU+GnVp9jIO1n+wMybJU3a1f2IC7vNkHJZKAI6PUdT96tIvSq3/AJx+DB6WLm4I/pOVHehsg5/huCTz6YYpLO06o1OE4VHS6my56qPrOqhLevqURLpnjSGMwW0PCRR0qPxb8o1PZ9UWQonNRZe6A9ZBh1K9ZWvYke5mdcef+ELbypxiofnIKKPcgKXaXaSqxOd5amW/vI+qhKY210YOdZYXI9wi8AL0Hp3gV2tXH8Iehq2/K2GJo/e6Q0aUbRK6seXNjMYnw7EaWqpMx5qeTm+2PW1BWRYnQUtZBuVCa4+xm8FOBzqMJu/wb84YMrXwqiucG2+2eahqnkjX5FO+YknY/up33HUYzdXTRViTU1St8MhDiX6UuXRtef7zvvseHb3Of+KqDDScFdY1VbG8HEuhP/8AznadhdnoqCjpqaHMsg6yTrjdzr4TgxcWicJrDaimvS45li2lnOtY7zDnLMdTW5yqHUmwtXthiGHVrrBPJkx9RJzR1DYjb+mxFUSRuK1vZyHHNvobZYZe0TLM5BMysjK0iPH1h3q6M4PnuR2TeubBmR9JyLYThRdMmmr+XTm0n606VxnkHOfyq8G38b3zzZjah2vcZ4OaDPrJqm79E/1gx17i24LrVixDy6crraudY1up21NojEa4m064RcE1rOjC7yxyUarmuTSGSrbyjECXK92vWGqBdOuHxhN49WYzc/chiRXfjD9y9+xi/wCf/QTxBekxYSCJDsMiLkr3oZK/+3HxsBmxe+k+2Is+c4VcyJZc3OPloLCBvV3wzq8WPiCAYkeRd2O/+cZw1GSJFbfJo2AzIIkItXWXO6RtGmXvzyf7cjWR9F6t5u0AmCJHVd5o0/nK+Sapbk8qRPHi8m1dMF+Z1kgEqd1RHeRo0SPrDku2/Dfh9CrpSLJXTc3mdUM8N20ktNh1VRx8hr16+pPJ+JYle1txqhXgNnt3wo4hirPmTukPYRvyRzyesZm1MMzuMEhKziLI4RuInCZd4i8ZvAgFyOIAAFiJAjcJAG4xwbABwbvAReBo9mts8RwxvklVVwJ2d/JGzpOHLF1W2biNV5xDlN4XkNazY7BPw5VTfqNJ9HORqvhsqWXTRwJ9OclkcQQ1wN83UJ+GPEGXk4qSD+6UtdwnYrKvOxp5tDEgNcDZNYYljdVVc/Uzz+LkcrwAAAAJqwTcFoHrKqlpoeeq3p40IRc7GV60eKYZUtuUlVTyFdiyt6t2Q2DpcFokSFI3quvq5E5WYXhtesFQ8UmiGrfL+mNbQ4XVYiryq6YXgcHP10/Ozfw5TbQ1mGzs600XHkj/AFuBD5WzPPvfQ8ecP8KvHcN3zE4lTMjnVqS2ppUfX9IZnaHB9NynmbcqcFe5UNhQIqoYikexrS9oMS02ialYYlrV1Oa41DrmOjwOrX3GFxpF4xMpOtPW5ttvTX0UzdOnfMOcXnY8So1dZkbrOTOP18LRSujb8b5Z3+JY4HOr71psvDm4jh8faT056GkuVDiXBPQZ+LQu25Scodtq30GT8jPvavx1eEM2cxb8xe8HMLLT1Tdo5S4luuabY9LaCl8ZyhTWs5fiupEuIsiaXJQiTvSblose6girustFujLujMiMy6t8D2HIRauZU3usJpX4k7qt0ff64zsMKvxbEkRIWmaxI35yPmimq9oYoGtXXW2aI+qhG9qJnXJWPMvqHy35iXkRyDBLslpHed5OskNtcIf7QZWS6WsedczOk4vHv8l+8nRqB2aBMxbHIWG0CwaVijTxkhaEOVdkVgQAGVM3eRsSmay1d+Tk0HiFG+bLmdTT8mnniARhtMkSWqvTqB+8bg6fljgDYzV1KwQTO2hI0zB455w643xHBJlXfqEqCdEM5jhnCbtD7oxYnUr4VlnBZ31ubqrrGbZ92u5yuqLznl50bw9eMyAEhkBeLk3Rke6IEKPSw+MT7wRuEz42ODZAEY4MRj8ZMMSbwRhIEYCxmTeHhEgQIAACYAAIBACxAAAsAEALABAsAA9eRbVvtTTbO0EOZBhOG4dTyVaeF1fc7nte1/7/AGmxpKNIFRVXRGc/4EdnvcqiomaWSearTMfsoeMfqp1CdLlPlOXPvfS8SvsPZMeVapTYlCrK8ZYQVNulhjEqlVR2MjdW5fiUNk7qIpJrWtYNsJuXuUop6zcNb2xt0qVVTK4s/wAqdhEGJad4YnmvdDyEFamxKbWY/bfBM1eMwrrj5+M1mJc6JpN43V2YMN9eZvgnoGpqe6RLJp+U+hNvVvpKKOax0ZSTJU3FFlmc19cMIYI2Jakc3NJDZT0qdmlOYarmVVOgR6oofIpy+tzuUeK/FkZke18h+0JozXojxOsm4TYlQ9NVX3Rzx32c2M52Io+qKB07Mm0FBFFLNJC2uTf1kWTCtbutTVo8nzwPZt5Fq0vW0fvG5DsMKpko40luZY37wXTu6uiLuZBYCCewIv0gAEAgbkHJBgBmvplnSxmnRPFvlDEdBEioqrJyfzyaIIBm9UXvBiCsjlvy2vy98J6ZHblFjcIIURbY1RE8WTCzhPsiKzPixCK79HgyzseJV9rTKrJAlPvySHnbays41PiCM1/GOMG7iQQscP2aqY5Yq3D5v1jlIJPHGVr4Wid1Ym46klNVOu48bkmvmWuTN3KmPfjFiajvF9EiyaWH43uM4BcbiJBi/UExX/nERj1XukaPeAkiJBYiQBA9GMi4wFyDPSJRFkAWEgRgAgAAgAAAmAQEgEAsBAsAACbhOGz106QU0UlVNJ1cYEIXHqa008nB1jCb1HOV8mz1ZA6Z1LVplv3hX83waPiib1zs1QNFQYerb9PBTmwRLlM/SVKWIzMLn2hjVdKnylnfN9JWfxqZYtVxm8SxhbLbim2lxuV37xBnCaB6lr5NEJXgvNvRtU6rdBXz4VFA10nLmqq6lUW1TK47Ul9ZsV9ekFm7GnmyjgqWVrRvEqm3pEOke5rjWpzTKt7nCPeESCLwosWecEcxX5wRuNZsSqt9J1CkS6KHyKc45jU1sDt8w6Twc4lxrCMPkZtcaZbl1bDymgsGauFZUeORb0kJIzIGJSz4bTUyvpnsqOrjKOd6NHds+uTL7QvK6psWqaaqjsjfq05kh3tUwTKstJOkac5YB7MEFZxypdJsuCx4+L2ZnXEqCZ2vuSxP9Y7DCkiCLV598OTudOMh0k1U19zQPlvUR5gFmIkIUaVV1sj0lnaRoLoIXRbZpM9+0AeESCxEgCAAReAxO9rIAT7yABnNvpooMNqnZI86RMtJDyltDj0cFY7Xa43PSnDHU208MXacoeP+EZ7K2qW7pnRo7IIIW3cKyy5sfWb5j4JmiYs+PtbbdoK+dLiiaYnRXW5Sv3SbBpEVaANxuMyCBchWmXJuDPSHo9wZ6RASYxEguMRIAgWIAB4ROLjESEwiMXGMiyAJBAuQQAsAAmEAAggFxixEYsCVhNBLVVEMECSTzVD5aRxnsbgg4OqbZ3DneZUnxar35Ox/dTLexw4Olw6ihxWtT8oVachHJ1MJ0zFq/fuY+e53Oz7IO/weJ/uajx2xWe0yU73MWeJVNzGcnxKNWtMMPl1NazgrLekMT4kq9Iz9fjC9EZwmjnxSe2HRTR78heLOB3r6yyLWke+bCS2CDLuCgoIqOK2FbCixqsuYr8yZFfUqZnGqm1dRKke5t4qNpalXdLS+DLNRTuzuSoEtERoSSxEuTdI0hJkfSRg8mYkHIxuQcjJq0Lah7aOYtuArHrZ5qGRtEnKQFFtg/wAjdTM7H17UeJYfKvVz095tor7HO5c+96jvEBG9yoy9YBQpMzwxsupY+U+YRUpkTm0jTzaE2QYkQgPU8lfAtl0sfKfPIs+KxLLlXSPN2caZpKjpolW1Uj+wIgpkRpmj/WHzHO2wikmWWJHXrCvgrJd6SKxLKiTLjLCN16I3I/zgI0FY0srrZIiRpzkgTu6pfGmfN2Y9HvOwjOXvrCAZkva+5Us+T2Dcmbr0R7/OXhx9LrWeNHvy8u8OMqzWxte8e+AiRJWVNVj9MKR2eLVvx9Z2w/G9wAfJ94QOSAByLhfrFashj7BDzLwwUdtVm9od34Y6leO1VpyXHcuvopl66n3Dr4diDjkjiLyTVwsu8pCkMSZ8X0SLeOXgMToMkmTUpGkK0z0G6RpN4eg6YxPvEBKgCQRAPEwyAAQC4wkCMJCYZAAjIBYgWIkJgFiBZAIkEC5BgB+M7b7HvgrevnhxPEUswmkfMgjk/wDmM3q5V+x74NPduqeqq1/JNA+v98m8FPU8+XTwJFCscEMCZaRx9Scj8jzsOyDq8Hg598yMWrFVbV0JGYvaGv0vqJuLV++YLaXErVfUcSEH0OtGxbFbTmuNbT5Usy3a5DQR0FdirvFQRPPMavg+4FMh+NY1lzVN96QdVEdCvCHmpssn4QZjg62ersWlSedcnDI+0647NBDFSwZEMaQJH2ZbSQqi2RxoidnGUWJIysYrLMyEEPEqnSZLEqnU5Z4lNvmZr5idcELJotXMUsjszah+R2ll0i6iHpGpRMiMejI0ZJjPZgGZEJMgzIAyNjg2Fam2wf5O5j4HtY022c1sSL88y0e8dejwcfl+b1BsfWcZw3D5V6yCnLYx/BHUq+CUtvV8YjNhI5ls80CCFO7Nya749fcRp3tl1aMxCtY9TVaTsrrG0d/yflJBmSGqa9b4LJOzQ8TfHF2m8C2Q+64p6+J+OJtN4Fsh91xT187DC9vQU1j3K2izLyyLHhtjO8bWTScY5Q8VfHC2m8C2Q+64p6+J+ODtN4Fsj91xT18D2phtNKsszTSyTvzaD9XQJOqLKt+X888R/G+2k8B2Q+64p6+HxvtpPAdkPuuKevkB7VkwqBmuaKO/tBcFHHFza2Hif4320vgOyH3Sv9ePnxvNpfAdkPutd68B7dgS1bRZ4d+N3tJ4Fsn91r/Xg+N3tJ4Fsn91r/XgPbcgHiOT2XO0jfqWyf3Wv9eEt7LbaP2v0LZP7pX+vAdC4Y6m6eqbtHOHz4q8Ur2sQcc4YcTrr86DCdf57IZ+5/55j58fmk7uruQ/V/6nRnyooNpjsyVTXR+jM5IhWx47KvRh+obfGJW7v5ofq/8AUy7E0+RBkg+6b/sT6j5x9+9QZifeBW8ef5v1Bx5/2J9RDMT494JyDx1/2J9QPWt3ein1HiaxjFxlXx5v2J9Qr3Rf9ifUNgnybwgg8df9ifUfON93vU+oCyFyFVx5/wBifUL4+/eoe5oJgEDjfd71PqDjfd71PqPE1kIkIPHX/Yn1Bx1/2J9QE4CBxtvmfUHG+73qfUBPkERozMirvkPjfd71PqLPZnH2w6vpKxIqKqeje+OCrSWWL/s7q93ukLD+XvXgu2YXBNnsMpNybIzJ/PVBD2or7ny41d3POU3spNoH7muj2Y/7qau9dKqo9kJjD9x14rgKX95BWdz/AHJ8/f8Aj+ROef8APw71H5KqEHaJ4aud7Y1T5+sPeAtTqqZfo4zi0fsg8XVERaLZ1UT83tQ13rv/ABD4wmM+D4B6Cs9ZPP1lqz9rU9WbCYDTUNPlQRxonT8cWeKnkyl9krjkXc00mzvc/wC2Gu7v+9CX2SuOPvUmzvoa710j+st9ofsqnpqfdM5js2m489z+yCxl96nwP0FZ6wV9Vw4YtKvtNBg/tf4QT/jk4fjLU/2tTqmJTanMxXTM72qc8n4UK996LDu7/JP+MMJwjVvcb2+5Dh/t+RP+MaYcCfwon+Rq+XVMJoGXeF1aWnMU4U6/udRhfo5/xxmfhKrX3ocO+xP+Me9HNDrqnQZEtYXG5zT4QavsqH7E/wCMJTb6rX80VD9mf8Yl0kzroOoDMhzf4QazsqH7E/4wn3/VfZ0X2Z/xh0czrqnQwOd+/wAq+zovsz/jCff3VdnR/Zn/ABh0k0Ougvdt00w+WZi/UN4ntLPUdy10pfa+ZH7X/Ur48Rdf+SfUdGivCDnX2Zzdx4BsVu47St5xDq8j6TyhsvtfVYZULPB3KV5O53LNay93/h9ZqfhuxXwfBfQVH45ROj+TN3+MZn1bxwP4a8U8Hwb0E/458+GnFewwb0E/45Dp5p7IOZAAG1lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/9k=\n", "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 188, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import YouTubeVideo\n", "YouTubeVideo(\"qjM9yMarl70\",width=800, height=450)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "> **_Video Lecture_**. Then check out a few comments on [\"Network Notation\"](https://youtu.be/MMziC5xktHs). " ] }, { "cell_type": "code", "execution_count": 189, "metadata": {}, "outputs": [ { "data": { "image/jpeg": "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\n", "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 189, "metadata": {}, "output_type": "execute_result" } ], "source": [ "YouTubeVideo(\"MMziC5xktHs\",width=800, height=450)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "> __Reading__. We'll be reading the textbook _Network Science_ (NS) by Laszlo Barabasi. You can read the whole \n", "> thing for free [**here**](http://barabasi.com/networksciencebook/). \n", "> \n", "> * Read chapter 1\\.\n", "> * Read chapter 2\\.\n", "> " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "> __Exercise 1__ Answer in a Jupyter notebook.\n", "> * List three different real networks and state the nodes and links for each of them.\n", "> * Tell us of the network you are personally most interested in. Address the following questions:\n", "> * What are its nodes and links? \n", "> * How large is it? \n", "> * Can be mapped out? \n", "> * Why do you care about it? \n", "> * In your view what would be the area where network science could have the biggest impact in the next decade? Explain your answer - and base it on the text in the book. \n", ">\n", "> One person per pair: go to [DTU Learn](https://learn.inside.dtu.dk/d2l/home/145262) and fill the Survey \"_Networks_\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Part 2: Exercises using the `NetworkX` library\n", "\n", "We will analyse networks in Python using the [NetworkX](https://networkx.org/) library. The cool thing about networkx is that it includes a lot of algorithms and metrics for analysing networks, so you don't have to code things from scratch. Get started by running the magic ``pip install networkx`` command. Then, get familiar with the library through the following exercises: \n", "\n", "> __Exercises__ We will start by solving some exercises from the book.\n", "\n", "> * Go to the NetworkX project's [tutorial page](https://networkx.org/documentation/stable/tutorial.html). The goal of this exercise is to create your own notebook that contains the entire tutorial. You're free to add your own (e.g. shorter) comments in place of the ones in the official tutorial - and change the code to make it your own where ever it makes sense.\n", "> * Go to Section 2.12: [Homework](http://networksciencebook.com/chapter/2#homework2), then\n", "> * Write the solution for exercise 2.1 (the 'Königsberg Problem') from NS in your notebook.\n", "> * Solve exercise 2.3 ('Graph representation') from NS using NetworkX in your notebook. (You don't have to solve the last sub-question about cycles of length 4 ... but I'll be impressed if you do it).\n", "> * Solve exercise 2.5 ('Bipartite Networks') from NS using NetworkX in your notebook." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Part 3: Building the network of Computational Social Scientisti" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ok, enough with theory :) It is time to go back to our cool dataset that was super painful to download! And guess what? We will build the network of Computational Social Scientists. Then, we will use some Network Science to study some of its properties." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "> **Exercise 1: Filter Computational Social Science Papers**. Our set of articles contains many papers that we do not want to retain. A first task is that of selecting CSS papers. We will adopt a heuristic method. What we know ia that Computational Social Science is about using quantitative methods to tackle a Social Science questions. So, we will filter papers that cover at least one field within the Social Science, and that include some quantiative methods or some experts in a quantitative discipline. Follow me:\n", "> 1. Write a function that given a list of authorIds outputs the list of their top fields. __Note:__ You should use the column \"*field*\" in your *author* dataset. \n", "> 2. Apply this function to each record of the authorIds column in your *paper* dataset. Store the result in a new column of your *paper* dataset, called \"*author_field*\". \n", "> 3. Create a set of *social_science_fields* that includes the following disciplines: _Political Science_, _Sociology_, _Economics_ \n", "> 4. Create a set of *quantitative_fields* that includes the following disciplines: _Mathematics_, _Physics_, _Computer Science_. \n", "> 5. Select the subset of rows in your paper dataset that respect all of the following conditions: \n", "> * the paper *fields* include at least one of the *social_science_fields* \n", "> * the paper *fields* include at least one of the *quantitative_fields* OR the paper is written by at least one author whose top field is among the *quantitative_fields*.\n", "> * the paper does not include the field \"_Biology_\" \n", "> * the paper has less than 10 Computational Social Science authors \n", "> * the paper is published after 2008 \n", "> * the paper has a DOI \n", ">Store the results in a new dataframe called *ccs_papers*. Save the dataframe to file. __Note:__ we will not use the entire _paper_ dataset again. \n", "> 6. How many papers are you left with? How many unique authors are involved in these papers? \n", "> 7. Print the titles of the top 10 papers in your set (by citation count). Do you think that these papers are from Computational Social Science? \n", "> 8. Why do you think I wanted you to use the selection criteria above? " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "> **Exercise 2: Build the network of Computational Social Scientists**. We are ready!! After crunching all this data, we are getting closer to our object of study, let's build the network of Computational Social Scientists! In this network, nodes correspond to authors of papers, and a direct link going from node _A_ to node _B_ exists if _A_ and _B_ ever worked together. The weight on the link corresponds to the number of times _A_ worked with _B_. \n", ">\n", "> 1. Consider your dataframe of *ccs_papers*. Create a weighted _edgelist_, where each element of the list is a tuple with three entries. The first two entries are the _authorIds_ of two authors that have collaborated on at least one paper, the last entry is the number of papers they have worked on together. Note that we want each pair of authors to appear only once in the list. \n", "> 2. Create an undirected [``Graph``](https://networkx.org/documentation/stable/reference/classes/graph.html) using networkx. Then, use the networkx function [``add_weighted_edges_from``](https://networkx.org/documentation/stable/reference/classes/generated/networkx.Graph.add_weighted_edges_from.html#networkx.Graph.add_weighted_edges_from) to create a weighted, undirected, graph starting from the edgelist you created in step 1. \n", "> 3. Add the following attributes to each node as a [node attribute](https://networkx.org/documentation/stable/reference/generated/networkx.classes.function.set_node_attributes.html):\n", "> * the author's _name_. For this, go back to your _author_ dataset. Remember how you have stored both the _name_ and the _aliases_ of an author. Now, what happens is that (don't ask me why!) the first _name_ of authors is often truncated to the first letter (for example my own _name_ in the dataset is \"_L. Alessandretti_\"). However, the full author's name can often be found among the aliases (in my case it would be \"_Laura Alessandretti_\"). Make sure that, if the full name is available among the aliases, you use that one. __Note:__ Here you need to use some heuristics. Just make reasonable choices!\n", "> * the author's _top field_.\n", "> * the author's median _citation_count_ (considering only the ccs papers)\n", "> * the author's total number of _ccs_papers_ \n", "> * the year in which the author published they first _ccs paper_ \n", "> Save the Network as a json file, and give yourself a pat on the back :) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Part 4: Preliminary analysis of the Computational Social Scientists" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We begin with a preliminary analysis of the network.\n", "\n", "> **Exercise 3: Basic analysis of the network of Computational Social Scientists**\n", "> 1. Why do you think I want you guys to use an _undirected_ graph? Could have we used an directed graph instead?\n", "> 2. What is the total number of nodes in the network? What is the total number of links? What is the density of the network (that is the total number of links over the maximum number of links)?\n", "> 3. What are the average, median, mode, minimum and maximum value of the degree? What are the average, median, mode, minimum and maximum value of the nodes strength? How do you intepret the results?\n", "> 4. List the top 5 authors by degree. What is their total number of citations? \n", "> 5. Look them up online. What do they work on? \n", "> 6. Plot the distribution of degrees, using appropriate binning. What do you observe? \n", "> 7. Plot a scatter plot of the the degree versus the \"*median number of citations*\" per ccs paper for all authors. Use logarithmic axes where appropriate. Compute the [spearman correlation](https://en.wikipedia.org/wiki/Spearman%27s_rank_correlation_coefficient) between the two. \n", "> 8. Bin your degrees using the bins in point 6. and compute the 25th, 50th, and 75th percentile in each bin. Add the result to your figure as a line plot with errorbars (the median value is the line plot, and the 25th and 75th percentiles are the errorbars). \n", "> 9. Why do you think I wanted you guys to use the Spearman correlation (instead of the usual Pearson correlation)? \n", "> 10. Comment on your results. Do you observe any relation? If yes, what could be the underlying reason, and how could you further explore possible reasons? If not, why do you think that is the case? " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Your feedback" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "I hope you enjoyed today's class. It would be awesome if you could spend a few minutes to share your feedback. \n", "**Go to [DTU Learn](https://learn.inside.dtu.dk/d2l/home/145262) and fill the Survey \"_Week 4 - Feedback\"_.**" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.7" } }, "nbformat": 4, "nbformat_minor": 1 }