|
| 1 | +--- |
| 2 | +title: "Utdanning.no besøksstatistikk" |
| 3 | + |
| 4 | +date: "`r format(Sys.Date())`" |
| 5 | +output: |
| 6 | + html_document: default |
| 7 | + pdf_document: default |
| 8 | +subtitle: Data fra Google Analytics |
| 9 | +--- |
| 10 | + |
| 11 | +```{r setup, include=FALSE} |
| 12 | +knitr::opts_chunk$set(echo = TRUE) |
| 13 | +
|
| 14 | +library(readr) |
| 15 | +library(tidyverse) |
| 16 | +library(ggthemes) |
| 17 | +library(plotly) |
| 18 | +``` |
| 19 | + |
| 20 | +#### Henter inn besøkstatistikk fra statisk fil hentet fra Google Analytics. Antall ansatte hentes fra statisk fil fra Arbeidstakerregisteret(via Stryk-08) |
| 21 | + |
| 22 | +Besøkstatistikken viser data fra 1. januar til 9. mars per år. |
| 23 | + |
| 24 | +```{r ga_pw_utdanningno_data, include=FALSE} |
| 25 | +#Importere TSV-fil i R |
| 26 | +# ga_pw_utdanningno_data <- as_tibble(read_delim("../data/ga_pw_utdanningno_data.tsv", "\t", |
| 27 | +# na = "NULL", |
| 28 | +# escape_double = FALSE, |
| 29 | +# col_types = cols( |
| 30 | +# year = col_integer(), |
| 31 | +# page_views = col_integer(), |
| 32 | +# unique_page_views = col_integer(), |
| 33 | +# entrances = col_integer(), |
| 34 | +# avg_time_on_page = col_time(format = "%H:%M:%S") |
| 35 | +# ), |
| 36 | +# locale = locale(date_names = "nb"), |
| 37 | +# trim_ws = TRUE)) |
| 38 | +# |
| 39 | +# View(ga_pw_utdanningno_data) |
| 40 | +
|
| 41 | +
|
| 42 | +ga_pw_utdanningno_data <- readRDS("../data/ga_clean_pw_utdanningno_data.rds") |
| 43 | +
|
| 44 | +
|
| 45 | +#Henter inn data fra arbeidstakerregisteret |
| 46 | +employment <- as_tibble(read_delim("../data/yrkesbeskrivelse_antall_ansatte.tsv", "\t")) |
| 47 | +emp <- employment %>% |
| 48 | + select(page_title, antall_ansatte) %>% |
| 49 | + mutate(rank_ansatte= percent_rank(antall_ansatte)*100, rank_ansatte_gruppe = ifelse(percent_rank(antall_ansatte)>.8, "Høyt antall ansatte", ifelse(percent_rank(antall_ansatte)>.3, "Middels antall ansatte", "Lavt antall ansatte"))) |
| 50 | +
|
| 51 | +# ga_pw_utdanningno_data <- left_join(ga_pw_utdanningno_data, emp, by= c("pageTitle"="page_title")) |
| 52 | +
|
| 53 | +
|
| 54 | +ga_pw_utdanningno_data <- ga_pw_utdanningno_data %>% |
| 55 | + rename(page_views = pageviews) %>% |
| 56 | + rename(page_title = pageTitle) |
| 57 | +``` |
| 58 | +### Finner de mest besøkte yrkessidene i 2013 og 2021 |
| 59 | + |
| 60 | + |
| 61 | +```{r, echo=F} |
| 62 | +
|
| 63 | +df.21 <- ga_pw_utdanningno_data %>% |
| 64 | + filter(page_views_pst < 1, year == 2021, page_type == "yrke") %>% |
| 65 | + slice_max(page_views_pst, n=10) %>% |
| 66 | + select(page_title, year, page_views_pst, page_views) %>% |
| 67 | + arrange(desc(page_views_pst)) |
| 68 | +
|
| 69 | +df.13 <- ga_pw_utdanningno_data %>% |
| 70 | + filter(page_views_pst < 1, year == 2013, page_type == "yrke") %>% |
| 71 | + slice_max(page_views_pst, n=10) %>% |
| 72 | + select(page_title, year, page_views_pst, page_views) %>% |
| 73 | + arrange(desc(page_views_pst)) |
| 74 | +``` |
| 75 | +#### 2013 |
| 76 | +```{r, echo=F} |
| 77 | +(top10.13 <- df.13$page_title) |
| 78 | +``` |
| 79 | +#### 2021 |
| 80 | +```{r, echo=F} |
| 81 | +(top10.21 <- df.21$page_title) |
| 82 | +
|
| 83 | +``` |
| 84 | +Sykepleier, ingeniør, psykolog, lege, advokat og helefagarbeider går igjen blant de 10 mest besøkte yrkene både i 2013 og 2021. Fellesnevneren er at dette er statusyrker og/eller knyttet til helse. |
| 85 | + |
| 86 | + |
| 87 | +### Utviklingen i besøkssandel fra 2013 til 2021 for de mest besøkte yrkene i 2021 og 2013 |
| 88 | + |
| 89 | +Sykepleier er det klart mest besøkte yrket (med untak av i 2014 der ingeniør lå høyest). I 2021 har 67 400 (0,85 prosent av alle sidevisninger) besøkt yrketbeskrivelsen. Neste på lista er psykolog med 36 300 (0,46 prosent). Sykepleier har nesten dobbelt så mange besøk som psykolog. |
| 90 | + |
| 91 | +```{r, warning=FALSE, echo=F, fig.width=10} |
| 92 | +
|
| 93 | +df.1 <- ga_pw_utdanningno_data %>% |
| 94 | + filter(page_views_pst < 1, page_type == "yrke") %>% |
| 95 | + select(page_title, year, page_views_pst, page_views, rank_ansatte, rank_ansatte_gruppe) %>% |
| 96 | + arrange(desc(page_views_pst)) |
| 97 | +
|
| 98 | +df.2 <- df.1[df.1$page_title %in% top10.21,] |
| 99 | +
|
| 100 | +# df.2 %>% |
| 101 | +# select(page_title, year, rank_ansatte, rank_ansatte_gruppe) %>% |
| 102 | +# filter(year == 2021) %>% |
| 103 | +# rename(Yrke = page_title) |
| 104 | +
|
| 105 | +a <- ggplot(df.2, aes(x=as.character(year), y=page_views_pst*100, group= page_title, text= paste("Yrke:", page_title))) |
| 106 | + a <- a + geom_line(aes(color= page_title, label=rank_ansatte_gruppe, label2= rank_ansatte), size= 1) + xlab("År") + ylab("Prosentandel av sidevisninger") + labs(color= "Yrke", title="Utvikling til de mest besøkte yrkesbeskrivelsene i 2021") + |
| 107 | + ggthemes::theme_economist() |
| 108 | + |
| 109 | + ggplotly(a, tooltip = c("label", "label2","text")) |
| 110 | +``` |
| 111 | + |
| 112 | +Ved å holde markøren over et yrke i grafen vises informasjon om antall ansatte med det yrket. Høyt antall ansatte er definert som de 20% yrkene med flest ansatte. Verdien rank_ansatt angir hvor vanlig yrket er fra 100 (yrket med flest ansatte) til 0 (yrket med færrest ansatte). |
| 113 | + |
| 114 | +```{r, echo=F, warning=F, fig.width=10} |
| 115 | + |
| 116 | +df.3 <- df.1[df.1$page_title %in% top10.13,] |
| 117 | +
|
| 118 | +# df.3 %>% |
| 119 | +# select(page_title, year, rank_ansatte, rank_ansatte_gruppe) %>% |
| 120 | +# filter(year == 2013) %>% |
| 121 | +# rename(Yrke = page_title) |
| 122 | +
|
| 123 | +b <- ggplot(df.3, aes(x=as.character(year), y=page_views_pst*100, group= page_title, text= paste("Yrke:", page_title))) |
| 124 | + b <- b + geom_line(aes(color= page_title, label=rank_ansatte_gruppe, label2= rank_ansatte), size= 1) + xlab("År") + ylab("Prosentandel av sidevisninger") + |
| 125 | + labs(color= "Yrke", title="Utvikling til de mest besøkte yrkesbeskrivelsene i 2013") + |
| 126 | + ggthemes::theme_economist() |
| 127 | + ggplotly(b, tooltip = c("label", "label2","text")) |
| 128 | +
|
| 129 | +
|
| 130 | +``` |
| 131 | +De mest besøkte yrkesbeskrivelsene fra 2013 har med unntak av sykepleier gått ned eller stagnert målt etter prosentandel sidevisninger. Det kan forklares av at mange nye yrker har kommet inn i denne perioden. Det kan likevel nevnes at det er en klar nedgang i besøk for ingeniør og til dels siviløkonom. |
| 132 | + |
| 133 | + |
| 134 | +<!-- ### Eksempel: Yrkesbeskrivelse sykepleier --> |
| 135 | + |
| 136 | +```{r df_sykepleier, include=FALSE, results='hide'} |
| 137 | +df_sykepleier <- ga_pw_utdanningno_data %>% |
| 138 | + filter(page_url=="/yrker/beskrivelse/sykepleier") %>% #må endre til Path |
| 139 | + select(year, page_views_pst, page_views) %>% |
| 140 | + arrange(year) |
| 141 | + |
| 142 | + #View(df_sykepleier) |
| 143 | +df_sykepleier |
| 144 | +``` |
| 145 | + |
| 146 | +```{r stolpediagram, include=F} |
| 147 | +# stolpediagram i Ggplot2 |
| 148 | +# "year" på ordinalnivå for å vise alle år |
| 149 | +ggplot(df_sykepleier, aes(x=as.character(year), y=page_views_pst*100)) + |
| 150 | + xlab("År") + ylab("Prosentandel av sidevisninger") + |
| 151 | + geom_bar(stat="identity", fill="steelblue") + |
| 152 | + geom_text(aes(label=page_views), vjust=1.6, color="white", size=3.5) + |
| 153 | + labs(title = "Sidevisninger på yrket sykepleier") + |
| 154 | + # ggthemes::theme_economist() + ggthemes::scale_colour_economist() |
| 155 | + ggthemes::theme_fivethirtyeight() |
| 156 | +``` |
| 157 | + |
| 158 | + |
| 159 | +### Hvilke yrketsbeskrivelser har størst endring i besøk mellom 2013 og 2021 |
| 160 | + |
| 161 | +```{r, echo=F, include=F} |
| 162 | +
|
| 163 | +df.4 <- ga_pw_utdanningno_data %>% |
| 164 | + filter(page_views_pst < 1, year == 2021 | year== 2013, page_type == "yrke") %>% |
| 165 | + select(page_title, year, page_views_pst, page_views) %>% |
| 166 | + arrange(desc(page_views_pst)) |
| 167 | +
|
| 168 | +
|
| 169 | +freq <- data.frame(table(df.4$page_title)) #number of occurences |
| 170 | +yrke.2years <- as.character(freq$Var1[freq$Freq == 2]) #finding occupations with both years |
| 171 | +
|
| 172 | +df.5 <- df.4[df.4$page_title %in% yrke.2years,] #excluding occupations with only one occurrence |
| 173 | + # df.5 <- df.5[order(df.5$page_title),] |
| 174 | +
|
| 175 | +df.5.13 <- df.5[df.5$year == 2013,] #object for 2013 |
| 176 | + #df.5.13 <- df.5.13[order(df.5.13$page_title),] |
| 177 | + df.5.13 <- arrange(df.5.13, page_title) |
| 178 | +
|
| 179 | +
|
| 180 | +df.5.21 <- df.5[df.5$year == 2021,] #object for 2021 |
| 181 | + df.5.21 <- arrange(df.5.21, page_title) |
| 182 | + |
| 183 | +#test that both years are sorted correct |
| 184 | + all.equal(df.5.13[,1], df.5.21[,1]) #should be true |
| 185 | + |
| 186 | +#new df with difference 2021 and 2013 |
| 187 | + diff <- data.frame(df.5.13$page_title, df.5.13$page_views_pst, df.5.21$page_views_pst, df.5.21$page_views_pst-df.5.13$page_views_pst) |
| 188 | + names(diff) <- c("page_title", "2013", "2021", "increase_page_views_pst") |
| 189 | + diff <- arrange(diff, desc(increase_page_views_pst)) |
| 190 | + |
| 191 | +diff.1 <- bind_rows(slice_head(diff,n=5), slice_tail(diff, n=5)) #looking only at a few |
| 192 | +diff.2 <- bind_rows(slice_head(diff,n=20), slice_tail(diff, n=20)) #looking only at some more |
| 193 | +diff.2 <- left_join(diff.2, emp, by="page_title") # joining with employment data |
| 194 | + |
| 195 | +diff.2 <-diff.2 %>% |
| 196 | + #select(-antall_ansatte) %>% |
| 197 | + mutate_if(is.numeric, round,4) %>% |
| 198 | + mutate(rank_ansatte = round(rank_ansatte, 1)) %>% |
| 199 | + mutate(rank_ansatt_gruppe = word(rank_ansatte_gruppe, 1)) %>% |
| 200 | + rename(yrke=page_title, endring_pst=increase_page_views_pst, rank_gruppe=rank_ansatt_gruppe) %>% |
| 201 | + select(-rank_ansatte_gruppe) |
| 202 | + |
| 203 | +``` |
| 204 | + |
| 205 | +#### Tabell med de 40 yrkene med størst endring i prosentvise sidevisninger fra 2013 til 2021. |
| 206 | + |
| 207 | +De 20 første har størst økning (høyest økning først), mens de 20 siste har størst nedgang. Tabellen viser at det primært er yrker med mange ansatte som har de største endringene. Kun 7 yrker er under medianen av antall ansatte (rank_ansatt<50). |
| 208 | + |
| 209 | + |
| 210 | +```{r, echo=F, warning=F, fig.width=10} |
| 211 | +knitr::kable(diff.2) |
| 212 | + |
| 213 | +# Plot occupations with largest effect |
| 214 | +diff.long <- diff.1 %>% |
| 215 | + gather("year", "page_views_pst", '2013':'2021') |
| 216 | +
|
| 217 | +#Join with employment data |
| 218 | +diff.long <- left_join(diff.long, emp, by="page_title") |
| 219 | +
|
| 220 | + |
| 221 | +c <- ggplot(diff.long, aes(x=as.character(year), y=page_views_pst*100, group= page_title, text= paste("Yrke:", page_title))) |
| 222 | +c <- c + geom_line(aes(color= page_title, label= rank_ansatte_gruppe, label2= rank_ansatte), size= 1) + xlab("År") + ylab("Prosentandel av sidevisninger") + labs(color= "Yrke", title = "Endring i prosentandel sidevisinger til de yrkene m størst endring fra 2013 til 2021") + |
| 223 | + ggthemes::theme_economist() |
| 224 | +ggplotly(c, tooltip = c("label", "label2","text")) |
| 225 | + |
| 226 | +
|
| 227 | +``` |
| 228 | +Oppsummert ser vi at økningen er høyest for yrker innenfor omsorg og helse med relativt mange ansatte. Det er dermed ikke de best betalte yrkene/prestisjeyrker som har størst økningen i besøk. Likevel ser vi en økning for blant annet aksjemegler, pilot og advokat. |
| 229 | + |
| 230 | +Besøksandelen har gått ned for yrker ned for annerkjente yrker med høyt antalle ansatte. Noen av disse har det vært oppmerksomhet rundt behov i tiden fremover feks: ingenør og dataingenør. |
| 231 | + |
| 232 | +# Ser på utvikling for utdanningsbeskrivelser |
| 233 | + |
| 234 | +```{r, include=F} |
| 235 | +
|
| 236 | +dfu.21 <- ga_pw_utdanningno_data %>% |
| 237 | + filter(page_views_pst < 1, year == 2021, page_type == "utdanningsbeskrivelse") %>% |
| 238 | + slice_max(page_views_pst, n=10) %>% |
| 239 | + select(page_title, year, page_views_pst, page_views) %>% |
| 240 | + arrange(desc(page_views_pst)) |
| 241 | +
|
| 242 | +dfu.13 <- ga_pw_utdanningno_data %>% |
| 243 | + filter(page_views_pst < 1, year == 2013, page_type == "utdanningsbeskrivelse", page_title!="") %>% |
| 244 | + slice_max(page_views_pst, n=10) %>% |
| 245 | + select(page_title, year, page_views_pst, page_views) %>% |
| 246 | + arrange(desc(page_views_pst)) |
| 247 | +
|
| 248 | +(top10.13u <- dfu.13$page_title) |
| 249 | +top10.13u <- na.omit(top10.13u) |
| 250 | +(top10.21u <- dfu.21$page_title) |
| 251 | +
|
| 252 | +``` |
| 253 | + |
| 254 | +#### Utvikling i prosentandel av sidevisninger over tid for de mest besøkte utdanningsbeskrivelsene i 2013 and 2021 |
| 255 | +```{r, echo=F, fig.width=10} |
| 256 | +dfu.1 <- ga_pw_utdanningno_data %>% |
| 257 | + filter(page_views_pst < 1, page_type == "utdanningsbeskrivelse") %>% |
| 258 | + select(page_title, year, page_views_pst, page_views) %>% |
| 259 | + arrange(desc(page_views_pst)) |
| 260 | +
|
| 261 | +dfu.2 <- dfu.1[dfu.1$page_title %in% top10.21u,] |
| 262 | +
|
| 263 | +e <- ggplot(dfu.2, aes(x=as.character(year), y=page_views_pst*100, group= page_title, text= paste("Utdanning:", page_title))) |
| 264 | + |
| 265 | +e <- e + geom_line(aes(color= page_title), size= 1) + xlab("År") + ylab("Prosentandel av sidevisninger") + labs(color= "Utdanningsbeskrivelse", title="Utvikling til de mest besøkte Utdanningsbeskrivelsene i 2021") + ggthemes::theme_economist() |
| 266 | +ggplotly(e, tooltip = "text") |
| 267 | +
|
| 268 | +``` |
| 269 | +Økningen i besøk for utdanningsbeskrivelser følger det vi så for ykene. Sykepleie og psykologiutdanningen er mest besøkt. Disse yrkene lå også øverst i 2021. |
| 270 | +Merk: Det er en datafeil for Sykepleier 2019 og Vidreutdanning for sykepleiere 2021. Fallet vi ser for disse to punktene er ikke reelt. |
| 271 | +```{r, echo=F, fig.width=10} |
| 272 | +
|
| 273 | +dfu.3 <- dfu.1[dfu.1$page_title %in% top10.13u,] |
| 274 | +f <- ggplot(dfu.3, aes(x=as.character(year), y=page_views_pst*100, group= page_title, text= paste("Utdanning:", page_title))) |
| 275 | +
|
| 276 | +f <- f + geom_line(aes(color= page_title), size= 1) + xlab("År") + ylab("Prosentandel av sidevisninger") + labs(color= "Utdanningsbeskrivelse", title="Utvikling til de mest besøkte Utdanningsbeskrivelsene i 2013") + |
| 277 | + ggthemes::theme_economist() |
| 278 | +ggplotly(f, tooltip = "text") |
| 279 | +
|
| 280 | +``` |
| 281 | + |
| 282 | + |
| 283 | + |
| 284 | +### Hvor endringen i interesse vært størst for utdanningsbeskrivelser |
| 285 | + |
| 286 | +```{r, include=F} |
| 287 | +
|
| 288 | +dfu.4 <- ga_pw_utdanningno_data %>% |
| 289 | + filter(page_views_pst < 1, year == 2021 | year== 2013, page_type == "utdanningsbeskrivelse") %>% |
| 290 | + select(page_title, year, page_views_pst, page_views) %>% |
| 291 | + arrange(desc(page_views_pst)) |
| 292 | +
|
| 293 | +
|
| 294 | +freq.u <- data.frame(table(dfu.4$page_title)) #number of occurences |
| 295 | +ut.2years <- as.character(freq.u$Var1[freq.u$Freq == 2]) #finding occupations with both years NB: Some education programs have 3 or 4 occurrences |
| 296 | +
|
| 297 | +dfu.5 <- dfu.4[dfu.4$page_title %in% ut.2years,] #excluding occupations with more or less occurrences |
| 298 | + |
| 299 | +
|
| 300 | +dfu.5.13 <- dfu.5[dfu.5$year == 2013,] #object for 2013 |
| 301 | + dfu.5.13 <- arrange(dfu.5.13, page_title) |
| 302 | +
|
| 303 | +
|
| 304 | +dfu.5.21 <- dfu.5[dfu.5$year == 2021,] #object for 2021 |
| 305 | + out <- data.frame(table(dfu.5.21$page_title)) #Helseadminstrasjon comes twice in 2021 |
| 306 | + out <- as.character(out$Var1[out$Freq != 1]) |
| 307 | + dfu.5.21 <- dfu.5.21[! dfu.5.21$page_title %in% out,] |
| 308 | +
|
| 309 | +dfu.5.21 <- arrange(dfu.5.21, page_title) |
| 310 | + |
| 311 | +#test that both years are sorted correct |
| 312 | + all.equal(dfu.5.13[,1], dfu.5.21[,1]) #should be true |
| 313 | + |
| 314 | +``` |
| 315 | +Tilsvarende tabell som for yrkene. De 20 utdanningene med mest økning øverst og de med størst nedgang er de 20 nederste radene. Nesten alle utdanningene har en prosentvising økning. Det usikkert for meg hvordan dette har seg. |
| 316 | + |
| 317 | +Handel og markedsføring og Økonomi og adminstrasjon har den klart største nedgangen. Derimot har Økonomisk-adminstrative fag en tydelig oppgang. De to sistnevnte virker kun som en navneendring og endringen mellom dem ser ikke reell ut. |
| 318 | + |
| 319 | +```{r, echo=F} |
| 320 | + |
| 321 | +#new df with difference 2021 and 2013 |
| 322 | + diff.u <- data.frame(dfu.5.13$page_title, dfu.5.13$page_views_pst, dfu.5.21$page_views_pst, dfu.5.21$page_views_pst-dfu.5.13$page_views_pst) |
| 323 | + names(diff.u) <- c("page_title", "page_views_pst_13", "page_views_pst_21", "increase_page_views_pst") |
| 324 | + diff.u <- arrange(diff.u, desc(increase_page_views_pst)) |
| 325 | + |
| 326 | +diff.u1 <- bind_rows(slice_head(diff.u,n=5), slice_tail(diff.u, n=5)) #looking only at a few |
| 327 | +diff.u2 <- bind_rows(slice_head(diff.u,n=20), slice_tail(diff.u, n=20)) #looking only at some more |
| 328 | +
|
| 329 | +diff.u2 <- diff.u2 %>% |
| 330 | + rename(Utdanning=page_title, Endring_pst=increase_page_views_pst, '2013'=page_views_pst_13, '2021'=page_views_pst_21) |
| 331 | +
|
| 332 | +
|
| 333 | +knitr::kable(diff.u2) |
| 334 | +
|
| 335 | +``` |
0 commit comments