交通事故の空間分布パターンの分析
⼭⽥晴利

公益財団法⼈ 交通事故総合分析センター
常務理事

1研究部⻑

はじめに交通事故の発⽣場所の経度・緯度データを⽤いて，交通事故の分布パターンの分析を⾏った．

分析対象としたのは，次のふたつのテーマである．

• 交通事故の多発箇所（ホット・スポット）の分布パターンと重⼤事故（死亡・重傷事故）のパターンの間に差があるかどうか．

• 交通事故が集中している場所があるのかどうか，あるとすればそれはどこか．
最初の分布パターンの分析では，交通事故総合分析センター（以下，ITARDA と記す）で設定した ITARDA 区間（詳細については後述する）をもとにして抽出した事故多発箇所と死亡・重傷事故の発⽣箇所の分布パターンが同じと⾒なせるかどうかを統計的に分析した．
⼆番⽬の交通事故の集中している場所のクラスタリング分析では，1 km メッシュごとに集計した交通事故件数を⽤いて，事故が集中的に発⽣しているメッシュのかたまり（クラスター）を⾒出すことを試みた．

2

交通事故の分布パターンの分析
死亡事故，重傷事故および多発箇所の空間的な分布パターンの間に差があるかどうかを統計的に検証することを⽬的として，点パターンの分析⼿法を⽤いた．
分析に使うデータとしては，2013 年に発⽣した⼈⾝事故のうち，⼀般幹線道路（⼀般国道，主要地⽅道，⼀般都道府県道）で発⽣した事故を⽤いた．⾼速道路，⾃動⾞専⽤道，市町村道，農林道，駐⾞場・広場等で発⽣した事故は除外した．これは，事故多発箇所が⼀般幹線道路で発⽣した事故をもとにして選定されているためである．
分析の対象としたのは，東京都市圏と京阪神都市圏の⼆つである．東京都市圏では三鷹市を中⼼とする半径 30 km のエリアを，京阪神都市圏では守⼝市を中⼼とする半径 50 km のエリアをそれぞれ分析対象とした．

1©2015 ITARDA

事故多発箇所の分析には「イタルダ区間」を⽤いた．イタルダ区間とは，幹線道路のネットワークをまず単路とネットワークに分け，単路についてはリンクをさらに⻑さ約 300 m の区間に再分割したものであり，従来から道路管理者による交通事故の分析に広く⽤いられている．
区間の数は単路で約 60 万，交差点で約 24.8 万である．
ここでは，年間 4 件以上の事故が発⽣している区間（単路，交差点）を多発箇所として抽出した．ただし，抽出に当たっては単路と交差点を区別していない．多発箇所の数は全国で16,856 箇所となった．
多発箇所の場所を表す代表点として，交差点についてはデジタル道路地図（DRM）の交差点の代表ノードを⽤いた．
単路については，始点と終点の経度・緯度を平均した単路の中⼼点で単路を代表させた．実際には単路は⻑さを持った線要素であるが，以下の分析では中⼼点で代表させている．
死亡事故・重傷事故の発⽣位置については，事故原票に付与された経度・緯度の値を使った．
分析の対象とした東京都市圏，京阪神都市圏においては，経度・緯度の値は⾼い精度で計測されていることが確認されているので，経度・緯度の値の修正は⾏っていない．
最初に，東京都市圏と京阪神都市圏の交通事故を対象にしてカーネル密度推定（KDE:

Kernel Density Estimation）を⾏った結果を図 1と図 2に⽰した．

図1

東京都市圏でのカーネル密度推定結果（2013 年事故）：左が死亡事故，中が重傷事故，右が多発箇所

これらカーネル密度推定の結果から，次の結論を導くことができる．

• 東京都市圏では死亡事故は東京の都⼼において⾼い密度で発⽣しており，周辺に⾏くにしたがい密度は低くなる．

• ⼀⽅，重傷事故は東京都⼼では密度が低く，むしろ埼⽟県の南部で密度が⾼くなっている．これは東京都の重傷事故件数が周辺の県と⽐べ著しく低いためである．しかし，東京都の重傷事故件数が他県と⽐べ少ない原因は現時点では不明である．

• 多発箇所はやはり東京都⼼で密度が⾼いが，密度の⾼い地域は東⻄に広がっているようにみえる．

• 東京都市圏と⽐べると，京阪神都市圏では死亡事故，重傷事故，多発箇所の間の分布パ2©2015 ITARDA

図2

京阪神都市圏でのカーネル密度推定結果（2013 年事故）：左が死亡事故，中が重傷事故，右が多発箇所

ターンの差は⼩さい．

• 死亡事故，重傷事故，多発箇所いずれの場合も，⼤阪市と京都市の密度が⾼くなっている．
次にマーク付き点過程の分析を⾏う．以下では，死亡事故と重傷事故のパターンに差があるかどうか，死亡事故と多発箇所のパターンに差があるかどうか，そして重傷事故と多発箇所のパターンに差があるかどうかという 3 つの分析を⾏った結果を⽰す．分析には統計ソフト R とクロス L 関数を使った．
クロス L 関数はクロス K 関数から計算される．クロス K 関数はマークが i の点からある⼀定の距離 r 内にあるマーク j の点の数をもとに計算される．すなわち，Cross Kij (r) = λj E [Kij (r)](1)と書くことができる．ここに，λj はマークが j の点の平均的な密度（単位⾯積あたりの点の数），Kij (r) はマークが i の点からある⼀定の距離 r 内にあるマーク j の点の数で，E[·] は期待値を表す．
クロス L 関数は次式で定義される．

√Cross Lij (r) =Cross Kij (r).
π(2)

マーク i の点のパターンと j の点のパターンが独⽴ならば，クロス L 関数の理論的な値は rで与えられる．すなわち，距離 r の線形関数となる．
しかしながら，Brunsdon and Comber2) はクロス L 関数の値をプロットして包絡線と⽐較するのは，「究極の多重⽐較」なので避けるべきだとしている．
包絡線を使った検定に代わる⽅法として考案されたのが DCLF 検定と MAD 検定である．

DCLF はこれを考案した Diggle, Cressie, Loosmore and Ford の頭⽂字である．また，MADは Maximum Absolute Deviation（乖離の絶対値の最⼤値）を表し，Repley3) によって考案された．これらはデータに対して⼀つの統計量を算出してくれるので，多重⽐較の問題を避けることができる．

3©2015 ITARDA

検定の対象となる帰無仮説 H0 は，「距離 t ∈ [tmin , tmax ] において計算された観測データの統計量（G または K ）にもとづく ui の値が仮定された空間過程のモデルからランダムに⽣成された値と異なってはいない」というものである．
以上の記述を踏まえて，東京都市圏と京阪神都市圏を対象に事故多発箇所，死亡事故発⽣箇所および重傷事故発⽣箇所の分布パターンの間に統計的に有意な差があるかどうかを検定した．マーク付き点過程の分析を⾏った結果から次の結論が導かれる．

• 東京都市圏– 死亡事故と重傷事故，死亡事故と多発箇所，そして重傷事故と多発箇所の空間パターンには統計的に有意な差がある（いずれの場合も p < 0.01）．

– この結論は，先に⽰したカーネル密度推定の結果からも予想される結果である．
• 京阪神都市圏– 京阪神都市圏においても，死亡事故と重傷事故，死亡事故と多発箇所，重傷事故と多発箇所の分布パターンの間には統計的に有意な差がある（いずれの場合もp < 0.01）．
– カーネル密度推定の結果からすると，この結論はやや意外である．

3メッシュ単位の交通事故多発クラスター分析
本節では，1 km メッシュ単位に集計した⼈⾝事故件数を対象にして事故多発メッシュのクラスタリングを分析した結果を⽰す．ここで「クラスタリング」といっているのは，事故件数の多い（または少ない）メッシュが地理空間的に集まっていることを意味する．ただし，交通事故の場合には事故件数の少ないメッシュは重要ではないので，事故件数の多いメッシュに着⽬して分析を⾏った．また，平⽇と休⽇では分布パターンに差がある可能性があるので，平⽇と休⽇の事故を別々に分析した．休⽇は，⽇曜⽇，祝⽇と正⽉三が⽇とした．
分析の対象としたのは，前節と同じく 2013 年に発⽣した⼈⾝交通事故のうち⼀般幹線道路で発⽣した事故である．
さらに，⼀般道路が存在しないメッシュは分析の対象から外した．これはこうしたメッシュでは交通事故が発⽣することはないと考えられるからである．
以下では，兵庫県を対象にクラスタリングの分析を⾏った結果を R のコードとともに⽰す．
このコードは Brunsdon and Comber2) と Chang4) をもとにしている．なお，以下に⽰すコー
ド，出⼒結果そしてコメントは，RStudio に実装されている rmarkdown を利⽤してこれらをXƎLATEX に変換した結果をもとにして，作成した．
# 必要なパッケージを読み込む
library(GISTools)
library(spdep)
library(rgdal)
library(maptools)

4©2015 ITARDA

library(ggplot2)
library(grid)# 1 km メッシュファイルを読み込む
proj4UTM53N <"+proj=utm +zone=53 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"
CRS_UTM53N <- CRS(proj4UTM53N)
Hyogo_1km_UTM53N <- readShapePoly("Hyogo_1kmMesh_UTM53N.shp",
proj4string=CRS_UTM53N)
それぞれのポリゴンの事故件数，道路延⻑などの属性を格納してある csv ファイルを読み込
む．事故件数は⼀般道路で発⽣した件数を平⽇，休⽇別に集計した値となっている．また，道路地図から読み込んだメッシュ毎の道路延⻑が国道（croad_length），主要地⽅道（local1_length），
⼀般都道府県道（general_length），細道路（thin_length）別に記録されている．
ポリゴンの属性データをポリゴンのシェープファイルの属性として付与する．

# csv ファイルを読み込む
Hyogo_acc2013_G <- read.csv("Hyogo_final.csv", header=T)# 属性データの付与
Hyogo_1km_UTM53N@data <- merge(x=Hyogo_1km_UTM53N@data, y=Hyogo_acc2013_G,
by="CODE", all.x=T)
メッシュ毎に⼀般道路の総延⻑の値を計算し，総延⻑がゼロのメッシュは分析対象から除外する．⼀般道路の総延⻑がゼロのメッシュは 1658 ある．

# メッシュ内の道路延⻑を計算する
attach(Hyogo_1km_UTM53N@data)
Hyogo_1km_UTM53N@data$GRoad_Total <- croad_length + local1_length +general_length + thin_length
detach(Hyogo_1km_UTM53N@data)# GRoad_Total = 0 のメッシュを検索する
r0_index <- Hyogo_1km_UTM53N@data$GRoad_Total == 0sum(r0_index)## [1] 1658
# ⼀般道路の総延⻑が 0 のメッシュを除外する
Hyogo_1km_UTM53N_R <- Hyogo_1km_UTM53N[!r0_index,]
length(Hyogo_1km_UTM53N_R@data$CODE)

5©2015 ITARDA

## [1] 6807
# シェープファイルを書き出す
writePolyShape(Hyogo_1km_UTM53N_R, "Hyogo_1kmM_UTM53N_acc_withR")
すぐ上で書き出したシェープファイルをもう⼀度読み込んで，ggplot2 で作図するのに⽤いる．読み込んだシェープファイルの属性名が⼀部短縮されているので注意する必要がある．これはシェープファイルの属性名が 10 ⽂字に制限されているためである．

# シェープファイルを読み込む# いくつかの変数名が短く変換されているので注意
Pref_1kmM_acc <- readShapePoly("Hyogo_1kmM_UTM53N_acc_withR.shp",
proj4string=CRS_UTM53N)# id 番号を付与する
Pref_1kmM_acc$id <- rownames(Pref_1kmM_acc@data)
ggplot2 でプロットするデータはデータフレームでないといけない．しかし，シェープファイルはデータフレームではないので，ggplot2 パッケージの fortify() 関数を使ってシェープファイルをデータフレームに変換する．ただし，fortify() 関数はポリゴンデータを変換するだけで属性データは変換されないので，ポリゴンの属性データを結合する．

# データフレームに変換する
Pref_1kmM_pre <- fortify(Pref_1kmM_acc)## Regions defined for each Polygons# 属性データを付与する
Pref_1kmM_attr <- merge(x=Pref_1kmM_pre, y=Pref_1kmM_acc@data, by="id",all.x=T)# 不要となったデータフレームを消去する
rm(Pref_1kmM_pre)
これで必要なデータが準備できたので，平⽇・休⽇別に事故件数のコロプレス図を描く．
ポリゴン（メッシュ）の描画には，ggplot パッケージの geom_polygon() 関数を使い，引数 color に “grey60” を指定した．group=CODE と指定することで，同じ番号をもつデータをメッシュ毎にひとつにまとめている（CODE はメッシュ番号である）．fill には⾊分けに使う属性情報を与える（ここでは事故件数）．
ポリゴンの⾊分けは scale_fill_continuous() で与えている．ここでは連続値を breakで与える値で区切って⾊分けする指定をした．low と high の⼆つの引数で⾊を指定し，事故件数が⾼いほど⾊が濃くなるようにした．name で与えた⽂字列が凡例に表⽰される．

coord_equal() 関数は縦横⽐を固定する関数である．

6©2015 ITARDAまず平⽇の事故件数のコロプレス図を描く．結果は図 3に⽰した．この図によると，神⼾市，芦屋市，尼崎市に線状に事故の多いメッシュが集中している．さらに姫路市，明⽯市に事故の多いメッシュが認められる．それ以外の地域では事故の件数はきわめて少ない．

# 軸には何も表⽰しないようにするための関数を定義する# R グラフィックスクックブックを参考にした（W Chang 著，オライリー・ジャパン）
theme_clean <- function(base_size=12) {theme_grey(base_size) %+replace%theme(axis.title= element_blank(),axis.text= element_blank(),

panel.background = element_blank(),
panel.grid= element_blank(),axis.ticks= element_blank(),

panel.margin= unit(0, "lines"),plot.margin= unit(c(0, 0, 0, 0), "lines"),

complete= TRUE)}# コロプレス図（平⽇の事故件数）
ggplot(Pref_1kmM_attr) +geom_polygon(aes(long, lat, group=CODE, fill=NUM_ACC_WO),
color="grey60") +scale_fill_continuous(low="#fefefe", high="#dd6600",
breaks=c(10, 20, 30, 40, 50, 75, 100), name=" 事故件数") +labs(title="1 km メッシュごとの交通事故件数\n兵庫県 2013 年：平⽇，⼀般道路") +coord_equal() + theme_clean()
つぎに休⽇の事故件数のコロプレス図を描く．結果は図 4に⽰した．事故件数が多いのは，平⽇の場合と同じ地域であるが，事故件数そのものは平⽇と⽐べ少なくなっている．

Brunsdon and Comber のやり⽅2) に従って，メッシュの間の事故件数の空間的な分布を分析する．事故が特定のメッシュ（の集合）に集中しているかどうかを検証することが⽬的である．
こうした分析に使われるのは，ローカル・モラン I，Ord の G 統計量であるが，ここではOrd の G 統計量を使った．これは次式で定義される．
∑nGi =j=1 zj vij (d)∑n.
j=1 zj(3)ここに，vij (d) はポリゴン i と j のセントロイド間の距離が d 未満のとき値 1 を，そうでないときは値 0 をとる関数であり，zi は関⼼のある観測量（ここでは事故件数）である．上の式からわかるように，G 統計量は観測量の値が負の値をとる場合には利⽤できない．

7©2015 ITARDA

図3

兵庫県における⼀般道路の⼈⾝事故件数（2013 年，平⽇，1 km メッシュ）

以下では「各ポリゴンの観測値をランダムに並べ替えて得られる仮想的なデータはどれも同様に確からしい」という仮説にもとづいてシミュレーションを⾏い，その結果から p 値を求めるという⼿順をとった．
ただし，その場合でも多重⽐較の問題は残るので補正が必要である．ここでは，FDR 法（False Discovery Rate）を使って補正した．
平⽇の事故についての分析に使った R のコードを以下に掲げる．計算結果については，平⽇と休⽇双⽅の結果を提⽰した．
まず 2 km 以内にあるメッシュを近傍のポリゴンと⾒なし（すなわち，式(3)で d = 2 km），この距離をもとにして近傍メッシュのリストを作る．

8©2015 ITARDA図4

兵庫県における⼀般道路の⼈⾝事故件数（2013 年，休⽇，1 km メッシュ）# 近接するメッシュを求める#

距離を 2 km に設定する（距離の単位は m なので 2000 を指定する）#

style="B" はバイナリの意味

near.dist <- 2000
near.poly <- dnearneigh(coordinates(Pref_1kmM_acc), 0, near.dist)near.poly.lw <- nb2listw(near.poly, style="B")
メッシュ毎の事故件数を使って local G の値を計算する．

acc.mesh.work <- Pref_1kmM_acc@data$NUM_ACC_WO
accm.localG.work <- localG(acc.mesh.work, near.poly.lw)

9©2015 ITARDA

summary(accm.localG.work)##Min.

1st Qu.

Median## -1.00100 -0.87220 -0.74950

Mean

3rd Qu.

Max.

0.08101 -0.40710 19.12000

計算された local G の値をコロプレス図に表す（図 5と図 6）．ここで描いているのは「標準化された」local G の値である（すなわち，平均が 0，分散は 1 になっている）．local G の値が⼤きいのは，事故件数が⼤きなメッシュとほぼ同じ地域であるが，事故件数よりもメッシュ間の差異が強調されている．

図5

兵庫県 Local G の値（2013 年，平⽇，1 km メッシュ）

10©2015 ITARDA

図6

兵庫県 Local G の値（2013 年，休⽇，1 km メッシュ）# ggplot2 を使って描画する#

ggplot2 の描画に使うデータフレーム Pref_1kmM_attr に上で計算した#

accm.localG.work の値を左結合する#

この結合のキーとなる変数 id は，ファクターに変換されないよう I() を使って与える#

acc.localG.work は local G クラスなので，数値に変換する

df.accm.work <- data.frame(id=I(rownames(Pref_1kmM_acc@data)),
localG_work=as.numeric(accm.localG.work))
Pref_1kmM_attr <- merge(x=Pref_1kmM_attr, y=df.accm.work, by="id", all.x=T)# 平⽇の事故について，標準化された Local G のコロプレス図を描く# 中間の値（ここではゼロ）からどのように値が変化しているかを⽰したいので，11©2015 ITARDA

# scale_fill_gradient2() 関数を使う
ggplot(Pref_1kmM_attr) +geom_polygon(aes(long, lat, group=CODE, fill=localG_work),color="grey60") +scale_fill_gradient2(low="#0000ff", mid="#fff8dc", high="#ff4500",
midpoint=0, guide="colourbar", name="local G") +labs(title="1 km メッシュごとの local G\n兵庫県 2013 年：平⽇，⼀般道路") +coord_equal() + theme_clean()
次に計算された local G の値について，正規性の検定を⾏う．前にも述べたように，それぞれのメッシュの事故件数を任意に並べ替えた状態がどれも等しい確率で⽣じると仮定し，2 万回のシミュレーションを⾏って，その結果をメッシュ毎に QQ プロット図に描いた．ただし，メッシュの数が多数あり，すべてのメッシュについての QQ プロットを載せることはできないので，図は省略する．平⽇，休⽇いずれの場合でも分布の右側では正規分布から外れており，裾の⻑い分布になっていることがわかる．
この結果は正規性の前提が成り⽴たないことを意味する．ここでの検定では分布の右側を使うことになるので，上述のシミュレーション結果をもとにして p 値を求めることにした．すな
わち，2 万回のシミュレーションにおいて，実際の事故データから計算された local G の値が上から何パーセントの位置にあるのかを求め，さらに FDR 法を⽤いて補正を⾏うことで修正された p 値を求めた．
シミュレーション結果を⽤いて，メッシュ別に local G 統計量の統計的な検定を⾏い，その結果をコロプレス図に表した（図 7と図 8）．

MC.localG.pvals <- (colSums(sweep(simulate.G, 2, accm.localG.work, ">=")) +1) / (nrow(simulate.G) + 1)
adjust.p <- p.adjust(MC.localG.pvals, method="fdr")# 分位数を与える．分位数で p 値をカテゴリー分けする．
break.points <- c(0, 0.001, 0.01,0.05, 0.10, 1)

p.category <- cut(adjust.p, break.points,
labels=c("0.1% Signif", "1% Signif", "5% Signif", "10% Signif", "Insign"),include.lowest=T)# 各カテゴリーのカラーパレット（離散的）を作る
cat.palette <- colorRampPalette(c("#ff4500", "#ffdab9", "#ffffff"))(5)# 各メッシュのカテゴリーをデータフレームに左結合する
df.accm.pval <- data.frame(id=I(rownames(Pref_1kmM_acc@data)),pval_work=p.category)Pref_1kmM_attr <- merge(x=Pref_1kmM_attr, y=df.accm.pval, by="id", all.x=T)# コロプレス図を描く
ggplot(Pref_1kmM_attr) +12©2015 ITARDA

geom_polygon(aes(long, lat, group=CODE, fill=pval_work), color="grey60") +scale_fill_manual(values=cat.palette, name="p-val") +labs(title="1 km メッシュ毎の p 値（Local G）\n兵庫府 2013 年：平⽇，⼀般道路") +coord_equal() + theme_clean()
これらの図によれば，平⽇，休⽇いずれにおいても⼭陽道沿いの都市部で p 値が有意になっており，事故の多いメッシュがここに集中していることがわかる．これ以外の地域では，有意なクラスターは存在しない．また平⽇と休⽇を⽐べると，休⽇では有意なメッシュが少なくなっていることがわかる．

図7

兵庫県メッシュ毎の p 値（2013 年，平⽇，1 km メッシュ）

13©2015 ITARDA図8

兵庫県メッシュ毎の p 値（2013 年，休⽇，1 km メッシュ）

以上で兵庫県の⼀般道路で発⽣した交通事故のクラスタリングの分析が終わった．以下では兵庫県以外の都府県（埼⽟県，東京都，及び⼤阪府）について，同じく⼀般道路で発⽣した交通事故のクラスタリングを分析した結果のコロプレス図を⽰す．分析は平⽇と休⽇の事故を分けて⾏ったが，両者の間に⼤きな差はないので，平⽇の結果のみを図 9〜 11に⽰した．
これらの図から，それぞれの都府県において交通事故が多発しているクラスターを判別することができる．こうしたメッシュにおいては，集中的な安全対策の必要性が⾼いといえよう．
また，Kuo et al 5) は，交通事故が多発しているメッシュと犯罪が多発しているメッシュは重なる部分が多いことから，こうした地域で犯罪の取り締まりを重点的に⾏えば，交通事故の抑⽌にも効果があると述べていることを付記しておく．

14©2015 ITARDA

埼⽟県については，メッシュ毎の事故件数のコロプレス図を⾒ると（図 9a），東京寄りの市と国道 17 号沿いで事故件数が多いことがわかる．⼀⽅，Local G を使った検定結果からは（図9b），東京寄りの市（越⾕，春⽇部，さいたま，川⼝，川越，和光，所沢，狭⼭）が有意なクラスターとして抽出されている．⼀⽅，国道 17 号沿いでは，深⾕，熊⾕がクラスターとして抽出されている．

(a) 埼⽟県の事故件数（2013 年，⼀般道路）(b) 埼⽟県の Local G（2013 年，⼀般道路）

図9

埼⽟県の交通事故のクラスタリング分析結果（2013 年，⼀般道路）

15©2015 ITARDA

東京都では，都⼼部で交通事故の件数が多いことは当然として，都⼼から離れた郊外部でも事故が発⽣している（図 10a）．しかし，有意なクラスターとして抽出されているのは，都⼼部の他，環状 7 号の加平と駒沢付近，環状 8 号の荻窪付近，及び第⼀京浜の沿線である．郊外部のメッシュは有意なクラスターとはなっていない（図 10）．

(a) 東京都の事故件数（2013 年，⼀般道路）(b) 東京都の Local G（2013 年，⼀般道路）

図 10

東京都の交通事故のクラスタリング分析結果（2013 年，⼀般道路）

16©2015 ITARDA

⼤阪府では，交通事故は⼤阪市，堺市を中⼼に広い地域で発⽣している（図 11a）．しかし，有意なクラスターとして抽出されたのは，⼤阪市，堺市，岸和⽥市，そして⾼槻市にとどまる（図 11）．

(a) ⼤阪府の事故件数（2013 年，⼀般道路）(b) ⼤阪府 Local G（2013 年，⼀般道路）

図 11

⼤阪府の交通事故のクラスタリング分析結果（2013 年，⼀般道路）

17©2015 ITARDA

4

おわりに
本研究では，交通事故発⽣場所の経度・緯度情報を使って，交通事故の多発箇所の分布と重⼤事故の分布パターンの間に差があるかどうか，さらに交通事故が集中している場所があるかどうか，あるとすればそれはどこか，という⼆つの課題を分析した．
分析の結果，次の結論が得られた．
まず多発箇所の分布と重⼤事故の分布パターンについては，東京都市圏，京阪神都市圏で2013 年に発⽣した幹線⼀般道路での事故データを使った分析から，多発箇所，死亡事故，そして重傷事故の分布パターンの間には統計的に有意な差があることがわかった．これは，死亡事故，重傷事故が必ずしも多発箇所で発⽣しているわけではないことを意味する．
さらに，1 km メッシュ単位に集計した事故データを使って事故のクラスタリングの分析を⾏ったところ，埼⽟県，東京都，⼤阪府，兵庫県では，事故が集中して発⽣しているクラスターが存在し，それらは都市部に限定されていることが明らかになった．
こうした分析を通じて，事故の発⽣場所の情報を使うことによってこれまでは⾏えなかった交通事故の地理空間的な特徴を捉えることができるようになることを⽰せたと考えている．しかも，こうした地理空間的なデータの処理，分析から結果の図化までを統計ソフト R の中で完結した形でできることも明らかになった．このことは，地理空間的なデータの分析を容易にしてくれるという点で研究者にとって朗報である．
なお，本稿にはこれらの分析に使った統計ソフト R のコードを掲載した．このコードは，

Brunsdon and Comber2) と Chang4) によるものをベースにして著者が⼀部改変したものである．こうしたすばらしいコードを作成してくださった著作者の⽅々に感謝する．

謝辞
本研究では，ArcGIS に加えて以下のオープンソフトを利⽤させていただいた．これらのソフトの製作・改良に携わった⽅々に深く感謝する．とくに交通事故のパターン分析とコロプレス図等の描画では R とそのパッケージ RStudio に⾮常にお世話になった．

• 統計ソフト R: version 3.2.1, by R Core Team: R: A Language and Environment for
Statistical Computing, R Foundation for Statistical Computing, Vienna, Austria,
2015, http://www.R-project.org/• ⽂書作成・組版：TEX Live 2015

参考⽂献
[1]（公財）交通事故総合分析センター：交通事故統計年報，平成 22 年版，23 年版，24 年版，25 年版，26 年版．
[2] Brunsdon C and Comber L: An introduction to R for spatial analysis & Mapping,18©2015 ITARDA

Sage Publications Inc, 2015.
[3] Ripley B D: Modelling spatial patterns with discussion, Journal of the Royal Statistical Society B, 39, 172–212, 1977.
[4] Chang W: R Graphics Cookbook, O’Reilly, 2013. （邦訳：R グラフィックスクックブック，⽯井，川内他訳，オライリー・ジャパン，2013．）[5] Kuo P-F, Zeng X and Lord D: Guidelines for choosing hot-spot analysis tools basedon data characteristics, network restrictions, and time distributions, Presented at the91st Annual Meeging of the Transportation Research Board, Nov 2011.

19©2015 ITARDA