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

使用tidycensus提取亚利桑那州县2000-2019年人口时间序列数据咨询

实现方案

方案一:直接调用普查局官方年度人口估计(推荐)

该方案无需手动插值,所用数据为美国普查局官方发布的各县年度人口估计值,完整覆盖2000-2019全时段,准确性远高于手动插值结果。

library(tidycensus)
library(tidyverse)

# 首次使用需先配置普查API密钥,密钥可通过美国普查局官网免费申请
# census_api_key("你的API密钥", install = TRUE)

# 批量拉取2000-2019年亚利桑那州各县年度人口数据
az_pop_annual <- map_dfr(2000:2019, function(y) {
  get_estimates(
    geography = "county",
    state = "AZ",
    product = "population",
    year = y,
    variables = "POP"
  ) %>% 
    mutate(year = y)
})

# 可选:整理为宽格式便于后续分析
az_pop_wide <- az_pop_annual %>% 
  select(GEOID, NAME, year, value) %>% 
  pivot_wider(names_from = year, values_from = value)

方案二:手动拉取普查/ACS数据+插值补全

如果需要基于十年普查、ACS原始数据自行补全缺失年份,可按如下步骤操作:

步骤1:拉取所有基准年份人口数据

  • 十年普查锚点:2000年、2010年
  • ACS5年估计:2009-2019年(可根据需求选择将ACS5的结束年份或中点年份作为时间标识)
# 拉取2000、2010年十年普查人口数据
decennial_pop <- map_dfr(c(2000, 2010), function(y) {
  get_decennial(
    geography = "county",
    state = "AZ",
    year = y,
    variables = c(pop = "P001001"),
    survey = "sf1"
  ) %>% 
    mutate(year = y, source = "decennial")
})

# 拉取2009-2019年ACS5年人口估计
acs_pop <- map_dfr(2009:2019, function(y) {
  get_acs(
    geography = "county",
    state = "AZ",
    year = y,
    variables = c(pop = "B01003_001"),
    survey = "acs5"
  ) %>% 
    select(-moe) %>% # 剔除边际误差列,仅保留估计值
    mutate(year = y, source = "acs5")
})

# 合并基准数据,统一字段
base_pop <- bind_rows(decennial_pop, acs_pop) %>% 
  select(GEOID, NAME, year, value)

步骤2:按县分组插值补全缺失年份

library(zoo)

interpolated_pop <- base_pop %>%
  group_by(GEOID, NAME) %>% 
  complete(year = 2000:2019) %>% # 补全每个县2000-2019全时段年份
  mutate(value = na.approx(value)) %>% # 线性插值填充缺失值
  ungroup()

可选优化

  • 若需要更高插值精度,可将na.approx替换为na.spline实现样条插值
  • 若仅需以两次十年普查为锚点插值,合并基准数据时剔除acs_pop即可,插值结果平滑度更高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:24:03