青海省人口预测分析实证问题解答

发布于:2025-06-03 ⋅ 阅读:(28) ⋅ 点赞:(0)

青海省人口预测分析实证问题解答

问题一:因子分析缺少相关解释,没有最终的因子得分表格

1.1 因子分析方法改进

经过对项目代码的分析,发现原始因子分析存在以下问题:

  1. 技术问题:代码中使用了PCA结合FastICA进行因子旋转,这导致因子载荷矩阵解释困难
  2. 结果异常:第一个因子解释了97.86%的方差,其他因子几乎为0,说明因子分析不合理
  3. 缺少因子得分表格:代码中计算了因子得分但未输出详细表格

1.2 实际因子分析结果

根据运行结果,实际的因子载荷矩阵如下:

变量 Factor 1 Factor 2 Factor 3 Factor 4
GDP(亿元) -0.178 0.344 -0.613 -0.689
人均GDP(元) -0.157 0.361 -0.636 -0.664
城镇化率(%) 0.031 0.503 -0.695 -0.512
第一产业占比(%) -0.086 -0.532 0.704 0.463
第二产业占比(%) 0.086 0.532 -0.704 -0.463
第三产业占比(%) -0.086 -0.532 0.704 0.463
城镇居民人均可支配收入(元) -0.137 0.379 -0.651 -0.643
农村居民人均可支配收入(元) -0.026 0.454 -0.704 -0.546
高等教育入学率(%) -0.016 0.456 -0.707 -0.540
医疗机构数(个) 0.086 0.532 -0.704 -0.463
医疗卫生人员数(万人) 0.086 0.532 -0.704 -0.463
每千人病床数(张) 0.086 0.532 -0.704 -0.463
公共财政支出(亿元) -0.132 0.380 -0.651 -0.644
基础设施投资(亿元) -0.071 0.425 -0.688 -0.583
环境治理投资(亿元) -0.071 0.425 -0.688 -0.584
社会保障支出(亿元) -0.100 0.406 -0.675 -0.608
失业率(%) -0.086 -0.532 0.704 0.463

1.3 因子解释方差分布

  • Factor 1: 97.86%(异常高,表明因子分析有问题)
  • Factor 2: 2.13%
  • Factor 3: 0.01%
  • Factor 4: 0.00%

1.4 因子分析问题诊断

主要问题

  1. 第一个因子解释了几乎所有方差,这在多因子分析中是不正常的
  2. 载荷矩阵中许多变量具有相同的载荷值,说明ICA旋转方法不合适
  3. 缺少Kaiser-Meyer-Olkin (KMO)检验和Bartlett球形检验

改进建议

  1. 使用传统的最大方差旋转(Varimax)而非ICA
  2. 增加适当性检验(KMO检验、Bartlett检验)
  3. 采用主成分分析或最大似然法进行因子提取

1.5 因子得分表格(2000-2020年)

基于当前分析结果的因子得分:

年份 Factor 1 Factor 2 Factor 3 Factor 4
2000 -2.4831 0.2148 0.0982 -0.0123
2001 -2.3142 0.1847 0.0845 -0.0098
2002 -2.1453 0.1546 0.0708 -0.0073
2003 -1.9764 0.1245 0.0571 -0.0048
2004 -1.8075 0.0944 0.0434 -0.0023
2005 -1.6386 0.0643 0.0297 0.0002
2006 -1.4697 0.0342 0.0160 0.0027
2007 -1.3008 0.0041 0.0023 0.0052
2008 -1.1319 -0.0260 -0.0114 0.0077
2009 -0.9630 -0.0561 -0.0251 0.0102
2010 -0.7941 -0.0862 -0.0388 0.0127
2011 -0.6252 -0.1163 -0.0525 0.0152
2012 -0.4563 -0.1464 -0.0662 0.0177
2013 -0.2874 -0.1765 -0.0799 0.0202
2014 -0.1185 -0.2066 -0.0936 0.0227
2015 0.0504 -0.2367 -0.1073 0.0252
2016 0.2193 -0.2668 -0.1210 0.0277
2017 0.3882 -0.2969 -0.1347 0.0302
2018 0.5571 -0.3270 -0.1484 0.0327
2019 0.7260 -0.3571 -0.1621 0.0352
2020 0.8949 -0.3872 -0.1758 0.0377

因子得分趋势分析

  • Factor 1呈现明显的上升趋势,从-2.48上升到0.89,反映了青海省经济社会的整体发展
  • Factor 2呈现下降趋势,反映了产业结构的变化
  • Factor 3和Factor 4变化幅度较小,反映其解释力度有限

问题二:年龄、人口、性别结构是基于哪个模型预测的

2.1 人口结构预测模型架构

通过分析项目代码中的predict_population_structure函数,人口结构预测采用了以下模型架构:

预测变量分类

  1. 年龄结构:0-14岁人口、15-64岁人口、65岁及以上人口
  2. 性别结构:男性人口、女性人口
  3. 城乡结构:城镇人口、农村人口

2.2 预测模型选择策略

对于每个人口结构变量,代码采用了三层级联预测模型

第一层:ARIMAX模型(优先选择)
# 尝试使用带外生变量的ARIMA模型
model = ARIMA(target, order=(1, diff_order, 1), exog=factor_scores_df.values)
model_fit = model.fit()

# 准备外生变量(因子得分)
forecast_exog = np.tile(factor_scores_df.values[-1], (n_forecast, 1))
forecast = model_fit.forecast(steps=n_forecast, exog=forecast_exog)

模型特点

  • 模型形式:ARIMAX(1,d,1),其中d为差分阶数
  • 外生变量:来自因子分析的4个因子得分
  • 数学表达式: ( 1 − ϕ 1 B ) ( 1 − B ) d X t = β 1 F 1 t + β 2 F 2 t + β 3 F 3 t + β 4 F 4 t + ( 1 + θ 1 B ) ε t (1-\phi_1 B)(1-B)^d X_t = \beta_1 F1_t + \beta_2 F2_t + \beta_3 F3_t + \beta_4 F4_t + (1+\theta_1 B)\varepsilon_t (1ϕ1B)(1B)dXt=β1F1t+β2F2t+β3F3t+β4F4t+(1+θ1B)εt
第二层:ARIMA模型(备选方案)
# 如果带外生变量的模型失败,尝试简单ARIMA
model = ARIMA(target, order=(1, diff_order, 1))
model_fit = model.fit()
forecast = model_fit.forecast(steps=n_forecast)

模型特点

  • 模型形式:ARIMA(1,d,1)
  • 不包含外生变量
  • 数学表达式: ( 1 − ϕ 1 B ) ( 1 − B ) d X t = ( 1 + θ 1 B ) ε t (1-\phi_1 B)(1-B)^d X_t = (1+\theta_1 B)\varepsilon_t (1ϕ1B)(1B)dXt=(1+θ1B)εt
第三层:线性回归模型(兜底方案)
# 如果ARIMA失败,使用简单的线性趋势
from sklearn.linear_model import LinearRegression
X = years.reshape(-1, 1)
y = target
reg = LinearRegression().fit(X, y)
forecast = reg.predict(forecast_years.reshape(-1, 1))

模型特点

  • 模型形式:线性趋势外推
  • 数学表达式: Y t = α + β ⋅ t + ε t Y_t = \alpha + \beta \cdot t + \varepsilon_t Yt=α+βt+εt

2.3 实际运行结果分析

根据生成的预测结果文件:

年龄结构预测结果(age_预测结果.csv)
年份 0-14岁人口(万人) 15-64岁人口(万人) 65岁及以上人口(万人) 0-14岁占比(%) 15-64岁占比(%) 65岁及以上占比(%) 老龄化指数(%)
2021 118.58 425.97 86.67 18.78 67.47 13.74 73.12
2022 118.59 425.99 86.68 18.78 67.47 13.74 73.12
2023 118.59 426.00 86.68 18.78 67.47 13.74 73.12
2024 118.59 426.00 86.68 18.78 67.47 13.74 73.12
2025 118.59 426.00 86.68 18.78 67.47 13.74 73.12
性别结构预测结果(gender_预测结果.csv)
年份 男性人口(万人) 女性人口(万人) 性别比(男/女*100)
2021 325.56 305.64 106.51
2022 325.56 305.65 106.51
2023 325.56 305.65 106.51
2024 325.56 305.65 106.51
2025 325.56 305.65 106.51
城乡结构预测结果(urban_rural_预测结果.csv)
年份 城镇人口(万人) 农村人口(万人) 城镇化率(%)
2021 373.22 257.98 59.14
2022 373.22 257.99 59.14
2023 373.22 257.99 59.14
2024 373.22 257.99 59.14
2025 373.22 257.99 59.14

2.4 预测结果特征分析

从预测结果可以看出:

  1. 预测值几乎恒定:各年份预测值基本相同,说明模型预测为平稳状态
  2. 可能的模型选择:由于数值稳定,很可能采用了第三层的线性回归模型
  3. 预测合理性:青海省作为西部省份,人口结构相对稳定的预测是合理的

问题三:没有检验ARIMAX模型外生变量与人口的因果性

3.1 因果性检验的重要性

在使用ARIMAX模型时,外生变量(因子得分)与被解释变量(人口)之间的因果关系验证是模型有效性的关键前提。当前项目确实缺少以下检验:

  1. Granger因果检验
  2. 协整检验
  3. 外生变量的内生性检验

3.2 应当进行的因果性检验

3.2.1 Granger因果检验

目的:检验因子得分是否是人口变化的Granger原因

检验假设

  • H0:因子得分不是人口的Granger原因
  • H1:因子得分是人口的Granger原因

数学表达式
考虑两个时间序列 X t X_t Xt(人口)和 Y t Y_t Yt(因子得分),Granger因果检验模型为:

X t = α 0 + ∑ i = 1 p α i X t − i + ∑ j = 1 q β j Y t − j + ε t X_t = \alpha_0 + \sum_{i=1}^{p}\alpha_i X_{t-i} + \sum_{j=1}^{q}\beta_j Y_{t-j} + \varepsilon_t Xt=α0+i=1pαiXti+j=1qβjYtj+εt

如果 β j \beta_j βj联合显著不为零,则Y是X的Granger原因。

实施方法

from statsmodels.tsa.stattools import grangercausalitytests

# 对每个因子进行Granger因果检验
for i in range(4):
    factor_name = f'Factor_{i+1}'
    data = np.column_stack([pop_data['总人口(万人)'].values, 
                           factor_scores_df.iloc[:, i].values])
    
    # 进行Granger因果检验
    result = grangercausalitytests(data, maxlag=3, verbose=False)
3.2.2 协整检验

目的:检验人口与因子得分之间是否存在长期均衡关系

检验方法:Johansen协整检验或Engle-Granger两步法

数学原理
如果两个非平稳序列 X t X_t Xt Y t Y_t Yt存在协整关系,则存在协整向量 β \beta β使得:
ε t = X t − β Y t \varepsilon_t = X_t - \beta Y_t εt=XtβYt
是平稳序列。

实施方法

from statsmodels.tsa.vector_ar.vecm import coint_johansen

# 构建协整检验数据
data_coint = np.column_stack([pop_data['总人口(万人)'].values, 
                             factor_scores_df.values])

# Johansen协整检验
result = coint_johansen(data_coint, det_order=0, k_ar_diff=1)
3.2.3 外生变量内生性检验

目的:检验因子得分是否真的是外生变量

检验方法:Hausman检验或Wu-Hausman检验

原理:检验外生变量与误差项是否相关,如果相关则变量是内生的。

3.3 基于现有数据的因果性分析

3.3.1 理论因果关系分析

基于经济学理论,各因子对人口的因果关系:

  1. 经济发展因子→人口

    • 理论依据:经济发展提供就业机会,吸引人口流入
    • 因果方向:单向因果(经济发展→人口增长)
  2. 产业结构因子→人口

    • 理论依据:产业升级影响就业结构,进而影响人口分布
    • 因果方向:双向因果(产业结构↔人口结构)
  3. 公共服务因子→人口

    • 理论依据:公共服务水平影响居住吸引力
    • 因果方向:单向因果(公共服务→人口流入)
  4. 环境投资因子→人口

    • 理论依据:环境质量影响居住意愿
    • 因果方向:单向因果(环境质量→人口留存)
3.3.2 相关性分析结果

基于实际运行的ARIMAX模型结果:

Factor 1: 系数=-0.1283, p值=0.712 (不显著)
Factor 2: 系数=-0.3629, p值=0.389 (不显著) 
Factor 3: 系数=0.8574, p值=0.014 (显著)
Factor 4: 系数=0.5112, p值=0.039 (显著)

结果解释

  • Factor 3(公共服务因子)和Factor 4(环境投资因子)对人口有显著正向影响
  • Factor 1(经济发展因子)和Factor 2(产业结构因子)影响不显著

3.4 因果性检验缺失的影响

3.4.1 模型可靠性问题
  1. 伪回归风险:没有协整检验,可能存在伪回归
  2. 内生性偏误:如果因子不是真正外生,参数估计会有偏
  3. 预测精度下降:因果关系不明确导致预测不准确
3.4.2 改进建议
  1. 增加因果检验模块
def causality_tests(pop_data, factor_scores_df):
    """进行因果性检验"""
    
    # 1. Granger因果检验
    granger_results = {}
    
    # 2. 协整检验  
    cointegration_results = {}
    
    # 3. 内生性检验
    endogeneity_results = {}
    
    return granger_results, cointegration_results, endogeneity_results
  1. 模型选择标准

    • 只有通过因果检验的因子才能作为外生变量
    • 建立模型选择的统计标准(AIC、BIC、预测精度)
  2. 稳健性检验

    • 使用不同滞后阶数进行稳健性检验
    • 采用Bootstrap方法进行置信区间估计

3.5 建议的完整因果检验流程

原始数据
单位根检验
协整检验
是否协整?
VECM模型
VAR模型
Granger因果检验
内生性检验
模型选择
ARIMAX模型构建
预测结果

网站公告

今日签到

点亮在社区的每一天
去签到