У овој радној свесци ћемо истражити интересовања студената за различите факултете кроз отворене податке Министарства за просвету, науку и технолошки развој: http://opendata.mpn.gov.rs/index.php?ucenici_studenti=visoko. Сет података у .csv формату налази се у фолдеру са подацима (док се радна свеска коришћена за његову претходну припрему и издвајање релевантних података налази у додатку на крају приручника), а у наставку ћемо се фокусирати на:
import pandas as pd
import matplotlib.pyplot as plt
import plotly.express as px
import numpy as np
Нова библиотека коју ћемо користити за неке од визуализација у наставку је plotly и специјално plotly.express којa нам омогућавају интерактивне визуализације. За почетак ћемо као и обично учитати фајл са подацима (read_csv) и прегледати првих пар редова (head):
studenti_agregirano = pd.read_csv('data/studenti data/studenti_osnovnih_studija_agregirano.csv')
studenti_agregirano.head(2)
Naziv ustanove | Univerzitet | Nivo | Zvanje | Dužina trajanja programa (u god) | Polje_skraceno | Vlasnistvo | Akreditaciona kvota | Broj studenata | Broj prijavljenih kandidata | ... | Studenti prva godina | Studenti druga godina | Studenti treća godina | Studenti četvrta godina | Studenti peta godina | Studenti šesta godina | Broj budžetskih studenata | Broj samofinansirajućih studenata | Broj stranih studenata | Broj studenata na zavrsnoj godini | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Agronomski fakultet, Čačak | Univerzitet u Kragujevcu | Osnovne akademske | Diplomirani inženjer poljoprivrede | 4 | TT | Državni fakultet | 60.0 | 174.0 | 36.0 | ... | 50.0 | 29.0 | 36.0 | 28.0 | 31.0 | 0.0 | 132.0 | 42.0 | 0.0 | 28.0 |
1 | Agronomski fakultet, Čačak | Univerzitet u Kragujevcu | Osnovne akademske | Diplomirani inženjer tehnologije | 4 | TT | Državni fakultet | 40.0 | 69.0 | 20.0 | ... | 22.0 | 19.0 | 14.0 | 10.0 | 4.0 | 0.0 | 39.0 | 30.0 | 0.0 | 10.0 |
2 rows × 21 columns
Све колоне, њихову попуњеност и тип података који садрже видећемо као и до сада функцијом info:
studenti_agregirano.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 367 entries, 0 to 366 Data columns (total 21 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Naziv ustanove 367 non-null object 1 Univerzitet 367 non-null object 2 Nivo 367 non-null object 3 Zvanje 367 non-null object 4 Dužina trajanja programa (u god) 367 non-null int64 5 Polje_skraceno 367 non-null object 6 Vlasnistvo 367 non-null object 7 Akreditaciona kvota 367 non-null float64 8 Broj studenata 367 non-null float64 9 Broj prijavljenih kandidata 367 non-null float64 10 Broj svršenih studenata tokom prethodne školske godine 367 non-null float64 11 Studenti prva godina 367 non-null float64 12 Studenti druga godina 367 non-null float64 13 Studenti treća godina 367 non-null float64 14 Studenti četvrta godina 367 non-null float64 15 Studenti peta godina 367 non-null float64 16 Studenti šesta godina 367 non-null float64 17 Broj budžetskih studenata 367 non-null float64 18 Broj samofinansirajućih studenata 367 non-null float64 19 Broj stranih studenata 367 non-null float64 20 Broj studenata na zavrsnoj godini 367 non-null float64 dtypes: float64(14), int64(1), object(6) memory usage: 60.3+ KB
Ако желите да сазнате још мало о садржају ових колона, можете то пробати функцијом describe. Функција describe излистава основну статистику о нумеричким колонама - просечну вредност у колони, најмању и највећу вредности, вредност од које је 25%, 50%, 75% елемената низа мања итд.
studenti_agregirano.describe()
Dužina trajanja programa (u god) | Akreditaciona kvota | Broj studenata | Broj prijavljenih kandidata | Broj svršenih studenata tokom prethodne školske godine | Studenti prva godina | Studenti druga godina | Studenti treća godina | Studenti četvrta godina | Studenti peta godina | Studenti šesta godina | Broj budžetskih studenata | Broj samofinansirajućih studenata | Broj stranih studenata | Broj studenata na zavrsnoj godini | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
count | 367.000000 | 367.000000 | 367.000000 | 367.000000 | 367.00000 | 367.000000 | 367.000000 | 367.000000 | 367.000000 | 367.000000 | 367.000000 | 367.000000 | 367.000000 | 367.000000 | 367.000000 |
mean | 4.024523 | 116.523161 | 433.836512 | 130.198910 | 53.46594 | 100.092643 | 79.539510 | 83.168937 | 148.752044 | 12.940054 | 9.343324 | 214.106267 | 217.103542 | 2.626703 | 162.373297 |
std | 0.492510 | 210.088334 | 839.688077 | 336.320765 | 100.87813 | 184.705221 | 153.743943 | 160.213003 | 349.124355 | 56.847286 | 71.586639 | 391.661352 | 474.214692 | 21.565370 | 353.810822 |
min | 3.000000 | 0.000000 | 0.000000 | 0.000000 | 0.00000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 |
25% | 4.000000 | 30.000000 | 67.500000 | 14.000000 | 5.00000 | 17.000000 | 11.500000 | 11.000000 | 10.000000 | 0.000000 | 0.000000 | 24.500000 | 20.500000 | 0.000000 | 17.500000 |
50% | 4.000000 | 55.000000 | 182.000000 | 40.000000 | 22.00000 | 48.000000 | 38.000000 | 35.000000 | 48.000000 | 0.000000 | 0.000000 | 94.000000 | 77.000000 | 0.000000 | 54.000000 |
75% | 4.000000 | 100.000000 | 415.000000 | 111.500000 | 54.00000 | 90.000000 | 77.000000 | 84.500000 | 134.000000 | 0.000000 | 0.000000 | 220.000000 | 193.000000 | 0.000000 | 148.500000 |
max | 6.000000 | 1560.000000 | 7051.000000 | 4963.000000 | 759.00000 | 1268.000000 | 1542.000000 | 1664.000000 | 3256.000000 | 618.000000 | 978.000000 | 3203.000000 | 4567.000000 | 357.000000 | 3256.000000 |
А ако желимо сазнати више о колонама у којима су текстуалне вредности, ислиставање различитих вредности помоћу функције unique је један начин:
studenti_agregirano['Univerzitet'].unique()
array(['Univerzitet u Kragujevcu', 'Univerzitet u Novom Sadu', 'Univerzitet u Beogradu', 'Univerzitet u Nišu', 'Državni Univerzitet u Novom Pazaru', 'Univerzitet u Prištini', 'Univerzitet odbrane', 'Univerzitet Singidunum', 'Univerzitet Alfa BK', 'Univerzitet umetnosti u Beogradu', 'Univerzitet Megatrend', 'Univerzitet Union - Nikola Tesla', 'Univerzitet Edukons'], dtype=object)
Анализу можемо започети истраживањем факултета који имају највише студената. Како се неки факултети (са различитим смеровима) у нашој табели појављују више пута, искористићемо функцију groupby да податке групишемо по имену установе и универзитету коме припада. На овај начин добијамо низ нових табелица које садрже редове који имају исти универзитет и факултет. Како нас не занимају целокупне те подтабелице, ми ћемо само у тако добијеним групама сабрати sum износе који се налазе у колони о броју студената. Другом линијом кода смо сортирали табелу користећи функцију sort_values , за опадајући низ искористили смо аргумент ascending=False
и затим смо само представили првих 10 елемената табеле:
fakulteti_po_broju_studenata = studenti_agregirano.groupby(['Naziv ustanove','Univerzitet'])['Broj studenata'].sum()
fakulteti_po_broju_studenata = fakulteti_po_broju_studenata.sort_values(ascending=False)
fakulteti_po_broju_studenata[:10]
Naziv ustanove Univerzitet Fakultet tehničkih nauka Univerzitet u Novom Sadu 11367.0 Pravni fakultet Univerzitet u Beogradu 7051.0 Ekonomski fakultet Univerzitet u Beogradu 6659.0 Filološki fakultet Univerzitet u Beogradu 6554.0 Prirodno-matematički fakultet Univerzitet u Novom Sadu 5762.0 Medicinski fakultet Univerzitet u Beogradu 4882.0 Fakultet organizacionih nauka Univerzitet u Beogradu 4351.0 Medicinski fakultet Univerzitet u Novom Sadu 4216.0 Poljoprivredni fakultet Univerzitet u Beogradu 3911.0 Elektrotehnički fakultet Univerzitet u Beogradu 3715.0 Name: Broj studenata, dtype: float64
Видимо да се међу 10 највећих факултета налазе само факултети у Београду и Новом Саду, истражите мало више ову ранг листу (мењајући број елемената које исписујете) да видите на ком месту се појављују и други универзитетски градови.
Ове податке можемо једноставно представити стубичастим дијаграмом. Како је назив сваког факултета и универзитета дугачак, није прегледно да то урадимо усправним стубићима које смо да сада најчешће користили, већ ћемо испробати хоризонталне. Такође, уместо функције из matplotlib библиотеке, искористићемо функцију plot у оквиру pandas библиотеке а којој је довољно аргументом kind нагласити који тип графика желимо да нацртамо (изостављање овог аргумента црта линијски дијаграм, док ћемо ми искористити kind='barh'
).
fakulteti_po_broju_studenata[:10].plot(kind='barh')
plt.xlabel('Broj studenata')
plt.show()
Слично можемо истражити и који факултети су најтраженији, сабирајући не колону о броју студената већ колону која садржи број пријављених кандидата:
fakulteti_po_broju_prijavljenih = studenti_agregirano.groupby(['Naziv ustanove','Univerzitet'])['Broj prijavljenih kandidata'].sum()
fakulteti_po_broju_prijavljenih.sort_values(ascending=False)[:10]
Naziv ustanove Univerzitet Fakultet organizacionih nauka Univerzitet u Beogradu 4963.0 Fakultet tehničkih nauka Univerzitet u Novom Sadu 2781.0 Elektrotehnički fakultet Univerzitet u Beogradu 2418.0 Ekonomski fakultet Univerzitet u Beogradu 2366.0 Filološki fakultet Univerzitet u Beogradu 1428.0 Rektorat univerzitet Singidunum Univerzitet Singidunum 1416.0 Medicinski fakultet Univerzitet u Beogradu 1382.0 Pravni fakultet Univerzitet u Beogradu 1272.0 Medicinski fakultet Univerzitet u Novom Sadu 1197.0 Prirodno-matematički fakultet Univerzitet u Novom Sadu 1195.0 Name: Broj prijavljenih kandidata, dtype: float64
За разумевање популарности факултета, није довољно да гледамо само укупан број пријављених, већ је згодно тај број ставити у неки контекст, зато што није исто да ли се 150 студената пријављује на факултет који прима 150 или 15 студената. Стога ћемо увести и колону која нам говори о томе колико је пријављених у односу на акредитован број места на факултету:
studenti_agregirano['Potraznja'] = round(studenti_agregirano['Broj prijavljenih kandidata']/studenti_agregirano['Akreditaciona kvota'],2)
Треба имати на уму да подаци често нису потпуни, па је можда акредитациона квота негде недостајућа, погледајмо колико има редова табеле у којима је број акредитованих места (колона Akreditaciona kvota) једнак 0. Ово радимо тако што користимо услов studenti_agregirano['Akreditaciona kvota']==0
да издвојимо оне редове табеле код којих је услов задовољен:
len(studenti_agregirano[studenti_agregirano['Akreditaciona kvota']==0])
37
Чак 37 разматраних смерова на факултетима има у пољу акредитованих студената 0! У тим случајевима, немамо адекватну процењену потражњу, погледајмо детаљније те факултете да видимо да ли су остали подаци доступни:
studenti_agregirano[studenti_agregirano['Akreditaciona kvota']==0]
Naziv ustanove | Univerzitet | Nivo | Zvanje | Dužina trajanja programa (u god) | Polje_skraceno | Vlasnistvo | Akreditaciona kvota | Broj studenata | Broj prijavljenih kandidata | ... | Studenti druga godina | Studenti treća godina | Studenti četvrta godina | Studenti peta godina | Studenti šesta godina | Broj budžetskih studenata | Broj samofinansirajućih studenata | Broj stranih studenata | Broj studenata na zavrsnoj godini | Potraznja | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
22 | Građevinsko-arhitektonski fakultet | Univerzitet u Nišu | Osnovne akademske | Diplomirani inženjer arhitekture (tehničke nauke) | 4 | TT | Državni fakultet | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | NaN |
33 | Departman za matematičke nauke | Državni Univerzitet u Novom Pazaru | Osnovne akademske | Diplomirani profesor informatike i fizike | 4 | PM | Državni fakultet | 0.0 | 61.0 | 0.0 | ... | 0.0 | 24.0 | 37.0 | 0.0 | 0.0 | 28.0 | 33.0 | 0.0 | 37.0 | NaN |
37 | Departman za tehničke nauke | Državni Univerzitet u Novom Pazaru | Osnovne akademske | Diplomirani inženjer arhitekture (tehničke nauke) | 4 | TT | Državni fakultet | 0.0 | 155.0 | 0.0 | ... | 41.0 | 34.0 | 35.0 | 0.0 | 0.0 | 81.0 | 68.0 | 6.0 | 35.0 | NaN |
45 | Departman za filološke nauke | Državni Univerzitet u Novom Pazaru | Osnovne akademske | Diplomirani filolog engleskog jezika i književ... | 4 | DH | Državni fakultet | 0.0 | 166.0 | 0.0 | ... | 43.0 | 39.0 | 26.0 | 0.0 | 0.0 | 64.0 | 102.0 | 0.0 | 26.0 | NaN |
46 | Departman za filološke nauke | Državni Univerzitet u Novom Pazaru | Osnovne akademske | Diplomirani filolog srpske književnosti i jezika | 4 | DH | Državni fakultet | 0.0 | 174.0 | 0.0 | ... | 51.0 | 39.0 | 25.0 | 0.0 | 0.0 | 84.0 | 89.0 | 1.0 | 25.0 | NaN |
47 | Departman hemijsko-tehnološke nauke | Državni Univerzitet u Novom Pazaru | Osnovne akademske | Diplomirani inženjer poljoprivrede | 4 | TT | Državni fakultet | 0.0 | 194.0 | 0.0 | ... | 52.0 | 41.0 | 38.0 | 0.0 | 0.0 | 98.0 | 96.0 | 0.0 | 38.0 | NaN |
48 | Departman hemijsko-tehnološke nauke | Državni Univerzitet u Novom Pazaru | Osnovne akademske | Diplomirani inženjer tehnologije | 4 | TT | Državni fakultet | 0.0 | 205.0 | 0.0 | ... | 55.0 | 39.0 | 39.0 | 0.0 | 0.0 | 102.0 | 101.0 | 2.0 | 39.0 | NaN |
59 | Ekonomski fakultet, Subotica | Univerzitet u Novom Sadu | Osnovne akademske | Ekonomista | 3 | DH | Državni fakultet | 0.0 | 9.0 | 0.0 | ... | 1.0 | 8.0 | 0.0 | 0.0 | 0.0 | 0.0 | 9.0 | 0.0 | 8.0 | NaN |
77 | Medicinski fakultet VMA | Univerzitet odbrane | Integr. akademske | Doktor medicine | 6 | MD | Državni fakultet | 0.0 | 158.0 | 0.0 | ... | 25.0 | 26.0 | 28.0 | 29.0 | 25.0 | 157.0 | 0.0 | 1.0 | 25.0 | NaN |
85 | Pedagoški fakultet, Sombor | Univerzitet u Novom Sadu | Osnovne akademske | Bibliotekar | 3 | DH | Državni fakultet | 0.0 | 16.0 | 0.0 | ... | 8.0 | 8.0 | 0.0 | 0.0 | 0.0 | 15.0 | 1.0 | 0.0 | 8.0 | NaN |
110 | Pravoslavni bogoslovski fakultet | Univerzitet u Beogradu | Osnovne akademske | Teolog | 3 | DH | Državni fakultet | 0.0 | 56.0 | 0.0 | ... | 0.0 | 56.0 | 0.0 | 0.0 | 0.0 | 0.0 | 56.0 | 0.0 | 56.0 | NaN |
203 | Fakultet za biofarming - Bačka Topola | Univerzitet Megatrend | Osnovne akademske | Diplomirani inženjer poljoprivrede | 4 | TT | Privatni fakultet | 0.0 | 77.0 | 0.0 | ... | 12.0 | 14.0 | 26.0 | 0.0 | 0.0 | 0.0 | 77.0 | 0.0 | 26.0 | NaN |
204 | Fakultet za graditeljski menadžment bez svojst... | Univerzitet Union - Nikola Tesla | Osnovne akademske | Diplomirani inženjer arhitekture (tehničke nauke) | 4 | TT | Privatni fakultet | 0.0 | 93.0 | 0.0 | ... | 27.0 | 34.0 | 22.0 | 0.0 | 0.0 | 0.0 | 93.0 | 0.0 | 22.0 | NaN |
205 | Fakultet za graditeljski menadžment bez svojst... | Univerzitet Union - Nikola Tesla | Osnovne akademske | Diplomirani inženjer građevinarstva | 4 | TT | Privatni fakultet | 0.0 | 60.0 | 0.0 | ... | 11.0 | 22.0 | 21.0 | 0.0 | 0.0 | 0.0 | 60.0 | 0.0 | 21.0 | NaN |
206 | Fakultet za evropske pravno-političke studije ... | Univerzitet Edukons | Osnovne akademske | Diplomirani politikolog | 3 | DH | Privatni fakultet | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | NaN |
207 | Fakultet za evropske pravno-političke studije ... | Univerzitet Edukons | Osnovne akademske | Diplomirani pravnik | 4 | DH | Privatni fakultet | 0.0 | 115.0 | 0.0 | ... | 14.0 | 36.0 | 47.0 | 0.0 | 0.0 | 0.0 | 115.0 | 0.0 | 47.0 | NaN |
208 | Fakultet za ekonomiju, finansije i administrac... | Univerzitet Singidunum | Osnovne akademske | Ekonomista | 3 | DH | Privatni fakultet | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | NaN |
209 | Fakultet za ekonomiju, finansije i administrac... | Univerzitet Singidunum | Osnovne akademske | Menadžer | 3 | DH | Privatni fakultet | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | NaN |
210 | Fakultet za kulturu i medije - Beograd | Univerzitet Megatrend | Osnovne akademske | Diplomirani menadžer | 4 | DH | Privatni fakultet | 0.0 | 446.0 | 0.0 | ... | 67.0 | 65.0 | 152.0 | 0.0 | 0.0 | 0.0 | 446.0 | 0.0 | 152.0 | NaN |
211 | Fakultet za kulturu i medije - Beograd | Univerzitet Megatrend | Osnovne akademske | Diplomirani novinar/žurnalista | 4 | DH | Privatni fakultet | 0.0 | 191.0 | 0.0 | ... | 25.0 | 14.0 | 93.0 | 0.0 | 0.0 | 0.0 | 191.0 | 0.0 | 93.0 | NaN |
215 | Fakultet za menadžment- Zaječar | Univerzitet Megatrend | Osnovne akademske | Diplomirani ekonomista | 4 | DH | Privatni fakultet | 0.0 | 125.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 125.0 | 0.0 | 0.0 | NaN |
216 | Fakultet za menadžment- Zaječar | Univerzitet Megatrend | Osnovne akademske | Diplomirani menadžer | 4 | DH | Privatni fakultet | 0.0 | 65.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 65.0 | 0.0 | 0.0 | NaN |
217 | Fakultet za međunarodnu ekonomiju - Beograd | Univerzitet Megatrend | Osnovne akademske | Diplomirani ekonomista | 4 | DH | Privatni fakultet | 0.0 | 284.0 | 0.0 | ... | 61.0 | 39.0 | 70.0 | 0.0 | 0.0 | 0.0 | 284.0 | 0.0 | 70.0 | NaN |
218 | Fakultet za međunarodnu politiku i bezbednost ... | Univerzitet Union - Nikola Tesla | Osnovne akademske | Diplomirani politikolog za međunarodne poslove | 4 | DH | Privatni fakultet | 0.0 | 43.0 | 0.0 | ... | 5.0 | 7.0 | 19.0 | 0.0 | 0.0 | 0.0 | 43.0 | 0.0 | 19.0 | NaN |
219 | Fakultet za poslovne studije - Beograd | Univerzitet Megatrend | Osnovne akademske | Diplomirani ekonomista | 4 | DH | Privatni fakultet | 0.0 | 878.0 | 0.0 | ... | 180.0 | 150.0 | 395.0 | 0.0 | 0.0 | 0.0 | 878.0 | 0.0 | 395.0 | NaN |
220 | Fakultet za pravo, javnu upravu i bezbednost- ... | Univerzitet Megatrend | Osnovne akademske | Diplomirani pravnik unutrašnjih poslova | 4 | DH | Privatni fakultet | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | NaN |
223 | Fakultet za projektni i inovacioni menadžment ... | Univerzitet Edukons | Osnovne akademske | Menadžer | 3 | DH | Privatni fakultet | 0.0 | 10.0 | 0.0 | ... | 2.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 | NaN |
225 | Fakultet za sport i turizam (TIMS) - Novi Sad | Univerzitet Edukons | Osnovne akademske | Diplomirani menadžer | 4 | DH | Privatni fakultet | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | NaN |
226 | Fakultet za sport i turizam (TIMS) - Novi Sad | Univerzitet Edukons | Osnovne akademske | Diplomirani profesor fizičkog vaspitanja i spo... | 4 | DH | Privatni fakultet | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | NaN |
227 | Fakultet za sport i turizam (TIMS) - Novi Sad | Univerzitet Edukons | Osnovne akademske | Diplomirani psiholog | 4 | DH | Privatni fakultet | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | NaN |
229 | Fakultet za umetnost i dizajn - Beograd | Univerzitet Megatrend | Osnovne akademske | Diplomirani dizajner | 4 | UM | Privatni fakultet | 0.0 | 81.0 | 0.0 | ... | 20.0 | 20.0 | 20.0 | 0.0 | 0.0 | 0.0 | 81.0 | 0.0 | 20.0 | NaN |
230 | Fakultet za fizičku kulturu i menadžment u sportu | Univerzitet Singidunum | Osnovne akademske | Diplomirani menadžer | 4 | DH | Privatni fakultet | 0.0 | 25.0 | 0.0 | ... | 6.0 | 0.0 | 2.0 | 0.0 | 0.0 | 0.0 | 25.0 | 0.0 | 2.0 | NaN |
231 | Fakultet za fizičku kulturu i menadžment u sportu | Univerzitet Singidunum | Osnovne akademske | Diplomirani profesor fizičkog vaspitanja i spo... | 4 | DH | Privatni fakultet | 0.0 | 83.0 | 0.0 | ... | 14.0 | 9.0 | 28.0 | 0.0 | 0.0 | 0.0 | 83.0 | 0.0 | 28.0 | NaN |
257 | Fakultet sporta i fizičkog vaspitanja | Univerzitet u Beogradu | Osnovne akademske | Diplomirani profesor sporta | 4 | DH | Državni fakultet | 0.0 | 17.0 | 0.0 | ... | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0 | 0.0 | 17.0 | NaN |
258 | Fakultet sporta i fizičkog vaspitanja | Univerzitet u Beogradu | Osnovne akademske | Diplomirani profesor fizičkog vaspitanja | 4 | DH | Državni fakultet | 0.0 | 27.0 | 0.0 | ... | 0.0 | 0.0 | 27.0 | 0.0 | 0.0 | 0.0 | 27.0 | 0.0 | 27.0 | NaN |
308 | Fizički fakultet | Univerzitet u Beogradu | Osnovne akademske | Fizičar | 3 | PM | Državni fakultet | 0.0 | 30.0 | 0.0 | ... | 1.0 | 29.0 | 0.0 | 0.0 | 0.0 | 2.0 | 28.0 | 0.0 | 29.0 | NaN |
362 | Hemijski fakultet | Univerzitet u Beogradu | Osnovne akademske | Biohemičar | 4 | PM | Državni fakultet | 0.0 | 81.0 | 0.0 | ... | 7.0 | 25.0 | 49.0 | 0.0 | 0.0 | 34.0 | 47.0 | 0.0 | 49.0 | NaN |
37 rows × 22 columns
Испоставља се да су редови без унете Акредитационе квоте такође они редови који немају унете податке о пријављеним студентима (проверите то сумирајући одговарајућу колону). У оваквим ситуацијама, када се у дељењу колона појави 0/0, у ћелији табеле појављује се 'NaN' (не број - енг. not a number). Овакве редове ћемо изоставити из разматрања о потражњи студијских програма користећи функцију dropna пре цртања. Погледајмо сад који су то смерови на факултетима они за којима влада највећа потражња.
Сада поново користимо функцију sort_values, али овај пут зато што сортирамо табелу са пуно колона, користимо аргумент by да назначимо по којој колони да се изврши сортирање. Како је исход сортирања целокупна табела са свим својим колонама, да не бисмо затрпавали овај преглед издвојили смо само четири колоне како бисмо идентификовали најпопуларније студијске програме:
studenti_agregirano.sort_values(by='Potraznja',ascending=False)[['Naziv ustanove','Zvanje','Univerzitet','Potraznja']][:10]
Naziv ustanove | Zvanje | Univerzitet | Potraznja | |
---|---|---|---|---|
201 | Fakultet dramskih umetnosti | Diplomirani dramski i audiovizuelni umetnik | Univerzitet umetnosti u Beogradu | 8.34 |
62 | Elektrotehnički fakultet | Diplomirani inženjer softvera | Univerzitet u Beogradu | 6.72 |
240 | Fakultet medicinskih nauka | Doktor medicine | Univerzitet u Kragujevcu | 6.09 |
316 | Filozofski fakultet | Diplomirani psiholog | Univerzitet u Beogradu | 5.30 |
305 | Farmaceutski fakultet | Magistar farmacije medicinski biohemičar | Univerzitet u Beogradu | 4.94 |
331 | Filozofski fakultet | Diplomirani psiholog | Univerzitet u Novom Sadu | 3.50 |
241 | Fakultet medicinskih nauka | Doktor stomatologije | Univerzitet u Kragujevcu | 3.50 |
246 | Fakultet organizacionih nauka | Diplomirani inženjer organizacionih nauka | Univerzitet u Beogradu | 3.18 |
169 | Stomatološki fakultet | Doktor stomatologije | Univerzitet u Beogradu | 3.18 |
3 | Akademija umetnosti | Diplomirani dizajner | Univerzitet u Novom Sadu | 2.68 |
Борба за место на факултету је највиша на факултету драмских уметности где се преко 8 студената бори за једно место! Велика потражња влада и за студијама психологије и стоматологије.
Такође и Електротехнички факултет нашао се високо на овој листи, специфично са смером 'Софтверско инжињерство'. Међутим, ако погледате уносе за овај факултет (нпр. користећи ову линију кодаstudenti_agregirano[studenti_agregirano['Naziv ustanove']=='Elektrotehnički fakultet']
) видећете да се исти број пријављених студената наводи на оба смера. То може значити да је посреди грешка, или да се студенти при пријављивању за факултет не одлучују о смеру, већ ту одлуку доносе након резултата.
# место за ваш код
Са друге стране, поред потражње, занима нас и колико студената факултета заврши уписани факултет, ово смо назвали 'извесност дипломирања'. Како немамо број студената који су уписали годину пре 3, 4 или 5 година, да адекватно проценимо који проценат студената је дипломирао, као метод процене погледаћемо односе између броја студената који су у последњој школској години дипломирали и броја студената у првој години.
studenti_agregirano['Izvesnost diplomiranja'] = studenti_agregirano['Broj svršenih studenata tokom prethodne školske godine']/studenti_agregirano['Studenti prva godina']
Опет морамо проверити колико факултета није унело информације о студентима прве године као и како су одговарајући односи израчунати у том случају (тј. који је исход недозвољеног дељења са 0).
len(studenti_agregirano[studenti_agregirano['Studenti prva godina']==0])
37
studenti_agregirano[studenti_agregirano['Studenti prva godina']==0][['Akreditaciona kvota','Studenti prva godina','Broj svršenih studenata tokom prethodne školske godine','Izvesnost diplomiranja']]
Akreditaciona kvota | Studenti prva godina | Broj svršenih studenata tokom prethodne školske godine | Izvesnost diplomiranja | |
---|---|---|---|---|
3 | 22.0 | 0.0 | 0.0 | NaN |
4 | 20.0 | 0.0 | 0.0 | NaN |
7 | 43.0 | 0.0 | 37.0 | inf |
8 | 47.0 | 0.0 | 28.0 | inf |
21 | 180.0 | 0.0 | 0.0 | NaN |
22 | 0.0 | 0.0 | 74.0 | inf |
29 | 40.0 | 0.0 | 0.0 | NaN |
30 | 75.0 | 0.0 | 0.0 | NaN |
33 | 0.0 | 0.0 | 1.0 | inf |
42 | 30.0 | 0.0 | 6.0 | inf |
50 | 30.0 | 0.0 | 0.0 | NaN |
51 | 30.0 | 0.0 | 0.0 | NaN |
59 | 0.0 | 0.0 | 1.0 | inf |
82 | 14.0 | 0.0 | 11.0 | inf |
85 | 0.0 | 0.0 | 5.0 | inf |
110 | 0.0 | 0.0 | 229.0 | inf |
123 | 60.0 | 0.0 | 1.0 | inf |
158 | 180.0 | 0.0 | 18.0 | inf |
159 | 90.0 | 0.0 | 0.0 | NaN |
160 | 100.0 | 0.0 | 0.0 | NaN |
162 | 40.0 | 0.0 | 5.0 | inf |
163 | 50.0 | 0.0 | 16.0 | inf |
187 | 20.0 | 0.0 | 0.0 | NaN |
206 | 0.0 | 0.0 | 12.0 | inf |
208 | 0.0 | 0.0 | 41.0 | inf |
209 | 0.0 | 0.0 | 0.0 | NaN |
220 | 0.0 | 0.0 | 230.0 | inf |
225 | 0.0 | 0.0 | 1.0 | inf |
226 | 0.0 | 0.0 | 1.0 | inf |
227 | 0.0 | 0.0 | 0.0 | NaN |
244 | 84.0 | 0.0 | 0.0 | NaN |
245 | 52.0 | 0.0 | 34.0 | inf |
257 | 0.0 | 0.0 | 20.0 | inf |
258 | 0.0 | 0.0 | 29.0 | inf |
284 | 18.0 | 0.0 | 0.0 | NaN |
308 | 0.0 | 0.0 | 6.0 | inf |
362 | 0.0 | 0.0 | 25.0 | inf |
Видимо да је овај однос код факултета који имају 0 студената на 1. години некад 'NaN' а некад 'inf' (енг. infinity - бесконачно). До прве ситуације долази (као и у претходном примеру) када је и број свршених студената и број студената у 1. години 0. Насупрот томе, до друге ситуације долази када је број свршених студената неки број већи од 0, али је број студената у 1. години 0. То се дешава зато што тај смер више не постоји, или више није популаран па га више људи не уписују, али они који су га раније уписали завршавају. За ове смеровове мера излазности са факултета коју смо увели неће радити, али у задацима на крају ове радне свеске налазе се још неке идеје које можете пробати. За сада ћемо заменити све вредности 'inf' са 'NaN' користећи функцију replace:
studenti_agregirano = studenti_agregirano.replace({'Izvesnost diplomiranja':{np.inf:np.nan}})
Хајде да погледамо на којим факултетима је излазнос највећа, односно највећи је однос између дипломаца и бруцоша:
studenti_agregirano.sort_values(by='Izvesnost diplomiranja',ascending=False)[['Naziv ustanove','Zvanje','Univerzitet','Izvesnost diplomiranja','Vlasnistvo']][:10]
Naziv ustanove | Zvanje | Univerzitet | Izvesnost diplomiranja | Vlasnistvo | |
---|---|---|---|---|---|
138 | Prirodno-matematički fakultet | Diplomirani turizmolog | Univerzitet u Novom Sadu | 79.000000 | Državni fakultet |
205 | Fakultet za graditeljski menadžment bez svojst... | Diplomirani inženjer građevinarstva | Univerzitet Union - Nikola Tesla | 10.000000 | Privatni fakultet |
223 | Fakultet za projektni i inovacioni menadžment ... | Menadžer | Univerzitet Edukons | 5.375000 | Privatni fakultet |
152 | Rektorat | Diplomirani informatičar | Univerzitet Alfa BK | 5.000000 | Privatni fakultet |
204 | Fakultet za graditeljski menadžment bez svojst... | Diplomirani inženjer arhitekture (tehničke nauke) | Univerzitet Union - Nikola Tesla | 5.000000 | Privatni fakultet |
203 | Fakultet za biofarming - Bačka Topola | Diplomirani inženjer poljoprivrede | Univerzitet Megatrend | 2.120000 | Privatni fakultet |
219 | Fakultet za poslovne studije - Beograd | Diplomirani ekonomista | Univerzitet Megatrend | 1.941176 | Privatni fakultet |
153 | Rektorat | Diplomirani menadžer | Univerzitet Alfa BK | 1.925926 | Privatni fakultet |
222 | Fakultet za primenjenu ekologiju (FUTURA) | Diplomirani analitičar zaštite životne sredine | Univerzitet Singidunum | 1.914286 | Privatni fakultet |
136 | Prirodno-matematički fakultet | Diplomirani profesor matematike | Univerzitet u Novom Sadu | 1.900000 | Državni fakultet |
Нисмо се надали томе да овај однос прелази 1 - да на неком смеру у току годину дана има више дипломаца него бруцоша - но ако смерови уписују мали број студената и популарност варира, очекивано је да је можда ове године мање људи уписало факултет него пре 4-5 година. Међутим однос од 79, већ позива на проверу датог реда табеле коме ћемо приступити користећи iloc:
studenti_agregirano.iloc[138]
Naziv ustanove Prirodno-matematički fakultet Univerzitet Univerzitet u Novom Sadu Nivo Osnovne akademske Zvanje Diplomirani turizmolog Dužina trajanja programa (u god) 4 Polje_skraceno IMT Vlasnistvo Državni fakultet Akreditaciona kvota 160.0 Broj studenata 274.0 Broj prijavljenih kandidata 223.0 Broj svršenih studenata tokom prethodne školske godine 79.0 Studenti prva godina 1.0 Studenti druga godina 14.0 Studenti treća godina 8.0 Studenti četvrta godina 251.0 Studenti peta godina 0.0 Studenti šesta godina 0.0 Broj budžetskih studenata 58.0 Broj samofinansirajućih studenata 216.0 Broj stranih studenata 0.0 Broj studenata na zavrsnoj godini 251.0 Potraznja 1.39 Izvesnost diplomiranja 79.0 Name: 138, dtype: object
Чини се да су подаци за овај смер доста збуњујући - са једне стране, број пријављених је преко 200, али је само један студент на првој години, слично мало је и на другој и трећој, док на четвртој има опет преко 200 студената. Могуће да је реч о грешкама у уносу података, али су можда и посреди неке промене на овом смеру које су изазвале нагле порасте и падове заинтересованости студената.
Погледајмо сада и смерове на којима је процењена извесност дипломирања најмања, тј. број дипломаца је далеко мањи од броја бруцоша - овде смо из сортирања елиминисали вредност 0 (када нема дипломаца, што је можда последица увођења новог смера).
studenti_agregirano[studenti_agregirano['Izvesnost diplomiranja']!=0].sort_values(by='Izvesnost diplomiranja')[['Naziv ustanove','Zvanje','Univerzitet','Izvesnost diplomiranja']][:10]
Naziv ustanove | Zvanje | Univerzitet | Izvesnost diplomiranja | |
---|---|---|---|---|
32 | Departman za matematičke nauke | Diplomirani profesor informatike i matematike | Državni Univerzitet u Novom Pazaru | 0.011236 |
48 | Departman hemijsko-tehnološke nauke | Diplomirani inženjer tehnologije | Državni Univerzitet u Novom Pazaru | 0.013889 |
131 | Prirodno-matematički fakultet | Diplomirani geograf | Univerzitet u Novom Sadu | 0.023810 |
47 | Departman hemijsko-tehnološke nauke | Diplomirani inženjer poljoprivrede | Državni Univerzitet u Novom Pazaru | 0.031746 |
34 | Departman za matematičke nauke | Diplomirani profesor matematike i fizike | Državni Univerzitet u Novom Pazaru | 0.037037 |
39 | Departman za tehničke nauke | Diplomirani inženjer elektrotehnike i računarstva | Državni Univerzitet u Novom Pazaru | 0.040650 |
35 | Departman za pravne nauke | Diplomirani pravnik | Državni Univerzitet u Novom Pazaru | 0.047945 |
101 | Poljoprivredni fakultet, Lešak | Diplomirani inženjer poljoprivrede | Univerzitet u Prištini | 0.053763 |
31 | Departman za matematičke nauke | Diplomirani matematičar | Državni Univerzitet u Novom Pazaru | 0.060976 |
142 | Prirodno-matematički fakultet | Informatičar | Univerzitet u Novom Sadu | 0.063158 |
На другом крају приче о извесности дипломирања, видимо да је доста природно математичких и техничких наука на којима је одност између дипломаца и бруцоша чак 1 према 100, погледајмо детаљније податке за факултет са најмањом вредношћу:
studenti_agregirano.iloc[32]
Naziv ustanove Departman za matematičke nauke Univerzitet Državni Univerzitet u Novom Pazaru Nivo Osnovne akademske Zvanje Diplomirani profesor informatike i matematike Dužina trajanja programa (u god) 4 Polje_skraceno PM Vlasnistvo Državni fakultet Akreditaciona kvota 100.0 Broj studenata 199.0 Broj prijavljenih kandidata 37.0 Broj svršenih studenata tokom prethodne školske godine 1.0 Studenti prva godina 89.0 Studenti druga godina 43.0 Studenti treća godina 26.0 Studenti četvrta godina 41.0 Studenti peta godina 0.0 Studenti šesta godina 0.0 Broj budžetskih studenata 118.0 Broj samofinansirajućih studenata 81.0 Broj stranih studenata 0.0 Broj studenata na zavrsnoj godini 41.0 Potraznja 0.37 Izvesnost diplomiranja 0.011236 Name: 32, dtype: object
Гледајући податке детаљније, видимо да се број студената полови с прве на другу и са друге на трећу годину, и иако је број студената на завршној години већи, у посматраној школској години само један студент је дипломирао. Пораст броја студената на завршној години нас мотивише да уведемо још једну колону као меру проходности кроз академске студије - однос броја на завршној и првој години студија:
studenti_agregirano['Nagomilavanje studenata'] = studenti_agregirano['Broj studenata na zavrsnoj godini']/studenti_agregirano['Studenti prva godina']
studenti_agregirano = studenti_agregirano.replace({'Nagomilavanje studenata':{np.inf:np.nan}})
studenti_agregirano.sort_values(by='Nagomilavanje studenata',ascending=False)[['Naziv ustanove','Zvanje','Univerzitet','Vlasnistvo','Nagomilavanje studenata']][:10]
Naziv ustanove | Zvanje | Univerzitet | Vlasnistvo | Nagomilavanje studenata | |
---|---|---|---|---|---|
138 | Prirodno-matematički fakultet | Diplomirani turizmolog | Univerzitet u Novom Sadu | Državni fakultet | 251.000000 |
136 | Prirodno-matematički fakultet | Diplomirani profesor matematike | Univerzitet u Novom Sadu | Državni fakultet | 18.000000 |
152 | Rektorat | Diplomirani informatičar | Univerzitet Alfa BK | Privatni fakultet | 8.000000 |
135 | Prirodno-matematički fakultet | Diplomirani profesor geografije | Univerzitet u Novom Sadu | Državni fakultet | 7.476190 |
87 | Pedagoški fakultet, Sombor | Diplomirani vaspitač | Univerzitet u Novom Sadu | Državni fakultet | 6.117647 |
353 | Filozofski fakultet, Kosovska Mitrovica | Diplomirani sociolog | Univerzitet u Prištini | Državni fakultet | 5.166667 |
128 | Prirodno-matematički fakultet | Diplomirani analitičar zaštite životne sredine | Univerzitet u Novom Sadu | Državni fakultet | 4.727273 |
347 | Filozofski fakultet | Diplomirani filolog srbista u odeljenjima za n... | Univerzitet u Novom Sadu | Državni fakultet | 4.500000 |
129 | Prirodno-matematički fakultet | Diplomirani biolog | Univerzitet u Novom Sadu | Državni fakultet | 4.437500 |
351 | Filozofski fakultet, Kosovska Mitrovica | Diplomirani profesor jezika i književnosti | Univerzitet u Prištini | Državni fakultet | 4.434783 |
Поред претходно детаљније разматраног смера туризмологије где подаци делују збуњујуће, пуно програма има вишеструко већи број студената на завршној години студија.
Када истражујемо две варијабле (две колоне у сету података) и интересује нас да ли су оне некако повезане (нпр. да ли пораст једне прати пораст друге), једноставан начин да то тестирамо или само видимо како подаци изгледају је цртање тачкастих дијаграма. Већ кроз функцију plot је то могуће тиме што одаберемо да се линја не повезује, али на располагању нам се налази и функција scatter, која има још неке додатне опције.
(још један аргумент за цртање тачкастих дијаграма налази се овде, а за даљу забаву препоручујем ову игрицу)
Да ли постоји веза између привлачности факултета и извесности дипломирања? Да ли факултети који су најпожељнији су у исто време и изузетно ефикасни, тј. највећи број студената који их упише их и заврши (обзиром да имају највише простора да направе селекцију и одаберу најбоље студенте, а и можда изузетна студентска жеља за тим факултетима долази помаже да се брже факултет заврши)? Одговор на ово питање можемо потражити укрштањем података о извесности дипломирања и привлачности различитих факултета уз помоћ тачкастог дијаграма, тј. функције scatter.
plt.figure(figsize=(12,4))
plt.subplot(1,2,1)
plt.scatter(studenti_agregirano['Broj prijavljenih kandidata'],studenti_agregirano['Broj svršenih studenata tokom prethodne školske godine'],s=0.1*studenti_agregirano['Broj studenata'],alpha=0.5)
plt.xlim([-50,1800])
#plt.ylim([0,2])
plt.xlabel('Broj prijavljenih studenata')
plt.ylabel('Broj diplomaca u poslednjih godinu dana' )
plt.subplot(1,2,2)
plt.scatter(studenti_agregirano['Potraznja'],studenti_agregirano['Izvesnost diplomiranja'],s=0.1*studenti_agregirano['Broj studenata'],alpha=0.5)
plt.xlim([0,4])
plt.ylim([0,2])
plt.xlabel('Potražnja \n Koliko studenata se takmiči za 1 mesto na fakultetu?')
plt.ylabel('Izvesnost diplomiranja \n Koji deo studenata završi fakultet?' )
plt.show()
Два графика изнад приказују сличне податке - свака тачкица одговара једном смеру основних и интегрисаних студија на факултетима у Републици Србији и на оба покушавамо да пронађемо евенуталну везу између бројева студената на почетку и крају студирања. На левом графику, х и у координата одговарају броју пријављених студената и броју дипломаца, док величина круга одговара укупном броју студената. (Као и у претходно коришћеној функцији plot, функцији смо проследили две колоне табеле које одговарају х и у координатама, али смо додали и опционе аргументе s - величина кружића и alpha - транспарентност кружића.) На левом графику, делује као да међу посматраним величинама постоји зависност - што је више студената желело да упише неки смер или факултет, више их је и завршило. Међутим, шта ако је ово само последица величине смерова, односно, овде долази на ред претходно поменути контекст - није исто ако се за 100 студената пријављује за смер који прима 10 или 1000 студената, као што није исто да ли 100 дипломираних, заправо цела генерација која је уписала или је уписало 1000 студената. Стога, на десном графику ове исте смерове приказујемо тако што су њихове х и у координата Потражња и Излазност како смо их претходно дефинисали - релативно у односу на број акредитованих места и број студената који уписују факултет. На овом графику, видимо да постоје неки смерови за које влада велика потражња и скоро сви студенти завршавају (излазност близу 1), али видимо и да постоје смерови за које је потражња велика а тек сваки пети или десети студент заврши (доле десно на десном графику), док видимо и да постоје смерови за којима је потражња мала, али они који упишу завршавају (горе лево на десном графику - чак и више студената завршава него што уписује ;) видите коментар након увођења колоне излазности). Иако смо дозволили транспарентност параметром alpha и скратили распоне на х и у оси (сетите се функција xlim и ylim) да бисмо боље сагледали различите факултете посматрање ових тачкица нам не помаже да једноставно сазнамо који су то смерови и факултети код којих је потражња велика, а ипак тек сваки нпр. сваки 5. студент успе да их заврши.
Оно што би нам значило је опција да директно очитавамо који факултети су у питању са графика. Када има овако пуно тачака, лабеловање тачака такође није опција, те је спас у интерактивним графицима у којима ћемо преласком мишем преко тачке од интереса долазити до додатних информација. За то користимо библиотеку plotly.express и њену функцију scatter:
data_to_plot = studenti_agregirano[['Potraznja', 'Izvesnost diplomiranja','Univerzitet','Broj studenata','Naziv ustanove']].dropna()
fig = px.scatter(data_to_plot,
x='Potraznja',
y='Izvesnost diplomiranja',
size='Broj studenata',
hover_name='Naziv ustanove',
range_x=[0,9],
range_y=[0,2]
)
fig.show()
Поновили смо све остале параметре графика као у статичној верзији да бисмо што лакше уочили промене у новом окружењу. Сада преласком преко било ког кужића сазнајемо о ком факултету се ради, колико студената укупно има, која је потражња, а која излатзност. Али како неке факултете имамо поновљене (нпр. основне и интегрисане студије), увешћемо још једну колону у којој ћемо објединити назив институције и звање па ћемо ту колону користити за називање кружића преласком преко њих. Интересантно је да је најтраженији факултет по броју студената који аплицирају на једно место - Факултет драмских уметности (усамљена тачка крајње десно), такође и факултет на коме је излазност доста блиска јединици, што је доста похвално, али на жалост није тренд. Можемо додатно сузити опсеге х и у оса, а можемо и обојити тачкице по универзитетима (користећи аргумент color).
studenti_agregirano['Fakultet i zvanje'] = studenti_agregirano['Naziv ustanove']+' - '+studenti_agregirano['Zvanje']
data_to_plot = studenti_agregirano[['Potraznja', 'Izvesnost diplomiranja','Univerzitet','Broj studenata','Fakultet i zvanje']].dropna()
fig = px.scatter(data_to_plot,
x='Potraznja',
y='Izvesnost diplomiranja',
size='Broj studenata',
color = 'Univerzitet',
hover_name='Fakultet i zvanje',
range_x=[0,4],
range_y=[0,2]
)
fig.show()
Поред тога што можете сагледавати цео дијаграм са свим бојама (универзитетима) кликом на име универзитета на легенди можете одстранити одређени универзитет са графика. Поновним кликом се универзитет враћа. Истражите овако како се факултети појединих универзитета групишу на овом дијаграму. Преласком преко кружића сазнајте више који су то факултети са малом или великом потражњом и излазношћу.
Интересантно је да постоје факултети код којих је потражња мала, не долази до испуњавања акредитованих места, што би значило да су још већи ресурси на располагању студентима који се на њих уписују (више времена професора, бољи однос између броја студената и наставника и сл.), али се на њима и даље дешава да много мање студената завршава него што уписује (нпр факултети у левом доњем углу). Мала потражња за оваквим факултетима је можда и последица информација које се шире међу студентима о тежини ових факултета.
Наредно питање које се поставља тиче се опет факултета са малом излазношћу, шта се дешава са студентима који не дипломирају? Да ли ти студенти одустају од студија на вишим годинама, па је број студената све мањи и мањи до дипломирања или је малом броју диплома узрок то што се студенти "заглаве" на некој од година студирања. За ову информацију можемо погледати однос између броја студената на завршној и првој години студија.
data_to_plot = studenti_agregirano[['Nagomilavanje studenata', 'Izvesnost diplomiranja','Univerzitet','Broj studenata','Fakultet i zvanje']].dropna()
fig = px.scatter(data_to_plot,
x='Nagomilavanje studenata',
y='Izvesnost diplomiranja',
color='Univerzitet',
size='Broj studenata',
hover_name='Fakultet i zvanje',
range_x=[0,4],
range_y=[0,2],
template = 'plotly_white'
)
fig.show()
Овај график приказује прегршт информација, хајде да понудимо нека разјашњења и отворимо нова питања. На пример, овај график нуди појашњење чудног ефекта који смо уочили раније - да неки смерови и факултети имају излазност већу од 1, тј. више студента у години дипломира него што упишу. Ако погледате кружиће којима је излазност већа од 1 - велики број њих има и ефекат загушења, тј. на последњој години студија има вишеструко више студената него на првој години. На пример, ако погледате неке од кружића крајње десно, на њима у завршној години има четири пута више студената него на првој години! Тако да када дипломира тек сваки трећи, долази до ситуације да више људи дипломира него што уписује. На овим факултетима би било јако интересантно истражити просечно време студирања, они код којих је 'загушење' велико имају вероватно значајно веће просечно време студирања.
Чини се да можемо уочити неки шири тренд да кад нагомилавање студената крене да расте, тек тада се извесност дипломирања примиче броју један. Како у овом случају није тачно да велики проценат студената завшава (поготово ако гледамо у односу на број студента у последњој години), међу задацима за даљи рад предлажемо и да оцените извесност дипломирања у односу на број студената на завшним годинама и упоредите ове две колоне.
Интересантно је да су факултети са малом стопом излазности, неретко и они на којима је загушење студената мало (погледајте на пример доњи леви сегмент (излазност испод 0.5 и загушење испод 1). Код њих је број студената на завршној години студија мањи него на првој, што говори о томе да се студенти вероватно самоелиминишу некада раније. Са друге стране, има факултета на којима тек сваки други или трећи студент прве године дипломира, али их је на завршној години и до 2,3, или 4 пута више него на првој години (излазност испод 0.5 али загушење преко 2). Овде се поставља и питање капацитета факултета да се избори са толиким бројем студената. На следећем графику можемо проверити да ли су факултети са 3-4 пута више студената на завршној години уписали мање студената него што је акредитовано, те можда имају капацитета да се изборе, или су напротив, на завршној години студија дошли у ситуацију да имају многоструко више студената него што могу да поднесу.
studenti_agregirano['Popunjenost mesta'] = studenti_agregirano['Studenti prva godina']/studenti_agregirano['Akreditaciona kvota']
data_to_plot = studenti_agregirano[['Nagomilavanje studenata', 'Popunjenost mesta','Univerzitet','Broj studenata','Fakultet i zvanje']].dropna()
fig = px.scatter(data_to_plot,
x='Nagomilavanje studenata',
y='Popunjenost mesta',
color='Univerzitet',
size='Broj studenata',
hover_name='Fakultet i zvanje',
range_x=[0,4],
range_y=[0,2.5],
template='plotly_white'
)
fig.show()
Подаци представљени на овом графику изазивају забринутост и отварају додатна питања:
У овој радној свесци испитивали смо стање на основним и интегрисаним студијама универзитета у Србији користећи интерактивне визуализације из plotly.express библиотеке. Овде смо се ограничили на факултете, међутим у припремној радној свесци можете видети како смо издвојили факултете и на сличан начин издвојити више школе и потражити одговоре на слична питања у том сету података. Отворени подаци представљају изузетан ресурс који вам може помоћи да упоредите факултете и смерове ако на пример одлучујете шта ћете да упишете или вас генерално занимају интересовања студената или којих дипломаца се годишње највише појави на тржишту рада. Коначно, потребно је назначити да су сви закључци на основу података онолико валидни колико смо сигурни да је сет података тачан, ово је типично сумирано реченицом "garbage in, garbage out". Међутим, технике анализирања које смо представили и начини закључивања лако ће се повити и применити и ако у међувремену дођете до бољег сета података. У наставку су неке идеје за даљу анализу, уживајте!
Направите додатну колону у којој ћете израчунати удео самофинансирајућих студената, а затим потражите одговоре на ова питања одговарајућим тачкастим дијаграмима. Фокусирајте се само на факултете код којих је власништво државно. Нацртајте следеће дијаграме: - стубичасти дијаграм за 10 факултета са највећим односом између самофинансирајућих и буџетских студената - пар различитих тачкастих дијаграма на којима ће једна оса бити новоуведена колона (однос броја самофиснансирајућих и свих студената), а за другу осу ћете користи неке од претходно израчунатих колона попут потражње за факултетом, извесности дипломирања или нагомилавања студената на последњој години студија. Шта примећујете?
(studenti_agregirano['Studenti prva godina']-studenti_agregirano['Studenti druga godina'])/studenti_agregirano['Studenti prva godina']
). Проверите да ли су потражња за студијским програмом и одустајање у некој вези.
studenti_agregirano['Studenti prva godina']==0
) а како ову колону често користимо у дељењу, то нам је правило извесне проблеме. Једна идеја да то заобиђемо је увођење колоне у којој ћете израчунати просечан број студената по години, те да затим ту колону користите да процените нагомилавање студената или извесност дипломирања. Јасно је да овом колоном елиминишете информацију да се број студената значајно разликује по годинама, али ћете имати прилику да истражите и неке смерове који су због немогућности дељења били елиминисани. Користећи ову колону нацртајте неке од тачкастих дијаграма по избору.