自2001年美国‘9.11’恐怖袭击以来,恐怖主义活动在世界范围内始终没有得到抑制或者扭转。恐怖主义严重威胁各国的安全与稳定。03年美国发起伊拉克战争以后,恐怖袭击事件在全球愈演愈烈,世界各国也纷纷把反恐斗争纳入到国家安全的战略层面。基于全球反恐的大背景,本文通过分析恐怖袭击的特征及变化趋势,来研究最近30年来恐怖袭击的基本特点。
全球恐怖袭击事件数据库(GTD)是一个收录了全球恐怖袭击事件的数据库,最早可追溯至1970年。GTD的发展是一个漫长的历程,目前它包括了超过 150,000 次恐怖袭击的数据,并用超过100个变量来详尽地描述袭击发生的时间和地点,袭击者和受害者是谁,袭击者使用的策略,袭击的结果是什么,等等。所有的数据都基于未分类信息–––大部分来自媒体的报道。该数据集是目前记录最全的恐怖袭击公开数据集合。
数据主要包括181691个样本,135个属性。数据来源于https://www.kaggle.com/START-UMD/gtd。
根据官方给出的说明文档,将部分字段说明罗列如下:
数据中仍包含有许多其他的字段,比如对事件的描述,事件的来源等等。此处不再一一列举。
library(tidyverse) # 数据预处理
library(lubridate) # 时间序列
library(stringr) # 文本处理
library(plotly) # 绘图
library(treemap) # 绘图
#--------------------->这个是画单变量柱状图的函数,一个画比例,一个画个数
plot_mybar1 = function(temp, col){
col = factor(col, levels=unique(col))
bar = ggplot(temp)+
geom_bar(mapping=aes(x=col, y=prop, fill=col), stat='identity', show.legend=F)+
theme(aspect.ratio=1)+
labs(x=NULL, y=NULL)
bar + coord_flip()
}
plot_mybar2 = function(temp, col){
col = factor(col, levels=unique(col))
bar = ggplot(temp)+
geom_bar(mapping=aes(x=col, y=cnt, fill=col), stat='identity', show.legend=F)+
theme(aspect.ratio=1)+
labs(x=NULL, y=NULL)
bar + coord_flip()
}
#--------------------->这下面是用于排序的函数
my_sort = function(col){
col = as.tibble(col) %>%
group_by(value) %>%
summarize(cnt=n(), prop=cnt/181691) %>%
arrange((prop))
}
此处自定义了三个函数,第一个函数用于绘制柱状图;第二个函数实现了对某一个变量进行分组计数和计算比例,并进行排序的功能。
raw_data = read_csv('d:\\tttt\\globalterrorismdb_0718dist.csv')
dim(raw_data)
## [1] 181691 135
可以看到共有181691条样本,135个属性。
# 缺失值的总数
sum(is.na(raw_data))
## [1] 13854263
可以看到缺失值的个数还是比较多的,这是因为在数据中有大量的列仅仅是用于补充信息,例如在weaptype1这一列中,记录了恐怖袭击案件使用的武器类型,而在weaptype2及后续的一些列中,是对武器类型信息的进一步补充,例如具体的武器类型等等。对于过于细化的数据,为了分析方便,后续将会去除。
使用原来的iyear,imonth,iday生成一列新的日期变量。通过生成日期时间变量可以方便实现时间序列的分组和绘图。
data = raw_data %>% mutate(Date = make_datetime(iyear, imonth, iday))
大部分的列对分析没有太多用处,因此筛选出一些有用的列,并重新命名。
data = select(
data, Date, year=iyear, month=imonth, day=iday,
country=country_txt, region=region_txt,
provstate, city, success, suicide,
attacktype=attacktype1_txt, weaptype=weaptype1_txt,
targtype=targtype1_txt, target=target1,
natlty=natlty1_txt,
nkill, nwound, gname, motive
)
筛选列后的数据信息概要如下:
knitr::kable(
head(data, 5)[, 1:11],
caption = "筛选后数据情况1"
)
| Date | year | month | day | country | region | provstate | city | success | suicide | attacktype |
|---|---|---|---|---|---|---|---|---|---|---|
| 1970-07-02 | 1970 | 7 | 2 | Dominican Republic | Central America & Caribbean | NA | Santo Domingo | 1 | 0 | Assassination |
| 1969-11-30 | 1970 | 0 | 0 | Mexico | North America | Federal | Mexico city | 1 | 0 | Hostage Taking (Kidnapping) |
| 1969-12-31 | 1970 | 1 | 0 | Philippines | Southeast Asia | Tarlac | Unknown | 1 | 0 | Assassination |
| 1969-12-31 | 1970 | 1 | 0 | Greece | Western Europe | Attica | Athens | 1 | 0 | Bombing/Explosion |
| 1969-12-31 | 1970 | 1 | 0 | Japan | East Asia | Fukouka | Fukouka | 1 | 0 | Facility/Infrastructure Attack |
knitr::kable(
head(data, 5)[, 12:16],
caption = "筛选后数据情况续1"
)
| weaptype | targtype | target | natlty | nkill |
|---|---|---|---|---|
| Unknown | Private Citizens & Property | Julio Guzman | Dominican Republic | 1 |
| Unknown | Government (Diplomatic) | Nadine Chaval, daughter | Belgium | 0 |
| Unknown | Journalists & Media | Employee | United States | 1 |
| Explosives | Government (Diplomatic) | U.S. Embassy | United States | NA |
| Incendiary | Government (Diplomatic) | U.S. Consulate | United States | NA |
这一部分主要探讨单个变量的分布特点。
以下是各个年份的恐袭数据发生数目的折线图。
# 1970-2017恐袭案件
temp = my_sort(data$year) %>% arrange(value) %>% rename(Year=value)
plot_ly(data=temp, x=~Year, y=~cnt, type='scatter', mode='lines') %>%
layout(title='Nums of terrorist attack')
# 实施案件成功的比例
sum(data$success==1)/181691
## [1] 0.8895983
从图中可以看到全球范围内有记录的恐怖袭击案件大约呈现为3个阶段。从1970到1992年,恐袭案件数量处于上升的趋势,由1970的651起案件,攀升到了1992年的5071起案件。1992年到2004年,案件数量处于下降的趋势。而从2004年起,案件的数量呈现爆发性的指数增长;在短短的10年间,全球恐怖袭击案件数量增长了10倍有余。1970到2017年间共发生有记录的恐袭案件总数为181691起,其中成功的比例达到了89%。从案件的数量变化看,全球反恐形式严峻。 接下来看看恐袭事件数目在特定的月份或者日子有没有具体的规律。
temp = my_sort(data$month) %>% filter(value!=0) %>% arrange(value)
treemap(temp,
index=c("value"),
vSize = "cnt",
palette = "Reds",
title="不同月份发生恐袭的次数",
fontsize.title = 14
)
temp = my_sort(data$day) %>% filter(value!=0) %>% arrange(value)
treemap(temp,
index=c("value"),
vSize = "cnt",
palette = "Reds",
title="不同日期发生恐袭的次数",
fontsize.title = 14
)
上图展示了每个月份和具体每一天发生恐怖袭击的次数占所有次数的比例,矩形的面积越大,代表该月/日发生的恐袭事件占样本总数的比例越大。可以看到,恐怖袭击每个月份发生的频率基本是一致的,从具体每一个月的每一天来看也是如此。这说明恐怖袭击随时都可能发生,恐怖分子并无在具体某个日子发起袭击的偏好。
本部分展示恐怖分子常见的攻击方式,攻击对象和犯罪武器。
# 攻击方式
temp = my_sort(data$attacktype) %>% filter(cnt>=7276)
plot_mybar1(temp, temp$value)+ggtitle('最常见的6种攻击方式')
# 使用武器,这里只列出前5种
temp = my_sort(data$weaptype) %>% filter(cnt>=3655)
# 把原来过长的名称重新命名
plot_mybar1(temp, temp$value)+ggtitle('使用最多的前5种武器')
# 被攻击目标,这里只列出前10
temp = my_sort(data$targtype) %>% filter(cnt>=4322)
plot_mybar1(temp, temp$value)+ggtitle('被袭击最多的10种对象')
# 被攻击目标所属国家,这里只列出10个国家
temp = my_sort(data$natlty) %>% filter(cnt>=4636)
plot_mybar1(temp, temp$value)+ggtitle('被攻击对象所属的前10国家')
此处给出的四图横轴均为分组类别占样本总数的比例(样本数为181691)。
从袭击方式和使用武器来看,恐怖袭击者使用最高频率的袭击方式是炸弹袭击,使用最多的武器也是炸弹与爆破物品。超过50%的恐怖分子使用炸弹作为犯罪武器,超过30%的恐怖分子使用枪械等火器。
从被袭击对象看,恐怖分子针对平民的事件最多,其次为军事(设施),警察,和政府机构。针对平民的恐袭较容易实现,导致恐怖分子偏好攻击平民。这也使得恐袭难以防范,因为恐怖分子可以从社会的任一角落发起袭击。
从被袭击对象所属国家来看,中东地区无疑是受到影响最大的地区。而美国则位列第9。
因为国家数目太多,这里只挑出其中恐袭案件发生数量最多的前10个国家,进行考察。
# 恐袭发生地所处国家
temp = my_sort(data$country) %>% filter(cnt>=4292) # 4292是第十名发生的恐袭次数
plot_mybar2(temp, temp$value)+ggtitle('恐袭发生所在国家TOP10')
# 恐袭的发生所在地区
temp = my_sort(data$region)
plot_mybar2(temp, temp$value)+ggtitle('恐袭发生所在地区')
此处给出的两图纵轴均为恐袭发生的数目。
可以看到恐袭发生所在地基本集中在中东,南亚地区,和南美地区。中东地区暗流涌动,亚太地区恐将成为新战场。值得注意的是,美国本土发生的恐袭案件虽然没有位列前十,但是在境外的设施和人员在受攻击的目标中位列前10,可能是美国本土的安保情况比较好,使得恐怖分子只能针对美国的境外设施或人员发起袭击。
本部分考察30年来恐袭的伤亡情况。
# 袭击中死亡的人数
summary(data$nkill)
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 0.000 0.000 0.000 2.403 2.000 1570.000 10313
# 遇难者总数
sum(data$nkill, na.rm=T)
## [1] 411868
# 在恐袭中受伤的人数
summary(data$nwound)
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 0.000 0.000 0.000 3.168 2.000 8191.000 16313
# 受伤人员总数
sum(data$nwound, na.rm=T)
## [1] 523852
在该数据库存有记录的案件中,共有411868名遇难者,造成523852名人员受伤,平均每起案件造成超过2人死亡,超过3人受伤。
本部分探究发起恐怖袭击的组织情况。
# 发起恐袭的组织
temp = my_sort(data$gname) %>% filter(cnt>=2418)
plot_mybar2(temp, temp$value)+ggtitle('恐怖袭击发起前10大组织')
从恐怖袭击发起的组织来看,有超过8万起案件没有办法确认直接负责的组织。这可能是统计上的困难造成的,但从另一方面也说明,恐怖袭击多数情况呈现了一种‘无组织’的状态,使得预防恐袭变得愈加困难。
除此以外,发起恐怖袭击的多为中东地区的组织。无论从受袭目标所属国家,恐袭发生的国家来看,中东地区都是受影响最大的国家。
这一部分主要针对两个或以上变量进行可视化分析。
这一部分描述的是各个国家和地区恐袭发生数目的随时间的变化情况。
# 受到恐怖袭击最多的前十个国家
temp = my_sort(data$country) %>% filter(cnt>=8306) # 4292是第5名发生的恐袭次数
# 从原始data中筛选出这10个国家的记录
temp = data %>% inner_join(temp, c('country'='value'))
ggplot(temp, aes(Date))+
geom_freqpoly(aes(color=country))+ggtitle('恐袭发生最多的5个国家的事件数时序图')
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
# 恐袭发生前七大地区的时序图
temp = my_sort(data$region) %>% filter(cnt>=10344) # 10344是第7名发生的恐袭次数
temp = data %>% inner_join(temp, c('region'='value'))
ggplot(temp, aes(Date))+
geom_freqpoly(aes(color=region))+ggtitle('恐袭发生最多的7个地区的事件数时序图')
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
从上述数量分布曲线可以看出,全球前5个发生恐袭最多的国家恐袭事件发生次数的趋势基本保持一致,即在2003,2004年后呈现爆发性增长。从发生地区的时序分布也可以观察到上述情况。这说明了恐怖袭击具有蔓延并发的特征。
这一部分描述的不同恐袭类型和组织随时间变化的情况。
# 不同地区的恐袭类型
temp = my_sort(data$attacktype) %>% filter(cnt>=10356)
temp = data %>% inner_join(temp, c('attacktype'='value'))
ggplot(temp, aes(x=Date))+
geom_density(aes(color=attacktype))+ggtitle('袭击类型的时序密度曲线')
# 袭击
temp = my_sort(data$gname) %>% filter(cnt>=3351)
temp = data %>% inner_join(temp, c('gname'='value'))
ggplot(temp, aes(Date))+
geom_density(aes(color=gname))+ggtitle('前5大恐袭组织的时序密度曲线')
从密度曲线可以看出,袭击类型的分布情况基本是一致的。由于04年来恐袭数量急剧上升,绝大多数袭击类型的密度峰值都集中在2010年后。
从前5大恐怖组织(包含未知)的时间密度曲线可以看出不同组织在37年间的活跃程度变化。ISIL是近年来才出现的组织(2013年4月,统一圣战组织、基地的伊拉克分支、胜利阵线宣布合并,改名为伊拉克和黎凡特伊斯兰国,并宣誓向基地组织效忠)。其从成立至今,已经发起超过5613起恐怖袭击(在本数据集中有记录的数据),是同期以来策划最多恐怖袭击的组织。而塔利班组织近年来的活跃度也有所抬升。而FMLN和SL这两个组织的基本活跃在上个世纪。
这一部分描述恐袭武器与人员伤亡的关系。
# 筛选出不同武器类型造成的伤亡情况
temp = select(data, weaptype, nkill, nwound) %>%
group_by(weaptype) %>%
summarize(death=sum(nkill, na.rm=T), casulty=sum(nwound, na.rm=T), cnt=n())
# 有些类别的数据比较少,这里先做一些合并
temp[2, 2:4] = temp[2, 2:4]+temp[1, 2:4]
temp[5, 2:4] = temp[4, 2:4]+temp[5, 2:4]
temp[8, 2:4] = temp[8, 2:4]+temp[9, 2:4]+temp[10, 2:4]
temp[[1]][12] = 'Vehicle'
temp = temp %>% filter(death>=208) %>%
arrange(-cnt) %>% mutate(prop=round(cnt/181691, 4)) %>% mutate(size=c(100, 50, 10, 3, 3, 3, 3, 3))
# 绘制散点图
plot_ly(temp, x = ~casulty, y = ~death, text = ~str_c(weaptype, '-', prop*100, '%'), type = 'scatter', mode = 'markers',
marker = list(size = ~size, opacity = 0.9)) %>%
layout(title = '武器与伤亡人数的关系',
xaxis = list(showgrid = FALSE),
yaxis = list(showgrid = FALSE))
上文已经提到,枪支和爆炸物品是恐怖分子最喜欢使用的犯罪武器。其中,爆破物导致的人员伤亡人数在有统计的人数中超过50%,达到50.87%,造成超过38万人死亡,17万人受伤;枪械等火器导致人员伤亡的人数达到32.23%,造成超过7万人死亡,17万人受伤。(括号里数据表示伤亡人数占全部伤亡人数的数据。)
这一部分描述受袭击目标与人员伤亡的情况。
# 筛选出不同受袭击类型的伤亡情况
temp = select(data, targtype, nkill, nwound) %>% group_by(targtype) %>% summarize(death=sum(nkill, na.rm=T), casulty=sum(nwound, na.rm=T), cnt=n()) %>% mutate(prop=round(cnt/181691, 4)) %>% arrange(-cnt)
# 从第五位受袭目标以后的占总体的比例相当小,因此对数据进行合并为other
for (i in 7:22){
temp[6, 2:5] = temp[6, 2:5] + temp[i, 2:5]
}
temp = temp %>% filter(prop>=0.05) %>% mutate(size=c(prop*150))
temp[6, 1] = 'Other'
# 绘制散点图
plot_ly(temp, x = ~casulty, y = ~death, text = ~str_c(targtype, '-', prop*100, '%'), type = 'scatter', mode = 'markers',
marker = list(size = ~size, opacity = 0.9)) %>%
layout(title = '袭击目标与伤亡人数的关系',
xaxis = list(showgrid = FALSE),
yaxis = list(showgrid = FALSE))
上图可以看出针对平民的袭击造成的伤亡人数最多,这里一部分原因是由于针对平民的袭击数量最多,另一部分原因则是在恐袭发生时,平民缺乏相应的抵抗能力。
这一部分并不按照严格的变量关系对该数据进行分析,会从该数据的某些方面进行剖析。
东亚地区是全球发生恐袭最少地地区之一。我国枪械管控严格,治安状况良好,每10万人谋杀率仅为0.8。放眼全球,中国地治安状况也是第一阵营。本部分会探讨该数据集中中国恐袭案件的案例,看看国内的恐袭特点如何。
1.中国地区的案件数量
temp = filter(data, country=='China')
# 案件总数
length(temp$Date)
## [1] 252
# 中国发生案件总数在全球的排名情况
my_sort(data$country) %>%
mutate(rank = row_number(desc(.$cnt))) %>%
filter(value=='China')
## # A tibble: 1 x 4
## value cnt prop rank
## <chr> <int> <dbl> <int>
## 1 China 252 0.00139 61
在数据集中录得的案件总数为252起,在全球有所有有记录的国家排名为61位。
2.案发时间分析
temp = filter(data, country=='China') %>%
group_by(year) %>%
summarize(cnt=n()) %>%
arrange(year)
plot_ly(data=temp, x=~year, y=~cnt, type='scatter', mode='lines') %>%
layout(title='1989-2017中国恐袭案件情况')
从有记录的1989年来,可以看到中国发生最多恐袭案件的年份为1996,其次为2014年。
3.案发地点分析
filter(data, country=='China') %>%
group_by(provstate) %>%
summarize(cnt=n()) %>%
arrange(-cnt)
## # A tibble: 39 x 2
## provstate cnt
## <chr> <int>
## 1 Xinjiang 91
## 2 Xinjiang Uyghur 39
## 3 Beijing 19
## 4 Guangdong 13
## 5 <NA> 8
## 6 Guangdong (Province) 7
## 7 Sichuan 7
## 8 Yunnan 7
## 9 Shaanxi 6
## 10 Tibet 6
## # ... with 29 more rows
从上表可以看出发生在新疆的恐袭案件最多,共有130起,占总数252起超过一半。
4.攻击目标与武器分析
# 攻击目标
head(filter(data, country=='China') %>% group_by(targtype) %>% summarize(cnt=n()) %>% arrange(-cnt), 5)
## # A tibble: 5 x 2
## targtype cnt
## <chr> <int>
## 1 Transportation 82
## 2 Private Citizens & Property 47
## 3 Police 40
## 4 Business 31
## 5 Government (General) 19
# 攻击目标为交通设施时具体的工具目标
head(filter(data, country=='China', targtype=='Transportation') %>% group_by(target) %>% summarize(cnt=n()) %>% arrange(-cnt), 5)
## # A tibble: 5 x 2
## target cnt
## <chr> <int>
## 1 Railway Line between Urumoi and Kurla 47
## 2 Bus 12
## 3 Train Station 4
## 4 Civilians aboard a Chinese passenger bus 2
## 5 A passenger bus was targeted in the attack. 1
# 武器类型
head(filter(data, country=='China') %>% group_by(weaptype) %>% summarize(cnt=n()) %>% arrange(-cnt), 5)
## # A tibble: 5 x 2
## weaptype cnt
## <chr> <int>
## 1 Explosives 167
## 2 Melee 37
## 3 Incendiary 21
## 4 Unknown 18
## 5 Chemical 3
在中国,恐怖分子袭击的目标主要为交通设施,这与全球恐袭的特点有明显的不同。袭击的交通设施主要为铁路设施(如火车站),其次为巴士。从武器看爆炸物品仍是最常用的犯罪凶器,刀具等则为其次。由于在中国枪支管制严格,犯罪分子很难弄到枪支,因此刀具成为他们的第二选择。
这一部分主要对两个发起恐袭最多的组织进行分析。
1.ISIL与塔利班的自杀式袭击的比例
# 筛选出两者的记录,并统计自杀式袭击的次数
temp1 = my_sort(filter(data, str_detect(gname, '^Tali'))$suicide)
temp2 = my_sort(filter(data, str_detect(gname, 'ISIL\\)$'))$suicide)
colors <- c('rgb(211,94,96)', 'rgb(128,133,133)')
plot_ly(temp1, labels = ~value, values = ~cnt, type = 'pie') %>%
layout(title = '塔利班自杀式袭击与非自杀式袭击的关系',
xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE))
plot_ly(temp2, labels = ~value, values = ~cnt, type = 'pie') %>%
layout(title = 'ISIL自杀式袭击与非自杀式袭击的关系',
xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE))
在该数据集种塔利班组织共发起7516起袭击。ISIL共发起5613次袭击,这两个组织是近年来最为臭名昭著的恐怖组织。接下来我们看看这两个组织自杀式袭击的比例。饼状图中,0表示非自杀式袭击,1表示自杀式袭击。可以很明显看出,与塔利班相比ISIL的自杀式袭击的比例更高,达到了23%,说明该组织是更为狂热危险的组织。
2.袭击目标情况
temp1 = head(my_sort(filter(data, str_detect(gname, '^Tali'))$targtype) %>% arrange(-cnt), 5) %>% mutate(gname='Tali')
temp2 = head(my_sort(filter(data, str_detect(gname, 'ISIL\\)$'))$targtype) %>% arrange(-cnt), 5) %>% mutate(gname='ISIL')
temp = rbind(temp1, temp2)
ggplot(temp)+
geom_bar(aes(x=gname, y=cnt, fill=value), stat='identity', position='fill')
从袭击对象的前五位来看,塔利班和ISIL的犯罪对象也有所不同。ISIL袭击最多的对象是平民,而塔利班更加倾向于袭击警察。从袭击对象的对比也可以看出ISIL是一个不择手段的组织机构。
从上文的对该数据集的概览可以总结出全球恐怖袭击有如下特点。
从年份上看,全球恐怖袭击的数量在04年以后迅速抬升,在14年达到顶峰。近两年来,暴恐事件数量有所下降,但全球的反恐局势依然严峻。从月份和天的分布看,恐怖袭击在全年处于一个均匀分布,说明恐怖分子对于袭击的日期没有特定的偏好,对于进行恐袭监控和预测来说,这并不是一个好消息。
中东不仅是战乱之地,更是极端思想的温床、恐怖分子的大本营,全球绝大多数恐袭发生在中东地区。而以印度为代表的部分南亚国家,也是恐怖分子活跃的区域。中南美洲则是恐袭发生的第三个密集区域。
恐怖分子使用的多为炸弹和枪械武器,首要攻击目标是平民。近期发生的恐怖袭击事件呈现出一些新特点,首先是袭击者不以劫持人质为首要目标,不给人谈判时间,直接对无辜民众下手;其次,从袭击地点上看,恐袭并不仅仅限于特定国家。
GTD虽然是目前最大的公开的恐袭事件库,但也并未将所有的恐袭事件纳入其中。即使是收录的数据,也有相当部分的数据含义不明,例如,上文提到的关于恐袭事件发起组织的分析,有超过8万条记录没有标记直接负责的组织信息。此外,恐怖袭击性质的认定也存在部分问题,该数据库收录的恐怖袭击事件是站在美国角度进行认定的,可能会参杂部分政治因素。以上种种原因都可能导致样本的代表性不足。
本文对于该数据集合的描述并没有遵循一条主线,导致文章无法得到一个合理有力的结论。
该文基本只使用了描述性统计的工具,缺乏对数据的深度挖掘和数据建模。由于该数据多数变量为分类型变量,绘制的图形类型也比较单一。
[1] 我国恐怖袭击的特点及其应对策略研究,2015,乔顺利 [J]
[2] 恐怖袭击呈现新特点 从“自发”向“自觉”转变,2015,纪双城 [J]
[3] 中国境内恐怖袭击特点与防范,2015,张焰 [J]
[4] Terrorism Around The World,2017,Ashwini Swain,https://www.kaggle.com/ash316/terrorism-around-the-world
[5] Global Terrorist Attacks,2018,Gabriel Preda,https://www.kaggle.com/gpreda/global-terrorist-attacks