Skip to content

Commit d5761d1

Browse files
New updated scripts Jan 2022
Problem with updating former scripts due to large TSV file. Subscript _13_21 are added Co-Authored-By: Harald <[email protected]>
1 parent deda657 commit d5761d1

File tree

2 files changed

+528
-0
lines changed

2 files changed

+528
-0
lines changed

scripts/02_script_13_21.Rmd

+335
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,335 @@
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

Comments
 (0)