はじめに 

サッカーとは何かを知らない人に伝える場合、おそらく「足を使う球技である」と伝える人が多いだろう。日本では「蹴球」と表記されるように、ボールを蹴るスポーツである。だが、手を使ってボールを扱う場面がある。ゴールキーパーは特殊な手袋をつけているからか、一人だけユニフォームが違うからなのか分からないが、特定のエリアで手を使うことが許されている。さらに、コート外にボールが出た場合、ゴールキーパー以外のプレイヤーも手でボールを触ることが許されている。審判もまた手で触っていることがある。経験的に、試合が終わるとボールをボールケースに入れるときも手で入れている。
したがって、サッカーとは足を使う球技であるが、特権階級・状況・試合時間外はボールを触ることが許されている球技であるというとより正確に伝えることができるであろう1

サッカーは得点の入りにくい球技である。他のスポーツと比較してみよう。バスケットボールの得点は2点、定めれらた距離以上のところから決めると3点がもらえる。野球の得点はボールインプレイからボールデッドの間で、走者又は打者が手順を間違えずにホームベースを踏むと得点をする。例外として、ボールデッドであっても、ホームランは手順を間違えなければ、安全にホームベースを踏むことができる2。野球ではボールインプレイからボールデッドの間に、1点から4点の得点をあげることができる。
サッカーと同じ1点しかあげられないハンドボールでは、点の取り合いのような試合ばかりである。よって、サッカーは1点が他のスポーツと比較して、重みがあると言えよう。

サッカーで「手」を使うことは、制限されていることを示した。同時に日本で「蹴球」と表記することも確認した。このように、足を使うことを全面に出しているのにもかかわらず、競技中、手がボールに触れてしまうことがある。この場合、なんのスポーツをしているのか分からなくなってしまう。経験的に、決定機に手で触れてしまうと厳しい処分が下っているところを見ることが多い。さらに前段で言ったように、1点の重み3が他の球技と比べてある。よって、ボールを手で触る行為は場合によって、試合を決めてしまう可能性がある。

このように、ハンドという行為はサッカーで「二重の意味で禁じ手」である。「蹴球」の名を脅かす手を使い反則は何が影響しているのかが分析の目的である。前置きが長くなったが、今回は2010年に行われた“FIFA World Cup”を用いて分析を行う。

Rの分析でロジスティク回帰分析まで行う。分析の手順がが多くなる多め数回に分けて更新をする。今回は「For文」と「相関行列」の練習を行う。「For文」は国によって試合数が違うので、1試合あたりの値にするために使い、相関行列は変数間の相関をすべて表示をするために行う。

データを読み込む:

library(tidyverse)
FALSE -- Attaching packages -------------------------------------------------------------------------------------------- tidyverse 1.3.0 --
FALSE √ ggplot2 3.2.1     √ purrr   0.3.3
FALSE √ tibble  2.1.3     √ dplyr   0.8.3
FALSE √ tidyr   1.0.0     √ stringr 1.4.0
FALSE √ readr   1.3.1     √ forcats 0.4.0
FALSE -- Conflicts ----------------------------------------------------------------------------------------------- tidyverse_conflicts() --
FALSE x dplyr::filter() masks stats::filter()
FALSE x dplyr::lag()    masks stats::lag()
library(GGally)
FALSE Registered S3 method overwritten by 'GGally':
FALSE   method from   
FALSE   +.gg   ggplot2
FALSE 
FALSE Attaching package: 'GGally'
FALSE The following object is masked from 'package:dplyr':
FALSE 
FALSE     nasa
DATA <- read_csv("soccer_analysis.csv")
FALSE Parsed with column specification:
FALSE cols(
FALSE   .default = col_double(),
FALSE   Team = col_character()
FALSE )
FALSE See spec(...) for full column specifications.

for文を使う

DATA
## # A tibble: 32 x 25
##    Team   game goal_point given_point shoot attack tackle tackle_lose offside
##    <chr> <dbl>      <dbl>       <dbl> <dbl>  <dbl>  <dbl>       <dbl>   <dbl>
##  1 Spain     7          8           2   121    107     52          29      12
##  2 Neth~     7         12           6    93     69     26          17      29
##  3 Germ~     7         16           5   102     91     31           7      23
##  4 Urug~     7         11           8   102     69     38          16      20
##  5 Arge~     5         10           6    95     70     25          15      12
##  6 Ghana     5          5           4   101     56     18          10      10
##  7 Para~     5          3           2    63     39     27          14       7
##  8 Braz~     5          9           4    89     72     40          22       6
##  9 USA       4          5           5    69     35     32          14       4
## 10 Engl~     4          3           5    65     62     38          13       9
## # ... with 22 more rows, and 16 more variables: assist <dbl>, sbr <dbl>,
## #   chance <dbl>, clear <dbl>, clear_succ <dbl>, try_tackle <dbl>,
## #   intercept <dbl>, yellow_card <dbl>, red_card <dbl>, foul <dbl>,
## #   get_foul <dbl>, hand <dbl>, pass <dbl>, succ_pass <dbl>, corner_kick <dbl>,
## #   run <dbl>

変数を紹介する4

game -> 試合数
get_point -> 得点数
given_point -> 失点数
shoot -> シュートと打った数
attack -> 攻撃回数    tackle -> タックルを受けた回数
tackle_lose -> タックルを受けてボールを失った回数
offside -> オフサイドをした数
assist -> アシストをした数
sbr -> 単独突破の回数
chance -> ペナルティエリア内へボールを運んだ回数
clear -> クリアを試みた数
clear_succ -> クリアが成功した数
try_tackle -> タックルをした回数
intercept -> タックルをして取り返した回数
yellow_card -> イエローカードの数
red_card -> レッドカードの数
foul -> ファールをした数
get_foul -> ファールを与えた数
hand -> ハンドをした数
pass -> パスを試みた数
succ_pass -> パスが成功した数
corner_kick -> コーナーキックの数
run -> 走行距離

以上の24個の変数がある。

DATAは、試合数がバラバラで比較ができない。したがって、1試合あたりの値にして比較する。1試合あたりの値にするためにfor文を用いる。

1. for文を使う

Messi <- NULL ## made an empty box nameed Messi

for (i in 1:nrow(DATA)) { 
  g <- DATA[i,"game"]
  m <- DATA[i,3:25]
  kekka <- m/unlist(g)
  Messi <- rbind(Messi,kekka)     
}

Messi <- cbind.data.frame("game"=DATA$game,Messi)
Messi <- cbind.data.frame("Team"=DATA$Team,Messi)

summary(Messi)
FALSE         Team         game        goal_point      given_point    
FALSE  Algeria  : 1   Min.   :3.00   Min.   :0.0000   Min.   :0.2500  
FALSE  Argentine: 1   1st Qu.:3.00   1st Qu.:0.6667   1st Qu.:0.7786  
FALSE  Australia: 1   Median :3.50   Median :1.0000   Median :1.1714  
FALSE  Brazil   : 1   Mean   :4.00   Mean   :1.0218   Mean   :1.2198  
FALSE  Cameroon : 1   3rd Qu.:4.25   3rd Qu.:1.3333   3rd Qu.:1.6667  
FALSE  Chile    : 1   Max.   :7.00   Max.   :2.2857   Max.   :4.0000  
FALSE  (Other)  :26                                                   
FALSE      shoot           attack           tackle       tackle_lose   
FALSE  Min.   : 5.00   Min.   : 3.667   Min.   :1.000   Min.   :0.000  
FALSE  1st Qu.:11.62   1st Qu.: 8.312   1st Qu.:4.607   1st Qu.:2.000  
FALSE  Median :13.71   Median :11.100   Median :6.000   Median :2.775  
FALSE  Mean   :13.73   Mean   :10.755   Mean   :6.180   Mean   :2.694  
FALSE  3rd Qu.:16.06   3rd Qu.:13.000   3rd Qu.:8.000   3rd Qu.:3.375  
FALSE  Max.   :20.20   Max.   :17.000   Max.   :9.500   Max.   :4.400  
FALSE                                                                  
FALSE     offside           assist            sbr             chance     
FALSE  Min.   :0.3333   Min.   :0.0000   Min.   : 4.333   Min.   :1.667  
FALSE  1st Qu.:1.3833   1st Qu.:0.3333   1st Qu.: 9.646   1st Qu.:3.667  
FALSE  Median :2.2917   Median :0.6333   Median :13.367   Median :5.000  
FALSE  Mean   :2.3802   Mean   :0.6662   Mean   :13.826   Mean   :5.108  
FALSE  3rd Qu.:3.0000   3rd Qu.:1.0000   3rd Qu.:16.750   3rd Qu.:6.083  
FALSE  Max.   :6.0000   Max.   :2.0000   Max.   :25.429   Max.   :9.500  
FALSE                                                                    
FALSE      clear          clear_succ       try_tackle       intercept    
FALSE  Min.   : 1.333   Min.   :0.3333   Min.   : 2.000   Min.   :1.250  
FALSE  1st Qu.: 7.667   1st Qu.:1.4048   1st Qu.: 4.893   1st Qu.:2.150  
FALSE  Median : 9.575   Median :2.3333   Median : 6.125   Median :2.429  
FALSE  Mean   : 9.574   Mean   :2.2603   Mean   : 6.297   Mean   :2.853  
FALSE  3rd Qu.:11.375   3rd Qu.:3.0000   3rd Qu.: 7.500   3rd Qu.:3.812  
FALSE  Max.   :17.000   Max.   :5.0000   Max.   :11.333   Max.   :5.667  
FALSE                                                                    
FALSE   yellow_card        red_card            foul           get_foul    
FALSE  Min.   :0.6667   Min.   :0.00000   Min.   : 8.667   Min.   : 9.00  
FALSE  1st Qu.:1.5000   1st Qu.:0.00000   1st Qu.:13.982   1st Qu.:11.94  
FALSE  Median :1.7750   Median :0.00000   Median :16.300   Median :14.54  
FALSE  Mean   :1.9331   Mean   :0.08103   Mean   :15.943   Mean   :14.46  
FALSE  3rd Qu.:2.2708   3rd Qu.:0.03571   3rd Qu.:18.417   3rd Qu.:15.91  
FALSE  Max.   :3.2500   Max.   :0.66667   Max.   :21.000   Max.   :23.00  
FALSE                                                                     
FALSE       hand             pass         succ_pass      corner_kick   
FALSE  Min.   :0.2500   Min.   :364.3   Min.   :221.0   Min.   :1.000  
FALSE  1st Qu.:0.5929   1st Qu.:439.8   1st Qu.:290.5   1st Qu.:3.667  
FALSE  Median :1.0000   Median :480.4   Median :346.8   Median :4.381  
FALSE  Mean   :0.9884   Mean   :484.0   Mean   :342.9   Mean   :4.685  
FALSE  3rd Qu.:1.3333   3rd Qu.:529.5   3rd Qu.:384.2   3rd Qu.:5.333  
FALSE  Max.   :2.2500   Max.   :678.9   Max.   :543.3   Max.   :8.750  
FALSE                                                                  
FALSE       run        
FALSE  Min.   : 92.84  
FALSE  1st Qu.:102.03  
FALSE  Median :106.80  
FALSE  Mean   :106.21  
FALSE  3rd Qu.:109.43  
FALSE  Max.   :118.37  
FALSE 

はじめに、1試合あたりの値になった変数を入れる空の箱を作る。今回はサッカーの分析なので、Messiというサッカー選手の空き箱を作った。空の箱はこのように自分の好きなものの名前を付けてよい。

for文の中身の説明をする。for文の1行目は、括弧の中に“i in 1:nrow(DATA)”を書いている。 これは「1番目の行から最後の行まで順番に抜き出す」という意味である。よって、“nrow(DATA)”の部分は最後の行番号である「32」を入れてもよい(その場合、“i in 1:32”)となる。

for文の2行目は、今抜き出した行(1チーム分のデータ)から試合数の変数である“game”の数だけを抜き出し、“g”という新しい空の箱に代入した。for文の3行目は、今抜き出した行(1チーム分のデータ)から国名と試合数を除いた3列目から25列目までを抜き出し、“m”という新しい空の箱に代入した。

for文の4行目は、1試合あたりの値にするために、3列目から25列目まで(m)を試合数(g)で割る(m÷g)作業を行っている。この結果を“kekka”に代入する5

for文の5行目は、1試合あたりの値(行)をいれたkekkaをMessiに入れていくことを意味する。
for文は繰り返す文である。今回は1行ずつ1試合あたりの数字にし、1行目から32行目までを繰り返してMessiに入れる作業を指示している。

for文の下にある“cbind.data.frame”はMessiに国名(Team)と試合数(game)がないので入れている。

2. for文以外のコード

### oldfashion
DATA2 <- DATA[,-1]
DATA3 <- apply(DATA2, 2, function(x)x/data2$"game") ##apply関数の括弧内の
Me <- DATA3[,-1]
Me  <- as.data.frame(Me) ##データフレームにする
 
Mess <- cbind.data.frame("game"=DATA$game,Me)
Messi <- cbind.data.frame("Team"=DATA$Team,Me)

意味は分かりやすいが、コードが多い。因みに、apply関数の括弧内の2番目の“2”は、「行」であることを表している。

Messi
##                        Team game goal_point given_point    shoot    attack
## 1                     Spain    7  1.1428571   0.2857143 17.28571 15.285714
## 2               Netherlands    7  1.7142857   0.8571429 13.28571  9.857143
## 3                   Germany    7  2.2857143   0.7142857 14.57143 13.000000
## 4                   Uruguay    7  1.5714286   1.1428571 14.57143  9.857143
## 5                 Argentine    5  2.0000000   1.2000000 19.00000 14.000000
## 6                     Ghana    5  1.0000000   0.8000000 20.20000 11.200000
## 7                  Paraguay    5  0.6000000   0.4000000 12.60000  7.800000
## 8                    Brazil    5  1.8000000   0.8000000 17.80000 14.400000
## 9                       USA    4  1.2500000   1.2500000 17.25000  8.750000
## 10                  England    4  0.7500000   1.2500000 16.25000 15.500000
## 11              South_Korea    4  1.5000000   2.0000000 15.50000 12.750000
## 12                 Slovakia    4  1.2500000   1.7500000 10.25000  7.500000
## 13                    Chile    4  0.7500000   1.2500000 16.00000 12.250000
## 14                    Japan    4  1.0000000   0.5000000 11.50000  8.250000
## 15                 Portugal    4  1.7500000   0.2500000 13.75000 11.250000
## 16                   Mexico    4  1.0000000   1.2500000 13.25000 13.500000
## 17                  Algeria    3  0.0000000   0.6666667 13.66667 11.000000
## 18                    Italy    3  1.3333333   1.6666667 16.33333 17.000000
## 19                Australia    3  1.0000000   2.0000000 11.66667 10.000000
## 20                 Cameroon    3  0.6666667   1.6666667 16.33333 10.666667
## 21              North_Korea    3  0.3333333   4.0000000 11.33333  6.000000
## 22                   Greece    3  0.6666667   1.6666667 13.33333 14.000000
## 23            Cote d'Ivoire    3  1.3333333   1.0000000 14.33333 11.666667
## 24              Switzerland    3  0.3333333   0.3333333 10.66667  7.333333
## 25                 Slovenia    3  1.0000000   1.0000000  9.00000  6.000000
## 26                   Serbia    3  0.6666667   1.0000000 15.00000 13.000000
## 27                  Denmark    3  1.0000000   2.0000000 14.00000 11.333333
## 28                  Nigeria    3  1.0000000   1.6666667 10.66667  8.333333
## 29              New Zealand    3  0.6666667   0.6666667  5.00000  3.666667
## 30                   France    3  0.3333333   1.3333333 13.66667 11.000000
## 31                 Honduras    3  0.0000000   1.0000000  8.00000  6.666667
## 32 Republic of South Africa    3  1.0000000   1.6666667 13.33333 11.333333
##      tackle tackle_lose   offside    assist       sbr   chance     clear
## 1  7.428571    4.142857 1.7142857 0.7142857 25.428571 8.714286  6.428571
## 2  3.714286    2.428571 4.1428571 1.4285714 13.142857 5.000000  9.285714
## 3  4.428571    1.000000 3.2857143 2.0000000 19.428571 5.714286  5.571429
## 4  5.428571    2.285714 2.8571429 1.1428571 10.857143 5.142857 11.571429
## 5  5.000000    3.000000 2.4000000 0.8000000 22.600000 5.400000  3.800000
## 6  3.600000    2.000000 2.0000000 0.2000000 13.400000 7.200000  8.200000
## 7  5.400000    2.800000 1.4000000 0.6000000  8.000000 4.800000  9.400000
## 8  8.000000    4.400000 1.2000000 1.6000000 19.400000 6.000000  7.600000
## 9  8.000000    3.500000 1.0000000 0.5000000  9.750000 4.750000 11.500000
## 10 9.500000    3.250000 2.2500000 0.7500000 14.750000 6.750000 14.000000
## 11 4.000000    2.000000 0.7500000 0.5000000 14.500000 7.000000 12.500000
## 12 7.000000    4.000000 2.0000000 1.0000000  9.250000 4.250000  9.750000
## 13 8.500000    4.250000 4.2500000 0.7500000 15.250000 9.500000  4.750000
## 14 5.250000    2.000000 2.7500000 0.5000000  5.750000 4.000000  8.250000
## 15 8.250000    3.750000 2.0000000 1.7500000 18.750000 5.000000 10.750000
## 16 7.250000    2.750000 3.5000000 0.7500000 15.500000 4.250000 10.000000
## 17 8.666667    3.000000 3.0000000 0.0000000 15.666667 1.666667 17.000000
## 18 8.666667    2.333333 2.3333333 0.6666667 17.000000 9.333333 10.000000
## 19 4.333333    1.666667 1.3333333 0.3333333  8.333333 5.333333  7.666667
## 20 5.666667    2.333333 2.0000000 0.0000000 16.666667 8.333333  1.333333
## 21 6.666667    2.000000 2.0000000 0.3333333  9.333333 1.666667 11.333333
## 22 4.333333    1.000000 2.3333333 0.0000000 17.666667 3.333333 10.000000
## 23 4.666667    1.333333 2.6666667 1.0000000 25.000000 6.333333  5.333333
## 24 5.000000    3.000000 1.0000000 0.0000000 11.333333 3.666667 14.666667
## 25 8.666667    4.333333 2.3333333 1.0000000 10.666667 3.000000 15.333333
## 26 4.333333    2.333333 4.3333333 0.3333333 13.000000 4.666667  7.666667
## 27 6.333333    3.000000 1.0000000 0.6666667 13.000000 5.000000  9.000000
## 28 7.666667    3.666667 0.3333333 0.3333333 13.333333 3.666667 15.000000
## 29 1.000000    0.000000 1.0000000 0.3333333  4.333333 2.666667  8.666667
## 30 8.000000    3.333333 4.0000000 0.3333333 15.000000 5.666667 10.000000
## 31 5.666667    2.000000 6.0000000 0.0000000  8.000000 3.000000  9.000000
## 32 7.333333    3.333333 3.0000000 1.0000000  8.333333 2.666667 11.000000
##    clear_succ try_tackle intercept yellow_card  red_card      foul get_foul
## 1   1.4285714   4.571429  2.428571   1.1428571 0.0000000 11.571429 19.14286
## 2   3.1428571   4.571429  1.571429   3.1428571 0.0000000 18.000000 16.57143
## 3   1.7142857   5.857143  2.000000   1.5714286 0.0000000 10.714286 11.42857
## 4   3.1428571   5.857143  2.428571   1.2857143 0.1428571 14.142857 15.71429
## 5   0.8000000   4.400000  2.400000   1.4000000 0.0000000 13.000000 15.40000
## 6   1.6000000   6.800000  2.400000   2.2000000 0.0000000 18.000000 12.00000
## 7   2.2000000   5.000000  2.200000   1.8000000 0.0000000 19.400000 15.80000
## 8   2.8000000   7.600000  2.800000   1.4000000 0.2000000 15.600000 15.20000
## 9   2.7500000   7.500000  3.250000   2.2500000 0.0000000 13.500000 15.50000
## 10  2.7500000   7.500000  1.750000   1.5000000 0.0000000 12.750000 11.75000
## 11  5.0000000   4.250000  2.250000   1.5000000 0.0000000 14.250000 14.75000
## 12  2.2500000   5.750000  2.250000   2.7500000 0.0000000 17.000000 16.25000
## 13  0.5000000   7.750000  4.000000   3.2500000 0.0000000 19.750000 17.00000
## 14  0.7500000   2.000000  1.250000   1.7500000 0.0000000 17.500000 23.00000
## 15  3.5000000   8.500000  3.750000   2.0000000 0.2500000 15.000000 12.00000
## 16  3.0000000   6.250000  2.250000   2.2500000 0.0000000 21.000000 15.75000
## 17  5.0000000  11.333333  5.666667   1.3333333 0.0000000 17.000000 10.00000
## 18  2.0000000   9.333333  5.000000   1.6666667 0.0000000 14.333333 19.33333
## 19  2.6666667   2.666667  1.333333   2.3333333 0.6666667 20.666667 12.00000
## 20  0.3333333   5.333333  2.333333   1.6666667 0.0000000 18.666667 13.66667
## 21  2.3333333   7.000000  3.333333   0.6666667 0.0000000  8.666667 14.33333
## 22  0.6666667   6.000000  2.666667   1.6666667 0.0000000 13.333333 11.66667
## 23  1.3333333   5.666667  4.000000   1.6666667 0.0000000 19.000000 14.00000
## 24  2.3333333   7.333333  4.000000   2.6666667 0.3333333 19.666667 12.66667
## 25  2.6666667   6.666667  2.666667   3.0000000 0.0000000 14.666667 16.66667
## 26  1.3333333   4.333333  2.000000   2.6666667 0.0000000 10.000000 20.33333
## 27  3.0000000   9.666667  4.333333   2.0000000 0.0000000 18.333333  9.00000
## 28  3.0000000   7.000000  2.666667   1.6666667 0.3333333 15.000000 10.66667
## 29  0.6666667   3.333333  1.333333   2.0000000 0.0000000 20.333333 11.66667
## 30  1.6666667   6.000000  1.666667   2.0000000 0.3333333 17.666667 15.66667
## 31  3.6666667   7.333333  4.666667   2.3333333 0.0000000 17.333333 13.33333
## 32  2.3333333   8.333333  4.666667   1.3333333 0.3333333 14.333333 10.33333
##         hand     pass succ_pass corner_kick      run
## 1  0.4285714 678.8571  543.2857    8.000000 109.6271
## 2  1.4285714 534.0000  380.7143    4.428571 107.4057
## 3  0.5714286 564.0000  409.2857    6.285714 108.4014
## 4  1.0000000 438.2857  270.0000    5.142857 109.0257
## 5  0.6000000 605.2000  458.8000    6.600000  98.7860
## 6  1.4000000 480.4000  329.2000    5.200000 115.4020
## 7  1.8000000 473.2000  311.0000    2.800000 110.1700
## 8  0.4000000 571.6000  450.8000    6.800000 100.0080
## 9  2.2500000 440.2500  293.7500    4.250000 118.3700
## 10 1.0000000 544.0000  394.5000    8.750000 108.4425
## 11 1.0000000 480.2500  332.0000    4.500000 106.9500
## 12 0.5000000 451.2500  309.0000    5.250000 104.3025
## 13 2.0000000 502.2500  360.2500    5.000000 101.7775
## 14 1.7500000 369.2500  222.5000    3.000000 116.1300
## 15 0.2500000 495.0000  365.0000    4.000000 110.1525
## 16 1.2500000 528.0000  399.5000    4.250000 109.8425
## 17 1.0000000 486.6667  352.6667    4.333333 103.7700
## 18 1.3333333 556.3333  406.6667    8.666667 105.8833
## 19 1.0000000 495.3333  348.3333    4.333333 112.5633
## 20 0.6666667 552.0000  400.3333    5.333333 101.6733
## 21 0.3333333 412.3333  268.0000    1.333333 104.8800
## 22 1.0000000 413.0000  280.6667    7.666667 100.4233
## 23 0.6666667 493.3333  375.0000    5.333333 102.1133
## 24 1.0000000 408.3333  277.3333    3.666667 109.3600
## 25 1.0000000 445.0000  305.0000    2.333333 106.6500
## 26 1.3333333 495.0000  358.0000    3.666667 107.5767
## 27 1.0000000 470.3333  345.3333    3.666667 105.3833
## 28 0.6666667 393.3333  266.3333    2.666667  92.8400
## 29 1.3333333 364.3333  221.0000    1.000000 103.2033
## 30 0.3333333 480.3333  334.6667    4.666667 100.7200
## 31 1.0000000 392.6667  252.3333    3.000000  99.9000
## 32 0.3333333 474.0000  352.6667    4.000000 107.0233

3. 要約統計量とヒストグラム

summary(Messi$hand)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.2500  0.5929  1.0000  0.9884  1.3333  2.2500
sd(Messi$hand)
## [1] 0.5083041

hist(Messi$hand,col = "grey")

1試合あたりのハンドの回数の要約統計量とヒストグラムで可視化を行なった。要約統計量より平均は0.98、標準偏差が0.51である。1試合あたりのハンドの回数は平均1回程度で、ばらつきも0.5と小さい。ヒストグラムを見ても0.5と1.0の間が多い。
1試合あたりのハンド回数は平均1回出るかでないかであるが、2回以上をしているチームも存在する。

相関行列で可視化する

library(corrplot)
## corrplot 0.84 loaded
quant <- cbind(Messi[,3:25])
corrplot(round(cor(quant),3), method="shade", shade.col=NA, tl.col="black", tl.srt=15,
         addCoef.col="black", addcolorlabel="no", order="AOE")

青色が濃くなると強い正の相関があり、赤色が濃くなると強い負の相関がある。
薄くなり、白色になると無相関である。
今回は、0.3以上の相関を報告する。
ハンドの回数と正の相関があるのは、イエローカードの数、走行距離、ファールと受けた回数、ファールの数である。
ハンドの回数と負の相関があるのは、単独突破の回数、レッド―カードの回数、パス成功回数である。

今回のまとめと考察

for文は、くり返しの作業をする文章である。今回は1試合あたりの値にするためにfor文を用いたが、それ以外の方法(for文の以下に示したのも一例である)もある。

相関行列では、ハンドの回数に注目して報告した。イエローカードの数、走行距離、ファールと受けた回数、ファールの数に正の相関がみられ、単独突破の回数、レッド―カードの回数、パス成功回数に負の相関がみられた。
この中で、最も興味深い事柄がイエローカードとレッドカードの数の相関の符号が反対であることである。ハンドをするとイエローカードをもらうことがあるだろう。ハンドとイエローカードの間に正の相関があることは頷ける。しかし、イエローカードの2枚分6と言えるレッドカードとハンドの間には負の相関がある。これは「1試合あたりのハンドの回数が多いほど、レッドカードはもらわない」となる。以下のチャンクにおいて、イエローカードは1試合平均が1.93で標準偏差が0.61である。一方で、レッドカードは1試合平均が0.08で標準偏差が0.16である。1試合でイエローカード平均で2枚もらうが、レッドカードは限りなく0枚に近い。標準偏差をみても、ばらつきは少ない。ハンドとイエローカードは1試合で数回起こる7ものの、レッドカードは殆ど出ない。数学的に、試合数が少ないチームがレッドカードをもらうと、1試合あたりのレッドカードの枚数が多くなってしまう。さらに、チーム事情から考えると、試合数が多い、言い換えるとトーナメントを勝ち進んだ強いチームは戦力があるはずだ。そのため、大事な試合ではレッドカードによる退場で1人を減る数的不利な状況よりも、退場となるリスクを避けイエローカードをもらった段階で交代をさせている可能性も考えられる。よって、ハンドとレッドカードの間に負の相関があったと考えられる。

yellow_card

mean(Messi$yellow_card)
## [1] 1.93311
sd(Messi$yellow_card)
## [1] 0.6100595

red_card

mean(Messi$red_card)
## [1] 0.08102679
sd(Messi$red_card)
## [1] 0.1608151

次回は、重回帰分析からハンドを生み出す要因を探す。

出典

なるほど統計学園(https://www.stat.go.jp/naruhodo/c3wcup.html 2019年12月8日にアクセス)

脚注


  1. 偉そうにここまでサッカーについて記述したが、筆者は幼稚園の時にサッカー教室?に通っていただけで、中学生から高校1年生の9月まで野球を、高校1年の9月から高校3年生の6月までハンドボールをしていた。

  2. 野球を見ていると、ホームランが出た瞬間(この表現は曖昧である)に、喜んでいる人がいる。しかし、ホームランは「安全進塁権が4つ与えられている」だけである。例えば、ホームランを打った打者がタバコを吸いたいと思い、ベースを回らずベンチに帰ると点数にならないはずだ。もしかしたら、観客はホームランを見たら、選手が得点する手順を遂行することを当たり前のことと思い、喜んでいるのかもしれない。このように、選手が手順を間違えた場合、観客は怒り・悲しむのだろう。

  3. 「1票の格差」と響きがどことなく似ていると筆者以外にも思った方がいるだろう。

  4. サッカーの用語はGoogleで検索して頂くと出てくるだろう。

  5. unlist(g)と書いているが、何度もエラーが起こったため、このような措置を行った。詳しくは筆者自身も理解していない。

  6. 危険なプレーなど、初めからレッドカードをもらう場合もある。

  7. ハンドの平均は「3. 要約統計量とヒストグラム」のところを、イエローカードは「今回のまとめと考察」のところを参照して頂きたい。