R(Wide)中面板数据的回归?

问题描述 投票:0回答:1

我正在尝试对 R 中的人口运行以下 GDP 模型:

GDP_(i,t)=alpha+beta*人口_(i,t)+epsilon

这里,每个变量都按时间 (t) 和国家 (i) 进行索引。

我有一个面板数据集df1,格式如下:

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)

我想使用 UK_gdp、US_gdp 列作为 GDP_(i,t) 变量,使用列 US_pop、UK_pop 作为人口变量的数据来运行上述回归。 有没有办法在回归中使用两国的数据?我不想为每个国家/地区运行单独的回归,而是在运行回归时将所有数据包含在模型中。我不知道该怎么做。

r dataset regression tibble panel-data
1个回答
0
投票

您需要重塑数据,以便拥有两列:gdppopulation。然后,如果您认为没有必要考虑任何特定于国家或年份的影响,则可以自由地对此类汇总数据进行回归。

# Load necessary library
library(tidyverse)

# Your initial data
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)

# Reshape the data
df_long <- df1 %>%
  pivot_longer(
    cols = -year, 
    names_to = c("country", ".value"), 
    names_pattern = "(.*)_(.*)"
  )

# Convert the year to date format, if necessary
df_long$year <- as.Date(df_long$year)

# View the reshaped data frame
print(df_long)
© www.soinside.com 2019 - 2024. All rights reserved.