看一看我国自杀率变化趋势

分类: www365betcom手机版 时间: 2025-08-19 00:39:40 作者: admin 阅读: 7044 点赞: 705
看一看我国自杀率变化趋势

近两年总是看到一些年轻人自杀的新闻,去年就见过一些底层年轻人相约去景区自杀的深度报道,今年开年就又见到多起学生、年轻教师、医院规培生自杀的新闻,这些累积促使我决定找来官方公布的自杀率数据看看。本文使用的数据来源有二,其一是2011-2022年中国卫生健康统计年鉴,其中可以找到2010-2021年的自杀率数据;其二是世界卫生组织提供下载的2000-2019年世界各国自杀率数据。

library(ggplot2)

library(data.table)

library(readxl)

library(sparkline)

library(DT)

data <- read_xlsx('data/中国卫生统计年鉴-自杀率数据.xlsx', sheet = 1)

setDT(data)

data.who <-

read_xlsx('data/中国卫生统计年鉴-自杀率数据.xlsx', sheet = 2)

setDT(data.who)

setnames(data.who, tolower)

spark_html <- function(...) {

as.character(htmltools::as.tags(sparkline(..., height = 50, width = 100)))}

一 🔗本节使用的数据来源是:中国卫生健康统计年鉴。关于此有两点细节需要说明。

按城乡分,城市包括直辖市区和地级市辖区,农村包括县及县级市。这和中国人口普查年鉴里面分成城市、镇、乡村的划分方式不一样。

性别年龄别死亡率,指分性别年龄别计算的死亡率。计算公式:男(女)性某年龄别死亡率=男(女)性某年龄别死亡人数/男(女)性同年龄平均人口数。下文中死亡率的单位是1/10万人,仅提供了按城市合计、城市男性、城市女性、农村合计、农村男性、农村女性计算的自杀率数据,由于没有同一口径下城市、农村人口比例或男女人口比例,所以无法算出各年龄段的总和自杀率或男性女性自杀率。

按城乡和性别来看,从2010年到2021年我国自杀率整体呈现下降趋势。若比较自杀率高低,应是农村-男 > 农村-女 > 城市-男 > 城市-女,即农村自杀率高于城市,而分别在农村和城市则均为男性自杀率高于女性。

点击查看绘图的 R 代码

ggplot(data = data[ICD10 == '自杀' &

type %in% c('农村-男', '农村-女', '城市-男', '城市-女'), ],

mapping = aes(x = year,

y = total,

colour = type)) +

geom_line(size = 1) + geom_point(size = 1.5) + theme_classic() +

labs(

x = '年份',

y = '自杀率(每10万人)',

colour = '城乡&性别',

title = '2010至2021年全国自杀率变化趋势',

subtitle = '数据来源:中国卫生健康统计年鉴'

) +

scale_x_continuous(breaks = seq(2010, 2021, 1)) +

ylim(c(0, 11)) +

scale_colour_manual(

values = c(

"农村-男" = "#28231DFF",

"农村-女" = "#008E90FF",

"城市-男" = "#58A449FF",

"城市-女" = "#CEC917FF"

)

)

如果只是知道自杀率为多少,似乎没有一个具体概念。由于此前曾经看过2020年人口普查数据,可以结合自杀率数据来粗略计算自杀人数。取2020年的自杀率数据,绘制下图,按年龄段来看,不论城乡或性别,自杀率随着年龄增加而升高。极其明显的是,老年人自杀率极高。

已知在2020年人口普查数据中,85岁及以上男性人数为610万,其中城市、农村男性自杀率分别为24.86、70.45,那么对应自杀人数的范围为1516至4297人。同理,2020年85岁及以上女性人数为931万,其中城市、农村女性自杀率分别为17.99、41.68,那么对应自杀人数的范围为1673至3876人。

点击查看绘图的 R 代码

data2.melt <- melt(

data[ICD10 == '自杀' &

year == 2020 & type %in% c('城市-男', '城市-女', '农村-男', '农村-女'),],

id.vars = c('type', 'year'),

measure.vars = c(

'不满1岁',

'1-4',

'5-9',

'10-14',

'15-19',

'20-24',

'25-29',

'30-34',

'35-39',

'40-44',

'45-49',

'50-54',

'55-59',

'60-64',

'65-69',

'70-74',

'75-79',

'80-84',

'85岁及以上'

),

variable.name = 'age_group',

value.name = 'value'

)

ggplot(data = data2.melt) +

geom_bar(mapping = aes(x = age_group, y = value, fill = type),

stat = 'identity') +

theme_classic() +

labs(

x = '年龄段',

y = '自杀率(1/10万)',

fill = '城乡&性别',

title = '2020年全国自杀率按年龄段变化趋势',

subtitle = '数据来源:中国卫生健康统计年鉴'

) +

facet_wrap(vars(type), ncol = 2) +

scale_x_discrete(breaks = c('不满1岁', '15-19', '45-49', '85岁及以上')) +

scale_fill_manual(

values = c(

"农村-男" = "#28231DFF",

"农村-女" = "#008E90FF",

"城市-男" = "#58A449FF",

"城市-女" = "#CEC917FF"

)

) +

theme(panel.spacing.x = unit(2, "lines")) # 让分面后左右两边的图之间间距调大

由于老年人自杀率往往比低年龄段自杀率高出几倍甚至数十倍,因此单独拿出10-34岁低年龄段的数据来看,会更清楚看到在低年龄段存在一些小小的波峰。如下表所示,在2020年,对城市女性和农村女性来说,在15-19岁存在一个自杀率波峰;对农村男性来说,在25-29岁存在一个自杀率波峰;而对城市男性来说,在21-24岁存在一个自杀率波峰。

只知存在这样一些个小小波峰,似乎也没什么具体概念。已知2020年人口普查数据中15-19岁女性人数为3363万,该年龄段城市、农村女性自杀率分别为3.19、2.84,那么对应自杀人数的范围应为955至1072人。同样已知2020年人口普查数据中25-29岁男性人数为4816万,该年龄段城市、农村男性自杀率分别为3.09、5.77,那么对应自杀人数的范围应为1488至2778人。

点击查看绘图的 R 代码

data3 <- dcast(data2.melt,

year + age_group ~ type,

value.var = 'value')[age_group %in% c('10-14', '15-19', '20-24', '25-29', '30-34'), c('year', 'age_group', '农村-女', '城市-女', '农村-男', '城市-男')]

datatable(

data3,

rownames = FALSE,

colnames = c('年份', '年龄段', '农村-女', '城市-女', '农村-男', '城市-男'),

options = list(dom='t')

) |>

formatStyle(

columns = '农村-女',

background = styleColorBar(c(0, 6, data3$`农村-女`), color = "#008E90FF"),

backgroundSize = '90% 90%',

backgroundRepeat = 'no-repeat',

backgroundPosition = 'center',

color = 'white'

) |>

formatStyle(

columns = '城市-女',

background = styleColorBar(c(0, 6, data3$`城市-女`), color = "#CEC917FF"),

backgroundSize = '90% 90%',

backgroundRepeat = 'no-repeat',

backgroundPosition = 'center',

color = 'white'

) |>

formatStyle(

columns = '农村-男',

background = styleColorBar(c(0, 6, data3$`农村-男`), color = "#28231DFF"),

backgroundSize = '90% 90%',

backgroundRepeat = 'no-repeat',

backgroundPosition = 'center',

color = 'white'

) |>

formatStyle(

columns = '城市-男',

background = styleColorBar(c(0, 6, data3$`城市-男`), color = "#58A449FF"),

backgroundSize = '90% 90%',

backgroundRepeat = 'no-repeat',

backgroundPosition = 'center',

color = 'white'

)

在整体自杀率逐年下降和自杀率随年龄增长而升高的前提下,若单独按城乡和性别看每个年龄段的自杀率变化趋势,如下表可以看到在15-19岁青少年人群中,农村和城市女性自杀率在2011-2013年曾连续三年上升,之后出现下降趋势,但近几年又重新出现上升趋势,并且上升趋势更加陡峭;城市男性自杀率在2012-2014年也曾连续三年上升,之后出现下降趋势,但同样在2018-2019年重现极为陡峭的上升趋势。对此,我的猜测是15-19岁青少年是社会重点关注对象,倘若自杀率连续3年上升,社会上会更加重视这个问题并进行自杀干预,随后自杀率会重新下降,而自杀干预的效果算是治标不治本,几年后自杀率的上升趋势会变得更陡峭。

点击查看绘图的 R 代码

dt1.melt <- melt(

data[ICD10 == '自杀' &

type %in% c('城市-男', '城市-女', '农村-男', '农村-女', '城市-合计', '农村-合计'), ],

id.vars = c('type', 'year'),

measure.vars = c(

# '不满1岁',

# '1-4',

# '5-9',

'10-14',

'15-19',

'20-24',

'25-29',

'30-34',

'35-39',

'40-44',

'45-49',

'50-54',

'55-59',

'60-64',

'65-69',

'70-74',

'75-79',

'80-84',

'85岁及以上'

),

variable.name = 'age_group',

value.name = '自杀率'

)

dt1.dcast <-

dcast(dt1.melt,

year + age_group ~ type,

value.var = '自杀率')

dt1 <- dt1.dcast[, .(

'农村-女' = spark_html(

`农村-女`,

type = "line",

lineColor = "#008E90FF",

# 折线的颜色

fillColor = FALSE # 不展示折线下的面积

),

'城市-女' = spark_html(

`城市-女`,

type = "line",

lineColor = "#CEC917FF",

# 折线的颜色

fillColor = FALSE # 不展示折线下的面积

),

'农村-男' = spark_html(

`农村-男`,

type = "line",

lineColor = "#28231DFF",

# 折线的颜色

fillColor = FALSE # 不展示折线下的面积

),

'城市-男' = spark_html(

`城市-男`,

type = "line",

lineColor = "#58A449FF",

# 折线的颜色

fillColor = FALSE # 不展示折线下的面积

)

), keyby = .(age_group)]

datatable(

dt1,

colnames = c('年龄段', '农村-女', '城市-女', '农村-男', '城市-男'),

rownames = FALSE,

escape = FALSE,

options = list(

pageLength = 5,

# 每次分页重新渲染,不加这个的话只有第一页有图

drawCallback = JS('function(s) { HTMLWidgets.staticRender(); }'),

language = list(

lengthMenu = '展示 _MENU_ 每页记录数',

search = '检索:',

zeroRecords = '什么都没有找到',

infoEmpty = '找不到记录',

infoFiltered = '(从 _MAX_ 条数据中筛选)',

info = '共 _TOTAL_ 条记录,从 _START_ 到 _END_',

paginate = list(previous = '上一页', `next` = '下一页')

)

)

) |> spk_add_deps()

而如果连续4年及以上自杀率维持上升趋势,可能说明自杀干预的治标效果也在减弱。下面按自杀率在更近年份连续4年上升作为重现连续上升趋势,若截止2021年自杀率没有下降,则在下表中记录重现上升趋势的年份,若截止2021年自杀率有下降,则一并标记趋势重新下降的年份。由于没能拿到2022-2023年的数据,仅从下表记录的这些年份来看,不论城乡或性别,青少年自杀问题已经不可遏制地变得越来越严重了。

年龄段

农村-女

城市-女

农村-男

城市-男

10-14岁

2016(2021)

2017

2019

-

15-19岁

2018

2017

2017

-

20-24

-

2018

2018

2017(2021)

二 🔗本节使用的数据来源是:世界卫生组织。

在上节简单看完国内官方的自杀率数据后,再看看中国的自杀率在世界范围是何水平。如下所示,按照世界卫生组织的数据来看,自2000年至2019年世界自杀率水平不断下降,中国和日本近些年自杀率也在不断下降,中国的自杀率已经下降到世界水平以下,而美国的自杀率却在不算上升。

点击查看绘图的 R 代码

data.who <- data.who[geo_name_short %in% c('World',

'Japan',

'China',

#'Republic of Korea',

'United States of America'), c('geo_name_short',

'dim_time',

'dim_sex',

'dim_age',

'value_numeric')]

data.who[dim_sex == 'Female', dim_sex := '女性']

data.who[dim_sex == 'Male', dim_sex := '男性']

data.who[dim_sex == 'Total', dim_sex := '合计']

data.who[geo_name_short == 'China', geo_name_short := '中国']

data.who[geo_name_short == 'Japan', geo_name_short := '日本']

#data.who[geo_name_short == 'Republic of Korea', geo_name_short := '韩国']

data.who[geo_name_short == 'United States of America', geo_name_short := '美国']

data.who[geo_name_short == 'World', geo_name_short := '世界']

data.who[dim_age == '15 to 19 years', dim_age := '15-19']

data.who[dim_age == '15 to 24 years', dim_age := '15-24']

data.who[dim_age == '15 to 29 years', dim_age := '15-29']

data.who[dim_age == '25 to 34 years', dim_age := '25-34']

data.who[dim_age == '30 to 49 years', dim_age := '30-49']

data.who[dim_age == '35 to 44 years', dim_age := '35-44']

data.who[dim_age == '45 to 54 years', dim_age := '45-54']

data.who[dim_age == '55 to 64 years', dim_age := '55-64']

data.who[dim_age == '65 to 74 years', dim_age := '65-74']

data.who[dim_age == '75 to 84 years', dim_age := '75-84']

data.who[dim_age == '85 plus years', dim_age := '85岁及以上']

data.who[dim_age == 'Total years', dim_age := '全年龄段']

ggplot(

data = data.who[dim_age == '全年龄段' &

dim_sex == '合计', ] ,

mapping = aes(x = dim_time, y = value_numeric, colour = geo_name_short)

) + geom_line() +

geom_point() +

theme_classic() +

labs(

x = '年份',

y = '自杀率(1/10万)',

colour = '国家',

title = '2000至2019年自杀率变化趋势',

subtitle = '数据来源:世界卫生组织'

)+ ylim(c(0, 30))

再看2019年按性别和年龄段的自杀率数据,如下所示,三个国家均是男性自杀率高于女性,但整体上看中国的男性与女性之间的自杀率差距更小。

点击查看绘图的 R 代码

# 15-24 25-34 35-44 45-54 55-64 65-74 75-84 85+

# 15-19

# 15-29 30-49

data.who.age <-

data.who[!dim_age %in% c('15-19', '15-29', '30-49','全年龄段')&dim_sex%in%c('男性','女性'), ]

data.who.age$dim_age <-

factor(

data.who.age$dim_age,

levels = c(

'15-24',

'25-34',

'35-44',

'45-54',

'55-64',

'65-74',

'75-84',

'85岁及以上'

)

)

ggplot(

data = data.who.age,

mapping = aes(

x = dim_age,

y = value_numeric,

group = dim_sex,

color = dim_sex

)

) +

geom_line() +

geom_point() +

theme_classic() +

labs(

x = '年龄段',

y = '自杀率(1/10万)',

color = '性别',

title = '2019年各国按年龄段的自杀率变化趋势',

subtitle = '数据来源:世界卫生组织'

) +

theme(axis.text.x = element_text(angle = 45, hjust = 1)) +

facet_wrap(vars(geo_name_short), ncol = 3)

值得一提的是,按照中国卫生健康统计年鉴数据,在2019年85岁及以上人群中,城市男性自杀率是33.4,农村男性自杀率是73.5,那么男性自杀率最高不超过73.5,而城市女性自杀率是18.31,农村女性自杀率是45.08,那么女性自杀率最高不超过45.08。根据世界卫生组织的数据,在2019年85岁及以上人群中,中国男性自杀率是110.56,中国女性自杀率是50.18。这说明两个口径的数据是存在差异的。

三 🔗在看这些自杀率数据的过程中,我也上网找了许多不同类型的材料来看,下面三个值得记录下来以后再看。

中国自杀率陡降的30年:农村女性自杀率下降最快,2019年。

中国青少年的自杀现状,费立鹏(Michael PHILLIPS),2005年9月。

年轻中国农村女性的自杀未遂 ,Veronica PEARSON,费立鹏(Michael PHILLIPS),何凤生,及惠郁,2005年9月。

另有一个发现是,韩国的自杀率有点高得离谱,按世卫组织的数据看,韩国全年龄段的自杀率为28.5,单看85岁及以上人群,男性自杀率为289.3、女性自杀率为48。韩国低年龄段人群的自杀率也是中国的好几倍。

相关推荐