Вправи. Живлення. Дієти. Тренування. Спорт

Найменший хокеїст. Зростання хокеїстів: аналізуємо дані всіх чемпіонатів світу у поточному столітті

10. Лео Бойвін

Народжений 32 року в Онтаріо Бойвін став одним із символів післявоєнної НХЛ. Незважаючи на скромні габарити (170 см, 80 кг), Лео увійшов до легенд НХЛ завдяки своєму жорсткому стилю. Улюблений прийом Бойвіна – «кидок через стегно» – у своїй книзі описував Боббі Орр:

«Мабуть, найефектнішим є кидок суперника через стегно, оскільки суперник після цього зазвичай здійснює потрійне сальто-мортале, перш ніж впаде на лід. Лео Бойвін, міцний кремезний захисник, був великим майстром таких прийомів, поки не перестав грати кілька років тому. Лео зазвичай низько присідав і підкочувався ззаду або збоку до гравця з шайбою, що нічого не підозрював, ловив його на стегно і підкидав у повітря».

Одним із найвідоміших силових прийомів Бойвіна вважають його хіт проти Френка Маховліча, який стався за часів виступу Лео за «Бостон». Слово великому канадському коментатору Фостеру Хьюітту:

«Маховліч тікає у відрив, він на синій лінії «Бостона», лише Бойвін між ним та воротами. Великий Френк прибирає шайбу вліво, потім праворуч і намагається об'їхати захисника Брюїнс. БЕМ! Ой ой! Бойвін потужно прийняв двадцять сьомого номера на стегно. Маховліч дав колеса. Тепер шайба у Бойвіна…»

8. Ерік Ліндрос

На початку дев'яностих великогабаритний канадець по праву вважався майбутньою зіркою ліги і спочатку виправдовував надії фахівців і керівництва «Філадельфії», що віддала в 1992 році за Еріка, який відмовився грати в «Квебеку», що задрафтував його, колосальну компенсацію – 6 гравців. , два права вибору у перших раундах драфту та колосальну грошову компенсацію. Але численні струс мозку звели нанівець всі спроби Ліндроса вийти на колишній рівень. Сезон-2006/07 у складі "Далласа" став останнім у НХЛ для володаря "Харт Трофі"-95.

7. Здено Хара

Словацький гренадер, володар найпотужнішого кидка в НХЛ, літери «С» у «Бостоні» та Кубка Стенлі-2011, був би просто не зрозумілий якби за таких видатних габаритів не грав у жорсткий та контактний хокей.

6. Олександр Овечкін

Один із кращих хокеїстів сучасності навряд чи потребує уявлень. Його силовий стиль та спортивне нахабство стали такою ж візитною карткою Олександра Великого як і голи, яких за шість років у НХЛ набралося вже понад 300.

5. Дарюс Каспарайтіс

До локауту, що народився в Литві, кремезний захисник був справжнім кошмаром для своїх суперників. Дарюса по праву вважають останнім захисником радянської школи, який умів жорстко грати в тіло без порушення правил. Два його силові прийоми стали легендарними: у першому випадку він упіймав на плече Еріка Ліндроса, що опустив голову, а в другому в блискучому стилі вивів з гри нападаючого збірної Канади Симона Ганьє.

4. Кем Нілі

Задрафтований під загальним 9-м номером "Ванкувер Кенакс" став справжньою легендою "Бостона", провівши у складі "Брюїнс" 10 сезонів. 1996 року його номер було вилучено з обігу – жоден гравець ведмедів з того часу не носив вісімку на спині. Також варто відзначити, що учасник нашого рейтингу став одним із чотирьох хокеїстів, які зуміли повторити рекорд Вейна Гретцкі, забивши 50 голів у 44 перших матчах регулярного сезону.

3. Дені Потвен

Великий захисник, що всю кар'єру провів у «Нью-Йорк Айлендерс», був одним із тих, хто чудово грав як в обороні, так і в атаці. Перераховувати його регалії безглуздо, говорити про запаморочливу для захисника статистику теж. Видатний бомбардир, великий капітан та справжній лідер відкриває трійку рейтингу найжорсткіших хокеїстів НХЛ.

2. Діон Фанюф

Перший вибір «Калгарі Флеймс» на драфті 2003 року незважаючи на свою не найгіршу статистику вважається одним із найпереоціненіших гравців у сучасній НХЛ. Проте в умінні вести силову боротьбу канадському капітанові Торонто відмовити неможливо.

1. Скотт Стівенс

Сьомий за кількістю зіграних у НХЛ матчів захисник став справжнім символом перемог Нью-Джерсі на стику століть. Жорсткий, непоступливий Стівенс по праву вважався уособленням того хокею «Девіллс», який приніс їм два Кубки Стенлі за чотири роки.




Днями завершився черговий чемпіонат світу з хокею.


За переглядом матчів з'явилася ідея. Коли в перервах телевізійна камера показує гравців, що йдуть у роздягальню, важко не помітити, наскільки вони величезні. На тлі тренерів, функціонерів команд, співробітників льодової арени, журналістів чи просто фанатів вони, як правило, виглядають дуже переконливо.



І я запитав. Чи дійсно хокеїсти вищі за звичайних людей? Як змінюється зростання хокеїстів із часом у порівнянні зі звичайними людьми? Чи є стійкі міжсторонні відмінності?

Дані

IIHF, організація, яка проводить чемпіонати світу з хокею, щороку публікує склади команд з інформацією про зростання і вагу кожного гравця. Архів цих даних.


Я зібрав разом дані всіх чемпіонатів світу з 2001 до 2016 року. Від року в рік формат надання даних трохи змінюється, що вимагає деяких зусиль щодо їх очищення. Не уявляючи, як грамотно автоматизувати процес, усі дані копіював вручну, що зайняло трохи більше 3 годин. Об'єднаний датасет виклав у відкритий доступ.


# load required packages require(dplyr) # data manipulation require(lubridate) # easy manipulations with data require(ggplot2) # visualization require(ggthemes) # themes for ggplot2 require(cowplot) # nice alignment of the ggplots color palettes require(texreg) # easy export of regression tables require(xtable) # export data frame into html table # download IIHF data set; якщо ви є деякі проблеми, ви можете download manually # using the stable URL (https://dx.doi.org/10.6084/m9.figshare.3394735.v2) df<- read.csv("https://ndownloader.figshare.com/files/5303173") # color palette brbg11 <- brewer.pal(11,"BrBG")

Чи ростуть хокеїсти? Грубе (періодне) порівняння

Для початку порівняємо середнє зростання гравців на всіх 16 чемпіонатах світу.



R code. Малюнок 1. Зміна середнього зростання хокеїстів на чемпіонатах світу, 2001-2016 рр.

# mean height by championship df_per<- df %>% group_by(year) %>% summarise(height=mean(height)) gg_period_mean<- ggplot(df_per, aes(x=year,y=height))+ geom_point(size=3,color=brbg11)+ stat_smooth(method="lm",size=1,color=brbg11)+ ylab("height, cm")+ xlab("year of competition")+ scale_x_continuous(breaks=seq(2005,2015,5),labels=seq(2005,2015,5))+ theme_few(base_size = 15)+ theme(panel.grid=element_line(colour = "grey75",size=.25)) gg_period_jitter <- ggplot(df, aes(x=year,y=height))+ geom_jitter(size=2,color=brbg11,alpha=.25,width = .75)+ stat_smooth(method="lm",size=1,se=F,color=brbg11)+ ylab("height, cm")+ xlab("year of competition")+ scale_x_continuous(breaks=seq(2005,2015,5),labels=seq(2005,2015,5))+ theme_few(base_size = 15)+ theme(panel.grid=element_line(colour = "grey75",size=.25)) gg_period <- plot_grid(gg_period_mean,gg_period_jitter)


Позитивний тренд очевидний. За півтора десятиліття середнє зростання хокеїста на чемпіонаті світу збільшилося майже на 2 сантиметри (ліва панель). Неначе незначний приріст на тлі досить великої варіації (права панель). Чи багато це чи мало? Щоб відповісти на запитання, треба коректно порівняти з населенням (але про це ближче до кінця статті).

Когортний аналіз

Коректніший спосіб вивчення зміни у зростанні передбачає порівняння по когортах народження. Тут ми стикаємося з цікавим нюансом – деякі хокеїсти брали участь не в одному чемпіонаті світу. Питання: чи вичищати повторні записи для тих самих людей? Якщо нам цікаве середнє зростання хокеїста на чемпіонаті (як на картинці вище), мабуть, немає сенсу зачищати. Але якщо ми хочемо простежити зміну зростання хокеїстів як таку, на мій погляд, було б неправильно надавати більшу вагу тим гравцям, які регулярніше потрапляли на чемпіонати світу. Тому для подальшого аналізу я очистив дані від повторних записів тих самих гравців.


R code. Підготовка даних до когортного аналізу

# remove double counts dfu_h<- df %>% select(year,name,country,position,birth,cohort,height) %>% spread(year,height) dfu_h$av.height<- apply(dfu_h[,6:21],1,mean,na.rm=T) dfu_h$times_participated <- apply(!is.na(dfu_h[,6:21]),1,sum) dfu_w <- df %>% select(year,name,country,position,birth,cohort,weight) %>% spread(year,weight) dfu_w$av.weight<- apply(dfu_w[,6:21],1,mean,na.rm=T) dfu <- left_join(dfu_h %>% select(name,country,position,birth,cohort,av.height,times_participated), dfu_w %>%select(name,country,position,birth,cohort,av.weight), by = c("name"," country","position","birth","cohort")) %>% mutate(bmi = av.weight/(av.height/100)^2)


Загальна кількість спостережень скоротилася з 6292 до 3333. Якщо хокеїст брав участь більш ніж в одному чемпіонаті світу, дані про зростання і вагу я усереднював, оскільки зростання і (особливо) вага окремо взятого хокеїста могла змінюватися з часом. Скільки ж разів хокеїсти мають честь зіграти за національні збірні на чемпіонатах світу? У середньому трохи менше ніж 2 рази.



R code. Рисунок 2. Гістограма розподілу хокеїстів за кількістю участі у ЧС

# frequencies of participation in world championships mean(dfu$times_participated) df_part<- as.data.frame(table(dfu$times_participated)) gg_times_part <- ggplot(df_part,aes(y=Freq,x=Var1))+ geom_bar(stat="identity",fill=brbg11)+ ylab("# of players")+ xlab("times participated (out of 16 possible)")+ theme_few(base_size = 15)


Але є й унікуми. Подивимося, хто з гравців взяв участь щонайменше у 10 чемпіонатах світу. Таких гравців виявилось 14.


R code. Таблиця 1. Лідери участі у чемпіонатах світу

# the leaders of participation in world championships # save the table to html leaders<- dfu %>% filter(times_participated > 9) View(leaders) print(xtable(leaders), type="html", file="table_leaders.html")


name country position birth cohort av.height times_participated av.weight bmi
1 ovechkin alexander RUS F 1985-09-17 1985 188.45 11 98.36 27.70
2 nielsen daniel DEN D 1980-10-31 1980 182.27 11 79.73 24.00
3 staal kim DEN F 1978-03-10 1978 182.00 10 87.80 26.51
4 green morten DEN F 1981-03-19 1981 183.00 12 85.83 25.63
5 masalskis edgars LAT G 1980-03-31 1980 176.00 12 79.17 25.56
6 ambuhl andres SUI F 1983-09-14 1983 176.80 10 83.70 26.78
7 granak dominik SVK D 1983-06-11 1983 182.00 10 79.50 24.00
8 madsen morten DEN F 1987-01-16 1987 189.82 11 86.00 23.87
9 redlihs mikelis LAT F 1984-07-01 1984 180.00 10 80.40 24.81
10 cipulis martins LAT F 1980-11-29 1980 180.70 10 82.10 25.14
11 holos jonas NOR D 1987-08-27 1987 180.18 11 91.36 28.14
12 bastiansen anders NOR F 1980-10-31 1980 190.00 11 93.64 25.94
13 ask morten NOR F 1980-05-14 1980 185.00 10 88.30 25.80
14 forsberg kristian NOR F 1986-05-05 1986 184.50 10 87.50 25.70

Олександр Овечкін, 11 разів! Але тут треба зазначити, що не для всіх хокеїстів в принципі можна було взяти участь у всіх 16 чемпіонатах: залежить когорти народження (наскільки ігрова кар'єра перетнулася саме з цим періодом спостереження), від того, чи брала участь збірна гравця у всіх чемпіонатах світу (див. малюнок) 3) і чи потрапляв гравець стабільно до збірної; нарешті є ще НХЛ, який стабільно відволікає найкращих з найкращих від участі у чемпіонатах світу.



R code. Малюнок 3. Участь збірних у чемпіонатах світу з хокею у 2001-2016 роках.

# countries times participated df_cnt_part<- df %>% select(year,country,no) %>% mutate(country=factor(paste(country))) %>% group_by(country,year) %>% summarise(value=sum(as.numeric(no))) %>% mutate(value=1) %>% ungroup() %>% mutate(country=factor(country, levels = rev(levels(country)))), year=factor(year)) d_cnt_n<- df_cnt_part %>% group_by(country) %>% summarise(n=sum(value)) gg_cnt_part<- ggplot(data = df_cnt_part, aes(x=year,y=country))+ geom_point(color=brbg11,size=7)+ geom_text(data=d_cnt_n,aes(y=country,x=17.5,label=n,color=n),size=7,fontface=2)+ geom_text(data=d_cnt_n,aes(y=country,x=18.5,label=" "),size=7)+ scale_color_gradientn(colours = brbg11)+ xlab(NULL)+ ylab(NULL)+ theme_bw(base_size = 25)+ theme(legend.position="none", axis.text.x = element_text(angle = 90, hjust = 1,vjust=0.5))

Чи ростуть хокеїсти? Регресійний аналіз

Регресійний аналіз дозволяє коректніше відповісти на питання про зміну зростання гравців. У цьому випадку за допомогою мультиномінальної лінійної регресії передбачається зростання хокеїста залежно від когорти народження. Включаючи в специфікацію регресійної моделі різні додаткові (контрольні) змінні, ми отримуємо значення найбільш цікавого для нас коефіцієнта "за інших рівних". Наприклад, додаючи до пояснюючих змінних крім когорти народження позицію гравця на полі, ми отримуємо взаємозв'язок зростання та когорти, очищену від ефекту відмінностей залежно від позиції; додаючи до контрольних змінних країн, отримуємо результат, очищений від міжкраїнних відмінностей. Вочевидь, якщо контрольні змінні самі виявляються значними, цього теж варто звернути увагу.
Регресійні моделі (особливо лінійні регресії) дуже чутливі до викидів (див., наприклад, ). Не вдаючись глибоко в цю велику тему, я лише прибрав із аналізу когорти, для яких ми маємо надто невелику кількість представників.


R code. Прибираємо маленькі когорти

# remove small cohorts table(dfu$cohort) dfuc<- dfu %>% filter(cohort<1997,cohort>1963)


Не бажаючи різати дані сильно, я прибрав лише когорти 1963, 1997 та 1998 років народження, для яких у нас є менше 10 гравців.


Отже, результати регресійного аналізу. У кожній наступній моделі я додаю одну змінну.
Залежна змінна: зростання хокеїста
Пояснювальні перемієні: 1) когорта народження; 2) + позиція на полі (порівняння із захисниками); 3) + країна (порівняння з Росією).


R code. Таблиця 2. Результати регресійного аналізу

# relevel counrty variable to compare with Russia dfuc$country<- relevel(dfuc$country,ref = "RUS") # regression models m1 <- lm(data = dfuc,av.height~cohort) m2 <- lm(data = dfuc,av.height~cohort+position) m3 <- lm(data = dfuc,av.height~cohort+position+country) # export the models to html htmlreg(list(m1,m2,m3),file = "models_height.html",single.row = T)


Statistical models
Model 1 Model 2 Model 3
(Intercept) -10.17 (27.67) -18.64 (27.01) 32.59 (27.00)
cohort 0.10 (0.01) *** 0.10 (0.01) *** 0.08 (0.01) ***
positionF -2.59 (0.20) *** -2.59 (0.20) ***
positionG -1.96 (0.31) *** -1.93 (0.30) ***
countryAUT -0.94 (0.55)
countryBLR -0.95 (0.53)
countryCAN 1.13 (0.46) *
countryCZE 0.56 (0.49)
countryDEN -0.10 (0.56)
countryFIN 0.20 (0.50)
countryFRA -2.19 (0.69) **
countryGER -0.61 (0.51)
countryHUN -0.61 (0.86)
countryITA -3.58 (0.61) ***
countryJPN -5.24 (0.71) ***
countryKAZ -1.16 (0.57) *
countryLAT -1.38 (0.55) *
countryNOR -1.61 (0.62) **
countryPOL 0.06 (1.12)
countrySLO -1.55 (0.58) **
countrySUI -1.80 (0.53) ***
countrySVK 1.44 (0.50) **
countrySWE 1.18 (0.48) *
countryUKR -1.82 (0.59) **
countryUSA 0.54 (0.45)
R 2 0.01 0.06 0.13
Adj. R 2 0.01 0.06 0.12
Num. obs. 3319 3319 3319
RMSE 5.40 5.27 5.10
*** p< 0.001, ** p < 0.01, * p < 0.05

Інтерпретація моделей

Модель 1. Збільшення когорти на один рік відповідає збільшенню зростання хокеїстів на 0.1 см. Коефіцієнт статистично значущий, але при цьому модель пояснює лише 1% варіації залежної змінної. У принципі це проблема, оскільки моделювання носить пояснювальний характер, завдання передбачення не ставиться. Тим не менш, низький коефіцієнт детермінації показує, що мають бути інші змінні, які набагато краще пояснюють відмінності між хокеїстами в зростанні.


Модель 2. Захисники – найвищі гравці у хокеї. Воротарі нижче на 2 см, нападаючі - на 2.6 см. Усі коефіцієнти статистично значущі. Пояснена варіація залежною змінною зростає до 6%. При цьому коефіцієнт при змінній когорта народженняне змінюється.


Модель 3. Додавання контрольних змінних для країн цікаво з двох причин. По-перше, деякі відмінності статистично значущі та цікаві власними силами. Так, наприклад, шведи, словаки та канадці статистично значуще вище за наших гравців. Більшість же націй значно нижча за нас, японці аж на 5.2 см, італійці - на 3.6 см, французи - на 2.2 см (див. також малюнок 4). По-друге, запровадження контрольних змінних для країн значно зменшує коефіцієнт при змінній когорта народження- До 0.08. Це означає, що міжкраїнні відмінності пояснюють частину відмінностей у когортах народження. Коефіцієнт детермінації моделі збільшується до 13%.


R code. Малюнок 4. Зростання хокеїстів країнами


# players" height by country gg_av.h_country<- ggplot(dfuc ,aes(x=factor(cohort),y=av.height))+ geom_point(color="grey50",alpha=.25)+ stat_summary(aes(group=country),geom="line",fun.y = mean,size=.5,color="grey50")+ stat_smooth(aes(group=country,color=country),geom="line",size=1)+ #geom_hline(yintercept = mean(height),color="red",size=.5)+ facet_wrap(~country,ncol=4)+ coord_cartesian(ylim = c(170,195))+ scale_x_discrete(labels=paste(seq(1965,1995,10)),breaks=paste(seq(1965,1995,10)))+ theme_few(base_size = 15)+ theme(legend.position="none", panel.grid=element_line(colour = "grey75",size=.25))


Найбільш повна модель показує, що зростання хокеїстів відбувається зі швидкістю 0.08 див на рік. Це означає приріст 0.8 см за десятиліття або на 2.56 см за 32 роки з 1964 по 1996 рік. 0.8 див за десятиліття проти приблизно 1.2 див.


Перш ніж ми, нарешті, намагатимемося зрозуміти, наскільки значним виявляється збільшення зростання, хочу звернути увагу ще на один цікавий момент. Введення контрольних змінних передбачає фіксацію відмінностей між категоріями при єдиному нахилі регресійної лінії (єдиний коефіцієнт при головній змінній, що пояснює). Це не завжди добре і може замаскувати значні відмінності у тісноті зв'язку між досліджуваними змінними у підвиборках. Так, наприклад, роздільне моделювання залежності зростання гравців від амплуа (рисунок 5) показує, що взаємозв'язок найбільш яскраво виражений для воротарів і найменш помітний для захисників.




R code. Рисунок 5. Кореляція між зростанням та когортою окремо для захисників, форвардів та воротарів

dfuc_pos<- dfuc levels(dfuc_pos$position) <- c("Defenders","Forwards","Goalkeeprs") gg_pos <- ggplot(dfuc_pos ,aes(x=cohort,y=av.height))+ geom_jitter(aes(color=position),alpha=.5)+ stat_smooth(method = "lm", se = T,color=brbg11,size=1)+ scale_x_continuous(labels=seq(1965,1995,5),breaks=seq(1965,1995,5))+ scale_color_manual(values = brbg11)+ facet_wrap(~position,ncol=3)+ xlab("birth cohort")+ ylab("height, cm")+ theme_few(base_size = 20)+ theme(legend.position="none", panel.grid=element_line(colour = "grey75",size=.25))


R code. Таблиця 3. Модель 3 окремо для підвиборок захисників, форвардів та воротарів

# separate models for positions m3d<- lm(data = dfuc %>% filter(position=="D"), av.height~cohort+country) m3f<- lm(data = dfuc %>% filter(position=="F"), av.height~cohort+country) m3g<- lm(data = dfuc %>% filter(position=="G"), av.height~cohort+country) htmlreg(list(m3d,m3f,m3g),file = "2016/160500 Hockey players/models_height_pos.html",single.row = T, custom.model.names = c("Model 3 D","Model 3 F","Model 3 G"))


Statistical models
Model 3D Model 3 F Model 3G
(Intercept) 108.45 (46.46) * 49.32 (36.73) -295.76 (74.61) ***
cohort 0.04 (0.02) 0.07 (0.02) *** 0.24 (0.04) ***
countryAUT 0.14 (0.96) -2.01 (0.75) ** 0.47 (1.47)
countryBLR 0.30 (0.87) -1.53 (0.73) * -2.73 (1.55)
countryCAN 1.55 (0.78) * 0.39 (0.62) 3.45 (1.26) **
countryCZE 0.87 (0.84) 0.30 (0.67) 0.63 (1.36)
countryDEN -0.60 (0.95) 0.10 (0.75) -0.19 (1.62)
countryFIN -0.55 (0.89) -0.04 (0.67) 2.40 (1.32)
countryFRA -3.34 (1.15) ** -2.06 (0.93) * 1.39 (2.07)
countryGER 0.48 (0.85) -1.40 (0.72) -0.65 (1.33)
countryHUN -1.32 (1.47) -0.70 (1.16) 0.65 (2.39)
countryITA -2.08 (1.08) -4.78 (0.82) *** -2.02 (1.62)
countryJPN -4.13 (1.26) ** -6.52 (0.94) *** -2.27 (1.98)
countryKAZ -1.23 (0.95) -1.82 (0.79) * 1.79 (1.58)
countryLAT -0.73 (0.95) -1.39 (0.75) -3.42 (1.49) *
countryNOR -3.25 (1.07) ** -1.06 (0.85) -0.10 (1.66)
countryPOL 0.82 (1.89) -0.58 (1.55) 0.37 (2.97)
countrySLO -1.57 (0.99) -1.54 (0.79) -2.25 (1.66)
countrySUI -1.98 (0.91) * -2.36 (0.71) *** 1.12 (1.47)
countrySVK 2.94 (0.87) *** 0.81 (0.67) -0.70 (1.50)
countrySWE 0.75 (0.81) 1.24 (0.65) 1.37 (1.33)
countryUKR -1.37 (1.01) -1.77 (0.80) * -3.71 (1.66) *
countryUSA 0.76 (0.78) -0.08 (0.62) 2.58 (1.26) *
R 2 0.09 0.10 0.24
Adj. R 2 0.07 0.09 0.20
Num. obs. 1094 1824 401
RMSE 5.08 5.08 4.87
*** p< 0.001, ** p < 0.01, * p < 0.05

Роздільне моделювання показує, що у когортах 1964-1996 років народження, середнє зростання хокеїстів, які брали участь у чемпіонатах світу в 2001-2016 роках, збільшувався зі швидкістю 0.4 см за десятилення для захисників, 0.7 см - для нападників та (!) 2.4 воротарів. За три десятиління середнє зростання воротарів збільшилося на 7 см!


Настав час порівняти ці зміни із середніми значеннями для населення.

Порівняння з населенням

Результати регресійного аналізу фіксують значні розбіжності між країнами. Тому порівнювати має сенс по країнах: хокеїстів певної країни із чоловічим населенням цієї ж країни.


Для порівняння зростання хокеїстів із середніми показниками чоловічого населення я використав дані з релевантної наукової статті (PDF). Дані я скопіював зі статті (використовувавши чудову програму tabula) і теж розмістив у відкритому доступі.


R code. Завантаження даних Hatton, TJ, & Bray, BE (2010) та підготовка до аналізу

# download the data from Hatton, TJ, & Bray, B E (2010). # Long run trends in the heights of European men, 19th–20th centuries. # Economics & Human Biology, 8 (3), 405-413. # http://doi.org/10.1016/j.ehb.2010.03.001 # stable URL, copied data (https://dx.doi.org/10.6084/m9.figshare.3394795.v1) df_hb<- read.csv("https://ndownloader.figshare.com/files/5303878") df_hb <- df_hb %>% gather("country","h_pop",2:16) %>% mutate(period=paste(period)) %>% separate(period,c("t1","t2"),sep = "/" )%>% transmute(cohort=(as.numeric(t1)+as.numeric(t2))/2,country,h_pop) # calculate hockey players"<- dfu %>% group_by(country,cohort) %>% summarise(h_hp=mean(av.height)) %>% ungroup()


На жаль, дані про динаміку зростання населення перетинаються лише з 8 країнами мого хокейного датасету: Австрія, Данія, Фінляндія, Франція, Німеччина, Італія, Норвегія, Швеція.


R code. Дані, що перетинаються

# countries in both data sets both_cnt<- levels(factor(df_hb$country)) both_cnt




R code. Рисунок 6. Порівняння динаміки збільшення зростання чоловічого населення та хокеїстів. зелений колір - чоловіче населення; коричневий колір – хокеїсти.

gg_hoc_vs_pop<- ggplot()+ geom_path(data = df_hb %>% filter(country %in% both_cnt), aes(x=cohort,y=h_pop), color=brbg11,size=1)+ geom_point(data = df_hb %>% filter(country %in% both_cnt), aes(x =cohort,y=h_pop, color=brbg11,size=2)+ geom_point(data = df_hb %>% filter(country %in% both_cnt), aes(x=cohort,y=h_pop), color="white" ,size=1.5)+ geom_point(data = df_hoc %>% filter(country %in% both_cnt), aes(x=cohort,y=h_hp), color=brbg11,size=2,pch=18)+ stat_smooth(data = df_hoc %>% filter(country %in% both_cnt), aes(x=cohort,y=h_hp), method="lm",se=F,color=brbg11,size=1)+ facet_wrap(~country,ncol =2)+ ylab("height, cm")+ xlab("birth cohort")+ theme_few(base_size = 15)+ theme(panel.grid=element_line(colour = "grey75",size=.25))


У всіх проаналізованих країнах хокеїсти вищі за стедностатистичні чоловіки на 2-5 см. Але це не дивно - у спорті значна селекція.
Примітно інше. У розвинених країнах світу особливо бурхливе збільшення зростання чоловічого населення відбувалося першій середині 20 століття. У когортах приблизно 1960-х років народження зростання чоловіків наблизилося до плато і пеерстал бурхливо збільшуватися. Тренд середнього зростання хокеїстів у всіх країнах (крім чомусь Данії) нібито продовжив багаторічний тренд усього чоловічого населення, що припинився.
Для когорт європейців, що народилися першій половині 20 століття, темпи збільшення середнього зростання варіювалися від 1.18 до 1.74 див за десятиліття залежно від країни (рисунок 7). Починаючи з 1960-х років, цей показник опустився до рівня 0.15-0.80 за 10 років.

Здено народився 18 березня 1977 року у місті Тренчині, Чехословаччина. Виступає за хокейний клуб "Бостон Брюїнз" і є його капітаном. Грає у клубі з 1 липня 1996 року. Має амплуа захисника. Він багаторазовий учасник матчів усіх зірок НХЛ. У 2009 році отримав приз "Джеймс Норріс Трофі", який вручається найкращому захиснику сезону в НХЛ. У 2011 році разом з іншими учасниками клубу став володарем "Кубка Стенлі".

Крім того, Хара володар найсильнішого кидка до НХЛ. Його рекорд складає 175 км/год. 25 березня 2012 року хокеїст зіграв тисячний матч у національній лізі. Разом зі словацькою збірною виграв срібні медалі у Чемпіонатах світу 2000 та 2012 року. Хара розмовляє такими мовами, як словацька, російська, англійська, чеська, німецька, шведська та польська.

Василь Кошечкін

Василь народився 27 березня 1983 року в Тольятті. Є вихованцем хокейного клубу "Лада". Професійну кар'єру розпочав у 2002 році. Виступав за хокейні клуби «Ак барс» та «Сєвєрсталь». З 1 травня 2013 грає за магнітогірський «Металург». Контракт було підписано на 4 роки. Кошечкін - воротар.

Василь брав участь у п'яти чемпіонатах світу та став володарем усіх видів медалей першості. Він у 2006 та 2008 роках разом зі своїм клубом виграв «Континентальний кубок». А 2014 разом із іншими хокеїстами «Металурга» переміг «Кубок Гагаріна». Має такі звання та нагороди, як заслужений майстер, майстер спорту Росії міжнародного класу та подяка президента РФ.

Загальна інформація

Хокей - спортивна гра, в якій дві команди, використовуючи ключки, намагаються вразити шайбою або м'ячем у ворота супротивника. Існує кілька видів хокею: із шайбою, м'ячем, на траві, слідж-хокей та флорбол.

НХЛ – національна хокейна ліга, що об'єднує клуби Канади та США. Ліга була створена у 1917 році. Головним трофеєм НХЛ є "Кубок Стенлі". У лізі грає тридцять команд із 29 міст Канади та США.

КХЛ – континентальна хокейна ліга, в якій грають клуби з Росії, Казахстану, Словаччини, Фінляндії, Білорусі, Хорватії та Латвії. У сезоні 2014-2015 у КХЛ гратимуть 28 клубів із 27 міст. Надалі планується розширення ліги до 32 команд. Перший чемпіонат пройшов у 2008 році. Трофеєм ліги є "Кубок Гагаріна". Першим його володарем став казанський Ак барс. КХЛ через фінансові труднощі залишили празький хокейний клуб «Лев», український «Донбас» та московський «Спартак».




Днями завершився черговий чемпіонат світу з хокею.


За переглядом матчів з'явилася ідея. Коли в перервах телевізійна камера показує гравців, що йдуть у роздягальню, важко не помітити, наскільки вони величезні. На тлі тренерів, функціонерів команд, співробітників льодової арени, журналістів чи просто фанатів вони, як правило, виглядають дуже переконливо.



І я запитав. Чи дійсно хокеїсти вищі за звичайних людей? Як змінюється зростання хокеїстів із часом у порівнянні зі звичайними людьми? Чи є стійкі міжсторонні відмінності?

Дані

IIHF, організація, яка проводить чемпіонати світу з хокею, щороку публікує склади команд з інформацією про зростання і вагу кожного гравця. Архів цих даних.


Я зібрав разом дані всіх чемпіонатів світу з 2001 до 2016 року. Від року в рік формат надання даних трохи змінюється, що вимагає деяких зусиль щодо їх очищення. Не уявляючи, як грамотно автоматизувати процес, усі дані копіював вручну, що зайняло трохи більше 3 годин. Об'єднаний датасет виклав у відкритий доступ.


# load required packages require(dplyr) # data manipulation require(lubridate) # easy manipulations with data require(ggplot2) # visualization require(ggthemes) # themes for ggplot2 require(cowplot) # nice alignment of the ggplots color palettes require(texreg) # easy export of regression tables require(xtable) # export data frame into html table # download IIHF data set; якщо ви є деякі проблеми, ви можете download manually # using the stable URL (https://dx.doi.org/10.6084/m9.figshare.3394735.v2) df<- read.csv("https://ndownloader.figshare.com/files/5303173") # color palette brbg11 <- brewer.pal(11,"BrBG")

Чи ростуть хокеїсти? Грубе (періодне) порівняння

Для початку порівняємо середнє зростання гравців на всіх 16 чемпіонатах світу.



R code. Малюнок 1. Зміна середнього зростання хокеїстів на чемпіонатах світу, 2001-2016 рр.

# mean height by championship df_per<- df %>% group_by(year) %>% summarise(height=mean(height)) gg_period_mean<- ggplot(df_per, aes(x=year,y=height))+ geom_point(size=3,color=brbg11)+ stat_smooth(method="lm",size=1,color=brbg11)+ ylab("height, cm")+ xlab("year of competition")+ scale_x_continuous(breaks=seq(2005,2015,5),labels=seq(2005,2015,5))+ theme_few(base_size = 15)+ theme(panel.grid=element_line(colour = "grey75",size=.25)) gg_period_jitter <- ggplot(df, aes(x=year,y=height))+ geom_jitter(size=2,color=brbg11,alpha=.25,width = .75)+ stat_smooth(method="lm",size=1,se=F,color=brbg11)+ ylab("height, cm")+ xlab("year of competition")+ scale_x_continuous(breaks=seq(2005,2015,5),labels=seq(2005,2015,5))+ theme_few(base_size = 15)+ theme(panel.grid=element_line(colour = "grey75",size=.25)) gg_period <- plot_grid(gg_period_mean,gg_period_jitter)


Позитивний тренд очевидний. За півтора десятиліття середнє зростання хокеїста на чемпіонаті світу збільшилося майже на 2 сантиметри (ліва панель). Неначе незначний приріст на тлі досить великої варіації (права панель). Чи багато це чи мало? Щоб відповісти на запитання, треба коректно порівняти з населенням (але про це ближче до кінця статті).

Когортний аналіз

Коректніший спосіб вивчення зміни у зростанні передбачає порівняння по когортах народження. Тут ми стикаємося з цікавим нюансом – деякі хокеїсти брали участь не в одному чемпіонаті світу. Питання: чи вичищати повторні записи для тих самих людей? Якщо нам цікаве середнє зростання хокеїста на чемпіонаті (як на картинці вище), мабуть, немає сенсу зачищати. Але якщо ми хочемо простежити зміну зростання хокеїстів як таку, на мій погляд, було б неправильно надавати більшу вагу тим гравцям, які регулярніше потрапляли на чемпіонати світу. Тому для подальшого аналізу я очистив дані від повторних записів тих самих гравців.


R code. Підготовка даних до когортного аналізу

# remove double counts dfu_h<- df %>% select(year,name,country,position,birth,cohort,height) %>% spread(year,height) dfu_h$av.height<- apply(dfu_h[,6:21],1,mean,na.rm=T) dfu_h$times_participated <- apply(!is.na(dfu_h[,6:21]),1,sum) dfu_w <- df %>% select(year,name,country,position,birth,cohort,weight) %>% spread(year,weight) dfu_w$av.weight<- apply(dfu_w[,6:21],1,mean,na.rm=T) dfu <- left_join(dfu_h %>% select(name,country,position,birth,cohort,av.height,times_participated), dfu_w %>%select(name,country,position,birth,cohort,av.weight), by = c("name"," country","position","birth","cohort")) %>% mutate(bmi = av.weight/(av.height/100)^2)


Загальна кількість спостережень скоротилася з 6292 до 3333. Якщо хокеїст брав участь більш ніж в одному чемпіонаті світу, дані про зростання і вагу я усереднював, оскільки зростання і (особливо) вага окремо взятого хокеїста могла змінюватися з часом. Скільки ж разів хокеїсти мають честь зіграти за національні збірні на чемпіонатах світу? У середньому трохи менше ніж 2 рази.



R code. Рисунок 2. Гістограма розподілу хокеїстів за кількістю участі у ЧС

# frequencies of participation in world championships mean(dfu$times_participated) df_part<- as.data.frame(table(dfu$times_participated)) gg_times_part <- ggplot(df_part,aes(y=Freq,x=Var1))+ geom_bar(stat="identity",fill=brbg11)+ ylab("# of players")+ xlab("times participated (out of 16 possible)")+ theme_few(base_size = 15)


Але є й унікуми. Подивимося, хто з гравців взяв участь щонайменше у 10 чемпіонатах світу. Таких гравців виявилось 14.


R code. Таблиця 1. Лідери участі у чемпіонатах світу

# the leaders of participation in world championships # save the table to html leaders<- dfu %>% filter(times_participated > 9) View(leaders) print(xtable(leaders), type="html", file="table_leaders.html")


name country position birth cohort av.height times_participated av.weight bmi
1 ovechkin alexander RUS F 1985-09-17 1985 188.45 11 98.36 27.70
2 nielsen daniel DEN D 1980-10-31 1980 182.27 11 79.73 24.00
3 staal kim DEN F 1978-03-10 1978 182.00 10 87.80 26.51
4 green morten DEN F 1981-03-19 1981 183.00 12 85.83 25.63
5 masalskis edgars LAT G 1980-03-31 1980 176.00 12 79.17 25.56
6 ambuhl andres SUI F 1983-09-14 1983 176.80 10 83.70 26.78
7 granak dominik SVK D 1983-06-11 1983 182.00 10 79.50 24.00
8 madsen morten DEN F 1987-01-16 1987 189.82 11 86.00 23.87
9 redlihs mikelis LAT F 1984-07-01 1984 180.00 10 80.40 24.81
10 cipulis martins LAT F 1980-11-29 1980 180.70 10 82.10 25.14
11 holos jonas NOR D 1987-08-27 1987 180.18 11 91.36 28.14
12 bastiansen anders NOR F 1980-10-31 1980 190.00 11 93.64 25.94
13 ask morten NOR F 1980-05-14 1980 185.00 10 88.30 25.80
14 forsberg kristian NOR F 1986-05-05 1986 184.50 10 87.50 25.70

Олександр Овечкін, 11 разів! Але тут треба зазначити, що не для всіх хокеїстів в принципі можна було взяти участь у всіх 16 чемпіонатах: залежить когорти народження (наскільки ігрова кар'єра перетнулася саме з цим періодом спостереження), від того, чи брала участь збірна гравця у всіх чемпіонатах світу (див. малюнок) 3) і чи потрапляв гравець стабільно до збірної; нарешті є ще НХЛ, який стабільно відволікає найкращих з найкращих від участі у чемпіонатах світу.



R code. Малюнок 3. Участь збірних у чемпіонатах світу з хокею у 2001-2016 роках.

# countries times participated df_cnt_part<- df %>% select(year,country,no) %>% mutate(country=factor(paste(country))) %>% group_by(country,year) %>% summarise(value=sum(as.numeric(no))) %>% mutate(value=1) %>% ungroup() %>% mutate(country=factor(country, levels = rev(levels(country)))), year=factor(year)) d_cnt_n<- df_cnt_part %>% group_by(country) %>% summarise(n=sum(value)) gg_cnt_part<- ggplot(data = df_cnt_part, aes(x=year,y=country))+ geom_point(color=brbg11,size=7)+ geom_text(data=d_cnt_n,aes(y=country,x=17.5,label=n,color=n),size=7,fontface=2)+ geom_text(data=d_cnt_n,aes(y=country,x=18.5,label=" "),size=7)+ scale_color_gradientn(colours = brbg11)+ xlab(NULL)+ ylab(NULL)+ theme_bw(base_size = 25)+ theme(legend.position="none", axis.text.x = element_text(angle = 90, hjust = 1,vjust=0.5))

Чи ростуть хокеїсти? Регресійний аналіз

Регресійний аналіз дозволяє коректніше відповісти на питання про зміну зростання гравців. У цьому випадку за допомогою мультиномінальної лінійної регресії передбачається зростання хокеїста залежно від когорти народження. Включаючи в специфікацію регресійної моделі різні додаткові (контрольні) змінні, ми отримуємо значення найбільш цікавого для нас коефіцієнта "за інших рівних". Наприклад, додаючи до пояснюючих змінних крім когорти народження позицію гравця на полі, ми отримуємо взаємозв'язок зростання та когорти, очищену від ефекту відмінностей залежно від позиції; додаючи до контрольних змінних країн, отримуємо результат, очищений від міжкраїнних відмінностей. Вочевидь, якщо контрольні змінні самі виявляються значними, цього теж варто звернути увагу.
Регресійні моделі (особливо лінійні регресії) дуже чутливі до викидів (див., наприклад, ). Не вдаючись глибоко в цю велику тему, я лише прибрав із аналізу когорти, для яких ми маємо надто невелику кількість представників.


R code. Прибираємо маленькі когорти

# remove small cohorts table(dfu$cohort) dfuc<- dfu %>% filter(cohort<1997,cohort>1963)


Не бажаючи різати дані сильно, я прибрав лише когорти 1963, 1997 та 1998 років народження, для яких у нас є менше 10 гравців.


Отже, результати регресійного аналізу. У кожній наступній моделі я додаю одну змінну.
Залежна змінна: зростання хокеїста
Пояснювальні перемієні: 1) когорта народження; 2) + позиція на полі (порівняння із захисниками); 3) + країна (порівняння з Росією).


R code. Таблиця 2. Результати регресійного аналізу

# relevel counrty variable to compare with Russia dfuc$country<- relevel(dfuc$country,ref = "RUS") # regression models m1 <- lm(data = dfuc,av.height~cohort) m2 <- lm(data = dfuc,av.height~cohort+position) m3 <- lm(data = dfuc,av.height~cohort+position+country) # export the models to html htmlreg(list(m1,m2,m3),file = "models_height.html",single.row = T)


Statistical models
Model 1 Model 2 Model 3
(Intercept) -10.17 (27.67) -18.64 (27.01) 32.59 (27.00)
cohort 0.10 (0.01) *** 0.10 (0.01) *** 0.08 (0.01) ***
positionF -2.59 (0.20) *** -2.59 (0.20) ***
positionG -1.96 (0.31) *** -1.93 (0.30) ***
countryAUT -0.94 (0.55)
countryBLR -0.95 (0.53)
countryCAN 1.13 (0.46) *
countryCZE 0.56 (0.49)
countryDEN -0.10 (0.56)
countryFIN 0.20 (0.50)
countryFRA -2.19 (0.69) **
countryGER -0.61 (0.51)
countryHUN -0.61 (0.86)
countryITA -3.58 (0.61) ***
countryJPN -5.24 (0.71) ***
countryKAZ -1.16 (0.57) *
countryLAT -1.38 (0.55) *
countryNOR -1.61 (0.62) **
countryPOL 0.06 (1.12)
countrySLO -1.55 (0.58) **
countrySUI -1.80 (0.53) ***
countrySVK 1.44 (0.50) **
countrySWE 1.18 (0.48) *
countryUKR -1.82 (0.59) **
countryUSA 0.54 (0.45)
R 2 0.01 0.06 0.13
Adj. R 2 0.01 0.06 0.12
Num. obs. 3319 3319 3319
RMSE 5.40 5.27 5.10
*** p< 0.001, ** p < 0.01, * p < 0.05

Інтерпретація моделей

Модель 1. Збільшення когорти на один рік відповідає збільшенню зростання хокеїстів на 0.1 см. Коефіцієнт статистично значущий, але при цьому модель пояснює лише 1% варіації залежної змінної. У принципі це проблема, оскільки моделювання носить пояснювальний характер, завдання передбачення не ставиться. Тим не менш, низький коефіцієнт детермінації показує, що мають бути інші змінні, які набагато краще пояснюють відмінності між хокеїстами в зростанні.


Модель 2. Захисники – найвищі гравці у хокеї. Воротарі нижче на 2 см, нападаючі - на 2.6 см. Усі коефіцієнти статистично значущі. Пояснена варіація залежною змінною зростає до 6%. При цьому коефіцієнт при змінній когорта народженняне змінюється.


Модель 3. Додавання контрольних змінних для країн цікаво з двох причин. По-перше, деякі відмінності статистично значущі та цікаві власними силами. Так, наприклад, шведи, словаки та канадці статистично значуще вище за наших гравців. Більшість же націй значно нижча за нас, японці аж на 5.2 см, італійці - на 3.6 см, французи - на 2.2 см (див. також малюнок 4). По-друге, запровадження контрольних змінних для країн значно зменшує коефіцієнт при змінній когорта народження- До 0.08. Це означає, що міжкраїнні відмінності пояснюють частину відмінностей у когортах народження. Коефіцієнт детермінації моделі збільшується до 13%.


R code. Малюнок 4. Зростання хокеїстів країнами


# players" height by country gg_av.h_country<- ggplot(dfuc ,aes(x=factor(cohort),y=av.height))+ geom_point(color="grey50",alpha=.25)+ stat_summary(aes(group=country),geom="line",fun.y = mean,size=.5,color="grey50")+ stat_smooth(aes(group=country,color=country),geom="line",size=1)+ #geom_hline(yintercept = mean(height),color="red",size=.5)+ facet_wrap(~country,ncol=4)+ coord_cartesian(ylim = c(170,195))+ scale_x_discrete(labels=paste(seq(1965,1995,10)),breaks=paste(seq(1965,1995,10)))+ theme_few(base_size = 15)+ theme(legend.position="none", panel.grid=element_line(colour = "grey75",size=.25))


Найбільш повна модель показує, що зростання хокеїстів відбувається зі швидкістю 0.08 див на рік. Це означає приріст 0.8 см за десятиліття або на 2.56 см за 32 роки з 1964 по 1996 рік. 0.8 див за десятиліття проти приблизно 1.2 див.


Перш ніж ми, нарешті, намагатимемося зрозуміти, наскільки значним виявляється збільшення зростання, хочу звернути увагу ще на один цікавий момент. Введення контрольних змінних передбачає фіксацію відмінностей між категоріями при єдиному нахилі регресійної лінії (єдиний коефіцієнт при головній змінній, що пояснює). Це не завжди добре і може замаскувати значні відмінності у тісноті зв'язку між досліджуваними змінними у підвиборках. Так, наприклад, роздільне моделювання залежності зростання гравців від амплуа (рисунок 5) показує, що взаємозв'язок найбільш яскраво виражений для воротарів і найменш помітний для захисників.




R code. Рисунок 5. Кореляція між зростанням та когортою окремо для захисників, форвардів та воротарів

dfuc_pos<- dfuc levels(dfuc_pos$position) <- c("Defenders","Forwards","Goalkeeprs") gg_pos <- ggplot(dfuc_pos ,aes(x=cohort,y=av.height))+ geom_jitter(aes(color=position),alpha=.5)+ stat_smooth(method = "lm", se = T,color=brbg11,size=1)+ scale_x_continuous(labels=seq(1965,1995,5),breaks=seq(1965,1995,5))+ scale_color_manual(values = brbg11)+ facet_wrap(~position,ncol=3)+ xlab("birth cohort")+ ylab("height, cm")+ theme_few(base_size = 20)+ theme(legend.position="none", panel.grid=element_line(colour = "grey75",size=.25))


R code. Таблиця 3. Модель 3 окремо для підвиборок захисників, форвардів та воротарів

# separate models for positions m3d<- lm(data = dfuc %>% filter(position=="D"), av.height~cohort+country) m3f<- lm(data = dfuc %>% filter(position=="F"), av.height~cohort+country) m3g<- lm(data = dfuc %>% filter(position=="G"), av.height~cohort+country) htmlreg(list(m3d,m3f,m3g),file = "2016/160500 Hockey players/models_height_pos.html",single.row = T, custom.model.names = c("Model 3 D","Model 3 F","Model 3 G"))


Statistical models
Model 3D Model 3 F Model 3G
(Intercept) 108.45 (46.46) * 49.32 (36.73) -295.76 (74.61) ***
cohort 0.04 (0.02) 0.07 (0.02) *** 0.24 (0.04) ***
countryAUT 0.14 (0.96) -2.01 (0.75) ** 0.47 (1.47)
countryBLR 0.30 (0.87) -1.53 (0.73) * -2.73 (1.55)
countryCAN 1.55 (0.78) * 0.39 (0.62) 3.45 (1.26) **
countryCZE 0.87 (0.84) 0.30 (0.67) 0.63 (1.36)
countryDEN -0.60 (0.95) 0.10 (0.75) -0.19 (1.62)
countryFIN -0.55 (0.89) -0.04 (0.67) 2.40 (1.32)
countryFRA -3.34 (1.15) ** -2.06 (0.93) * 1.39 (2.07)
countryGER 0.48 (0.85) -1.40 (0.72) -0.65 (1.33)
countryHUN -1.32 (1.47) -0.70 (1.16) 0.65 (2.39)
countryITA -2.08 (1.08) -4.78 (0.82) *** -2.02 (1.62)
countryJPN -4.13 (1.26) ** -6.52 (0.94) *** -2.27 (1.98)
countryKAZ -1.23 (0.95) -1.82 (0.79) * 1.79 (1.58)
countryLAT -0.73 (0.95) -1.39 (0.75) -3.42 (1.49) *
countryNOR -3.25 (1.07) ** -1.06 (0.85) -0.10 (1.66)
countryPOL 0.82 (1.89) -0.58 (1.55) 0.37 (2.97)
countrySLO -1.57 (0.99) -1.54 (0.79) -2.25 (1.66)
countrySUI -1.98 (0.91) * -2.36 (0.71) *** 1.12 (1.47)
countrySVK 2.94 (0.87) *** 0.81 (0.67) -0.70 (1.50)
countrySWE 0.75 (0.81) 1.24 (0.65) 1.37 (1.33)
countryUKR -1.37 (1.01) -1.77 (0.80) * -3.71 (1.66) *
countryUSA 0.76 (0.78) -0.08 (0.62) 2.58 (1.26) *
R 2 0.09 0.10 0.24
Adj. R 2 0.07 0.09 0.20
Num. obs. 1094 1824 401
RMSE 5.08 5.08 4.87
*** p< 0.001, ** p < 0.01, * p < 0.05

Роздільне моделювання показує, що у когортах 1964-1996 років народження, середнє зростання хокеїстів, які брали участь у чемпіонатах світу в 2001-2016 роках, збільшувався зі швидкістю 0.4 см за десятилення для захисників, 0.7 см - для нападників та (!) 2.4 воротарів. За три десятиління середнє зростання воротарів збільшилося на 7 см!


Настав час порівняти ці зміни із середніми значеннями для населення.

Порівняння з населенням

Результати регресійного аналізу фіксують значні розбіжності між країнами. Тому порівнювати має сенс по країнах: хокеїстів певної країни із чоловічим населенням цієї ж країни.


Для порівняння зростання хокеїстів із середніми показниками чоловічого населення я використав дані з релевантної наукової статті (PDF). Дані я скопіював зі статті (використовувавши чудову програму tabula) і теж розмістив у відкритому доступі.


R code. Завантаження даних Hatton, TJ, & Bray, BE (2010) та підготовка до аналізу

# download the data from Hatton, TJ, & Bray, B E (2010). # Long run trends in the heights of European men, 19th–20th centuries. # Economics & Human Biology, 8 (3), 405-413. # http://doi.org/10.1016/j.ehb.2010.03.001 # stable URL, copied data (https://dx.doi.org/10.6084/m9.figshare.3394795.v1) df_hb<- read.csv("https://ndownloader.figshare.com/files/5303878") df_hb <- df_hb %>% gather("country","h_pop",2:16) %>% mutate(period=paste(period)) %>% separate(period,c("t1","t2"),sep = "/" )%>% transmute(cohort=(as.numeric(t1)+as.numeric(t2))/2,country,h_pop) # calculate hockey players"<- dfu %>% group_by(country,cohort) %>% summarise(h_hp=mean(av.height)) %>% ungroup()


На жаль, дані про динаміку зростання населення перетинаються лише з 8 країнами мого хокейного датасету: Австрія, Данія, Фінляндія, Франція, Німеччина, Італія, Норвегія, Швеція.


R code. Дані, що перетинаються

# countries in both data sets both_cnt<- levels(factor(df_hb$country)) both_cnt




R code. Рисунок 6. Порівняння динаміки збільшення зростання чоловічого населення та хокеїстів. зелений колір - чоловіче населення; коричневий колір – хокеїсти.

gg_hoc_vs_pop<- ggplot()+ geom_path(data = df_hb %>% filter(country %in% both_cnt), aes(x=cohort,y=h_pop), color=brbg11,size=1)+ geom_point(data = df_hb %>% filter(country %in% both_cnt), aes(x =cohort,y=h_pop, color=brbg11,size=2)+ geom_point(data = df_hb %>% filter(country %in% both_cnt), aes(x=cohort,y=h_pop), color="white" ,size=1.5)+ geom_point(data = df_hoc %>% filter(country %in% both_cnt), aes(x=cohort,y=h_hp), color=brbg11,size=2,pch=18)+ stat_smooth(data = df_hoc %>% filter(country %in% both_cnt), aes(x=cohort,y=h_hp), method="lm",se=F,color=brbg11,size=1)+ facet_wrap(~country,ncol =2)+ ylab("height, cm")+ xlab("birth cohort")+ theme_few(base_size = 15)+ theme(panel.grid=element_line(colour = "grey75",size=.25))


У всіх проаналізованих країнах хокеїсти вищі за стедностатистичні чоловіки на 2-5 см. Але це не дивно - у спорті значна селекція.
Примітно інше. У розвинених країнах світу особливо бурхливе збільшення зростання чоловічого населення відбувалося першій середині 20 століття. У когортах приблизно 1960-х років народження зростання чоловіків наблизилося до плато і пеерстал бурхливо збільшуватися. Тренд середнього зростання хокеїстів у всіх країнах (крім чомусь Данії) нібито продовжив багаторічний тренд усього чоловічого населення, що припинився.
Для когорт європейців, що народилися першій половині 20 століття, темпи збільшення середнього зростання варіювалися від 1.18 до 1.74 див за десятиліття залежно від країни (рисунок 7). Починаючи з 1960-х років, цей показник опустився до рівня 0.15-0.80 за 10 років.

Сподобалася стаття? Поділіться з друзями!
Чи була ця стаття корисною?
Так
Ні
Дякую за ваш відгук!
Щось пішло не так і Ваш голос не був врахований.
Дякую. Ваше повідомлення відправлено
Знайшли у тексті помилку?
Виділіть її, натисніть Ctrl+Enterі ми все виправимо!