一. 理论假设
在研究开始之前,需要建立理论假设,即假设哪些社会经济因素可能会影响二氧化碳排放。根据相关文献研究,选取以下可能的因素:
经济水平(PG):经济增长可能与能源消耗增加有关,从而影响二氧化碳排放,选择人均GDP为衡量指标;
人口规模(PO):人口数量可能会影响能源需求和排放水平;
能源强度(EI):以单位GDP能耗增速表示,反应经济增长对能源的依赖程度,与碳排放密切相关;
产业结构(IS):用第二产业增加值占地区生产总值比重表示,第二产业为工业制造业,是碳排放最多的产业;
城市化水平(UR):用非农人口占总人口的比重来代表城市化水平,有学者认为城市相比于农村会产生更多的能源消费,但也有学者认为城市化的公共服务建设会提高能源的利用效率。
| 符号 | 变量 | 指标解释 | 单位 |
|---|---|---|---|
| PG | 经济水平 | 人均GDP | 元 |
| PO | 人口规模 | 常住人口数 | 万人 |
| IS | 产业结构 | 第二产业增加值/地区生产总值 | % |
| EI | 能源强度 | 单位GDP能耗增速 | % |
| UR | 城市化水平 | 城镇常住人口数/人口规模 | % |
二. 数据获得及处理
CO2排放数据从中国碳核算库(CEADs)获得,相关变量数据从中经网获得,获取数据范围为1997年至2019年,由于西藏及港澳台碳排放数据缺失,因此在获取相关变量数据时自动剔除,获取到数据后,发现原始数据部分缺失,例如单位GDP能耗增速和城镇常住人口数据部分省份和部分年份数据缺失,因此选择整体完整的数据进行分析。
三. 描述性统计分析
提取2015年的各项数据使用stat.desc函数进行描述性统计分析,数据集为data1。
# 加载 readxl 包
library(readxl)
# 文件路径和名称
excel_file <- "C:/Users/李尔春/Desktop/碳排放驱动因素分析作业/data/data1.xlsx"
# 读取 Excel 文件中的第一个工作表
data <- read_excel(excel_file)
# 对数据进行描述性统计
library(pastecs)
desc_stats <- format(stat.desc(data, basic = TRUE, desc = TRUE, norm = TRUE, p = 0.95),digits = 2)
#加载knitr包,输出统计结果
library(knitr)
kable(desc_stats,format = "markdown",digits = 2,align = "c",caption = "表 1 2015年数据统计结果")
| 地区 | TCCO2 | 人均GDP | Population | Industrial structure | 单位GDP能耗增速 | 城市化水平 | |
|---|---|---|---|---|---|---|---|
| nbr.val | NA | 3.0e+01 | 3.0e+01 | 3.0e+01 | 30.000 | 30.00 | 3.0e+01 |
| nbr.null | NA | 0.0e+00 | 0.0e+00 | 0.0e+00 | 0.000 | 0.00 | 0.0e+00 |
| nbr.na | NA | 0.0e+00 | 0.0e+00 | 0.0e+00 | 0.000 | 0.00 | 0.0e+00 |
| min | NA | 4.4e+01 | 2.6e+04 | 5.8e+02 | 20.218 | -10.69 | 1.6e+01 |
| max | NA | 1.5e+03 | 1.1e+05 | 1.2e+04 | 56.606 | 1.20 | 1.7e+02 |
| range | NA | 1.4e+03 | 8.8e+04 | 1.1e+04 | 36.388 | 11.89 | 1.5e+02 |
| sum | NA | 1.1e+04 | 1.5e+06 | 1.4e+05 | 1252.851 | -163.16 | 1.8e+03 |
| median | NA | 2.5e+02 | 4.0e+04 | 3.9e+03 | 41.879 | -5.64 | 5.6e+01 |
| mean | NA | 3.7e+02 | 5.0e+04 | 4.6e+03 | 41.762 | -5.44 | 6.1e+01 |
| SE.mean | NA | 5.6e+01 | 4.1e+03 | 5.2e+02 | 1.466 | 0.43 | 4.6e+00 |
| CI.mean | NA | 1.2e+02 | 8.3e+03 | 1.1e+03 | 2.998 | 0.89 | 9.3e+00 |
| var | NA | 9.5e+04 | 5.0e+08 | 8.2e+06 | 64.449 | 5.63 | 6.2e+02 |
| std.dev | NA | 3.1e+02 | 2.2e+04 | 2.9e+03 | 8.028 | 2.37 | 2.5e+01 |
| coef.var | NA | 8.3e-01 | 4.5e-01 | 6.2e-01 | 0.192 | -0.44 | 4.1e-01 |
| skewness | NA | 1.8e+00 | 1.4e+00 | 7.1e-01 | -0.270 | 0.41 | 2.6e+00 |
| skew.2SE | NA | 2.1e+00 | 1.7e+00 | 8.3e-01 | -0.316 | 0.48 | 3.1e+00 |
| kurtosis | NA | 3.5e+00 | 1.3e+00 | -3.5e-01 | -0.069 | 0.54 | 9.7e+00 |
| kurt.2SE | NA | 2.1e+00 | 7.9e-01 | -2.1e-01 | -0.041 | 0.32 | 5.8e+00 |
| normtest.W | NA | 8.1e-01 | 8.2e-01 | 9.4e-01 | 0.974 | 0.96 | 7.0e-01 |
| normtest.p | NA | 1.0e-04 | 1.3e-04 | 8.6e-02 | 0.662 | 0.37 | 1.8e-06 |
数据完整性:
nbr.na列显示,没有列出现缺失值,这意味着数据集在所有列上都是完整的。
总体统计:
TCCO2的最小值和最大值之间有很大的范围,这表明不同地区之间的总碳排放量差异很大。
人均GDP和人口数量也显示出较大的变异性,这可能反映了不同地区的经济发展水平和人口规模的显著差异
分布特征:
skewness的值表明大多数变量的分布可能是偏斜的,特别是TCCO2的偏度较高,表明数据向右偏斜,即大多数地区的碳排放量较低,而少数地区的碳排放量远高于平均水平。
kurtosis的值表明不同变量的峰度差异较大,有的分布可能较为平坦,有的则较为尖峭。
正态性检验:
normtest.p的值表明大多数变量可能不遵循正态分布,尤其是TCCO2和人均GDP的p值非常低,远低于通常的显著性水平(如0.05),这意味着我们可以拒绝这些变量来自正态分布的假设,但是产业结构和能源强度的p值较大,不拒绝正态分布的假设。
# 加载所需的库
library(readxl)
library(dplyr)
##
## 载入程辑包:'dplyr'
## The following objects are masked from 'package:pastecs':
##
## first, last
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(tidyr)
##
## 载入程辑包:'tidyr'
## The following object is masked from 'package:pastecs':
##
## extract
library(ggplot2)
# 设置Excel文件路径
file_path <- "C:/Users/李尔春/Desktop/碳排放驱动因素分析作业/data/data2.xlsx"
sheet_name <- "TCCO2"
# 读取Excel文件中的特定工作表
df <- read_excel(file_path, sheet = sheet_name)
# 将数据转换为长格式
df_long <- pivot_longer(df, cols = -province, names_to = "year", values_to = "emissions")
# 绘制趋势图
ggplot(df_long, aes(x = year, y = emissions, group = province, color = province)) +
geom_line() +
geom_point() +
theme_minimal() +
labs(title = "各省碳排放趋势图",
x = "年份",
y = "碳排放量",
color = "省份") +
theme(legend.position = "bottom")
# 设置Excel文件路径
file_path <- "C:/Users/李尔春/Desktop/碳排放驱动因素分析作业/data/data2.xlsx"
# 从Excel文件中读取数据
data <- read_excel(file_path, sheet="TCCO2")
# 将数据从宽格式转换为长格式
long_data <- pivot_longer(
data,
cols = -province, # 除province外的所有列
names_to = "Year", # 新的“Year”列,包含原来的列名
values_to = "CO2" # 新的“CO2”列,包含原来的数值
)
# 使用ggplot2包绘制趋势图
trend <- ggplot(long_data, aes(x = Year, y = CO2, group = province)) +
facet_wrap(. ~ province) +
geom_line(linewidth = 1) + # 正确的设置方式
geom_point(size = 1.5, shape = 16) +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5)) +
ylab(expression(CO[2] / Mt)) +
theme(plot.title = element_text(hjust = 0.5)) +
theme_bw()
# 打印趋势图
print(trend)
You can also embed plots, for example: