You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

宽格式面板数据回归:如何合并多国数据进行GDP对人口回归

将两国数据纳入同一回归模型的解决方案

你完全可以把两国数据合并到同一个回归模型中,核心是把当前的宽格式面板数据转换为长格式(tidy)数据,让每个观测对应一个国家-年份的组合,包含gdp、population和country变量。以下是具体步骤:

1. 加载所需工具包

我们使用tidyverse处理数据重塑,lm函数执行回归(基础R自带):

library(tidyverse)

2. 原始数据构造(可直接运行验证)

UK_gdp <- c(4.1, 4.2, 3.8, 4.0)
US_gdp <- c(4.1, 4.2, 3.8, 4.0)
US_pop <- c(220, 230, 240, 260)
UK_pop <- c(40, 45, 47, 49)
year <- c("1965-01-01", "1966-01-01", "1967-01-01", "1968-01-01")
df1 <- tibble(UK_gdp, US_gdp, US_pop, UK_pop, year)

3. 转换为长格式数据

利用pivot_longer函数,通过列名的模式匹配(国家_变量类型),一键将宽数据转成长格式:

df_long <- df1 %>%
  pivot_longer(
    cols = -year,  # 保留year列,处理其他所有列
    names_to = c("country", ".value"),  # 拆分列名为国家、变量名
    names_pattern = "(.*)_(gdp|pop)"  # 匹配"国家_变量"的格式
  )

转换后的数据结构如下(每个行对应一个国家-年份的观测):

# A tibble: 8 × 4
  country year       gdp population
  <chr>   <chr>    <dbl>      <dbl>
1 UK      1965-01-01  4.1         40
2 UK      1966-01-01  4.2         45
3 UK      1967-01-01  3.8         47
4 UK      1968-01-01  4.0         49
5 US      1965-01-01  4.1        220
6 US      1966-01-01  4.2        230
7 US      1967-01-01  3.8        240
8 US      1968-01-01  4.0        260

4. 运行回归模型

基础模型(不区分国家截距)

直接拟合你指定的回归方程,合并所有国家数据估计共同的α和β:

basic_model <- lm(gdp ~ population, data = df_long)
summary(basic_model)

带国家固定效应的模型(更贴合面板数据)

如果希望不同国家有各自的截距(α_i),仅共享人口的影响系数β,可以加入国家虚拟变量:

fixed_effects_model <- lm(gdp ~ population + country, data = df_long)
summary(fixed_effects_model)

这个模型的表达式等价于:
GDP_(i,t) = alpha_i + beta*Population_(i,t) + epsilon
其中alpha_i是国家i的专属截距。

内容的提问来源于stack exchange,提问作者James Rider

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 00:12:43