中美公民科学素质差距很大吗?

引言

“科学素质”一次译自英文“Scientific Literacy”,由美国教育家、化学家、哈佛大学前校长柯南特(Conant)于1952年提出。在此基础上,芝加哥大学教授J.D.米勒于20世纪60年代创立了公民科学素质测评体系,即“米勒”体系,并得到了广泛的应用。

2016年4月,科技部发布《中国公民科学素质基准》,即中国公民应具备的基本科学技术知识和能力的标准,在网上引发了一定的争议。大家关于“什么是科学素质”、“如何评价公民科学素质”、“中美公民科学素质差距”等有一些的讨论。

今天,我在这里做了一个不算特别严谨的估计,来看一下中美公民科学素质的差距,并对2025年中国公民科学素质进行了估计。

问题描述

由相关资料可知,中美两国的公民科学素质如下:

显然,美国公民科学素质领先于中国,但是美国近年来的增长已经趋缓,而中国公民科学素质则进入快速增长阶段。

那么,中美之间差距有多少年呢?到2025年,中国公民科学素质会达到多少水平呢?

基本假设

要回答这两个问题,前提是我们有些基本且合理的假设:

  • 公民科学素质的提高路径具有相似性;
  • 公民科学素质的提高符合“S-曲线”。

由于公民科学素质的提高与公民的受教育水平、社会发展水平密切相关,所以不同国家的国民科学素质提高具有相似性,尤其是对于中美这种经济、人口体量相似的国家,所以第一个假设成立。

S型曲线在生态学、社会学、经济增长、城市化等领域广泛应用,从实证数据来看采用S-曲线描述公民科学素质是合理的,所以第二个假设成立。

此外,美国之前的结果都是基于“米勒体系”得到的(现在已经更新),我国的测评体系基本也是参照“米勒体系”,所以两者在测量上可以看作是一致的。

建模与分析

基于美国数据建模

根据网上的公开资料,我们找到了美国1988年的公民科学素质约为10%,那么我们首先以美国的数据作为基准,建立模型(代码为Python 3):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
from scipy.optimize import curve_fit
import matplotlib as mpl
font_name = "SimHei"
mpl.rcParams['font.family']=font_name
mpl.rcParams['axes.unicode_minus']=False
mpl.rcParams['figure.figsize']=(15,9)
mpl.style.use('ggplot')

year_us = np.asarray([1988, 1995, 1997, 1999, 2004, 2005, 2008, 2015, 2020])
sciq_us = np.asarray([10, 12, 14.7, 17.3, 24.5, 27.3, 28.2, 28.5, 29.5])
year_cn = np.asarray([2001, 2005, 2007, 2010, 2013, 2015, 2018, 2020])
sciq_cn = np.asarray([1.44, 1.6, 2.25, 3.27, 4.48, 6.2, 8.47, 10])

def func(x, a, b, c,d):
return a / (1+np.exp(-b*(x-c)))+d

我们选用的模型为最经典的Logistic函数,标准Logistic函数如下图所示:

由于我们x-y坐标的特殊性,需要进行平移和缩放,所以模型为$$f(x)=\frac{a}{1+e^{-b(x-c)}}+d$$
接下来,我们针对美国数据,估计a、b、c、d。

1
2
3
4
5
6
7
8
9
mean_year_us = np.mean(year_us)
std_year_us = np.std(year_us)
year_us_normalized = stats.zscore(year_us)

params_us, pcov = curve_fit(func, year_us_normalized,sciq_us, p0=[1,0,0,0])
print(f'a: {params_us[0]}\n'
f'b: {params_us[1]}\n'
f'c: {params_us[2]}\n'
f'd: {params_us[3]}\n')
a:  19.387495709028222
b:  3.490582791206227
c:  -0.3462142933009988
d:  9.761449947006334

1
2
3
4
5
6
7
8
9
10
11
12
xx = np.linspace(1987,2021, 100)
xx_normalized = (xx-mean_year_us)/std_year_us
yy=func(xx_normalized,params_us[0],params_us[1], params_us[2], params_us[3])

plt.figure(figsize=(20,10))
plt.plot(xx, yy, label='拟合曲线')
plt.plot(year_us, sciq_us, 'r.', label='美国公民素质实际值')
plt.xlabel('年 份', fontsize=20)
plt.ylabel('公民素质', fontsize=20)
plt.title('基于美国数据建模', fontsize=40)
plt.legend(loc='upper left', fontsize=15)
plt.show()

output_12_0.png

上图为基于美国数据的拟合结果,可以看出曲线拟合的效果较好,说明了假设和拟合模型的合理性。假设我们只使用美国数据建模,然后根据我国2020年达到1988年美国的水平(10.0),那么以美国模型外推5年,即美国模型1993年即为我国2025年水平,那么,可以估计我国2025年的公民科学素质为11.04。计算代码如:

1
2
3
year_to_est = 1993
year_to_est_normalized = (year_to_est -mean_year_us)/std_year_us
func(year_to_est_normalized, params_us[0],params_us[1], params_us[2], params_us[3])
11.037206824972879

基于中美数据联合建模

上面的做法只考虑了美国的数据,而忽视了我国的实际国情以及在科普方面的发展情况,所以更为合理的方式是同时利用中国和美国的数据进行联合建模,也就是用中国数据修正美国模型。但是,考虑到美国数据是中国数据的未来(即红色曲线是蓝色曲线向右延伸),其中最大的问题是中国2020年的“10”,与美国1988年的“10”,是两者对应的,还是两者有交错(中国2020已经超过美国1988),或者是两者有间隔(中国2020尚未达到美国2020)?

为了解决这一问题,我们假设美国1988与中国2020之间的间隔为i,当i>0时,说明两者有间隔;当i<0时,说明两者有交错。显然,我们不断改变n的取值,当模型拟合误差最小时,就是正确的间隔。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
mse=[]
# 先把美国的年份加32年,放在中国数据前面
year_us_mod = year_us + 32
intervals = np.arange(-10,10)
for i in intervals:
x = np.append(year_cn, year_us_mod+i)
y = np.append(sciq_cn, sciq_us)
x_n = stats.zscore(x)
mean_x = np.mean(x)
std_x = np.std(x)
popt, pcov = curve_fit(func, x_n, y, p0=[10,4,-0.5,10])
residuals = y - func(x_n, popt[0], popt[1], popt[2], popt[3])
mse.append(np.sum(residuals**2))

interval_min = intervals[np.argmin(mse)]
mse_min = min(mse)

plt.figure(figsize=(20,10))
plt.plot(intervals,mse, label='拟合误差MSE')
plt.plot(interval_min, mse_min, 'ro', label='最小值点')
plt.xlabel('间隔年份', fontsize=20)
plt.ylabel('MSE', fontsize=20)
plt.title('拟合误差随间隔变化', fontsize=40)
plt.legend(loc='upper right', fontsize=15)
plt.show()

output_17_0.png

由上可知,间隔为-4时拟合误差最小,也就是说美国公民科学素质发展水平领先中国32-4=28年,我们看一下这时候整个S曲线的形状:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
i = interval_min
x = np.append(year_cn, year_us_mod[1:]+i)
y = np.append(sciq_cn, sciq_us[1:])
x_n = stats.zscore(x)
mean_x = np.mean(x)
std_x = np.std(x)
params_all, pcov = curve_fit(func, x_n, y, p0=[20,4,-0.5,10])


xx = np.linspace(min(x)-1,max(x)+1, 100)
xx_normalized = (xx-mean_x)/std_x
yy=func(xx_normalized,params_all[0],params_all[1], params_all[2], params_all[3])

plt.figure(figsize=(20,10))
plt.plot(xx, yy, label='拟合曲线')
plt.plot(year_cn, sciq_cn, 'r.', label='中国公民素质实际值')
plt.plot(year_us_mod+i, sciq_us, 'g*', label='美国公民素质实际值\n(领先28年)')
plt.xlabel('年 份', fontsize=20)
plt.ylabel('公民素质', fontsize=20)
plt.title('基于中美数据联合建模', fontsize=40)
plt.legend(loc='upper left', fontsize=15)
plt.show()

output_19_0.png

此时,估计中国2025年的公民科学素质为15.75。具体代码如下:

1
2
3
year_to_est = 2025
year_to_est_normalized = (year_to_est -mean_x)/std_x
func(year_to_est_normalized, params_all[0],params_all[1], params_all[2], params_all[3])
15.752431913031105

结论

根据美国数据推断公民科学素质发展规律,结果中国实际发展情况,我们可以得到如下结论:

  • 中国与美国在公民科学素质上还有较大的差距,从过往来看,可能接近30年

  • 中国的公民科学素质正在快速提高,未来中美差距将逐步缩小

  • 中国公民科学素质加速提高可能有两方面原因:一是社会发展的客观规律,二是中国政府在此方面的支持;

  • 2025年,中国公民科学素质可达到约15.75。

最后,想说一下,中美关系的温度大家都能感受到。封面那张图是《经济学人》2019年1月某一期的封面,5月《美国国家地理》里面也有文章讨论了中国在科技领域的投入,上图:

参考文献

  1. 2018世界公众科学素质促进大会 http://www.wcsl.org.cn/index.php?m=content&c=index&a=lists&catid=190

  2. 中国公民科学素质提高 与美国相差30年? http://news.creaders.net/china/2018/09/27/1999036.html

  3. 美国米勒公民科学素养测评指标体系的形成与演变 http://kpyj.crsp.org.cn/ch/reader/create_pdf.aspx?file_no=200902006&flag=1&journal_id=kepuyj&year_id=2009

  4. 制定公民科学素质发展目标 快速提升我国公民科学素质水平 http://www.xml-data.cn/KXYSH/html/ef4d192b-e982-4776-a708-375566d605f7.

  5. 公民科学素质测评国际新进展及对我国的启示 http://www.sohu.com/a/218919148_686936

  6. 中国公民科学素质基准 http://appweblogic.most.gov.cn/wsdc/zggmkxszjz/inc/1.doc

  7. Scientific research is booming in China - National Geographic https://www.nationalgeographic.com/magazine/2019/05/data-show-why-china-science-research-is-booming/

  8. Red moon rising https://www.economist.com/leaders/2019/01/12/how-china-could-dominate-science

张da统帅 wechat
扫码订阅我的微信公众号