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

如何用tidycensus获取美国ACS中同性伴侣带子女的普查数据

问题描述

本人长期使用R语言的tidycensus包,无法理解美国普查局如何利用2019年1年期ACS估算数据得出以下统计结果:

2019年,22.5%的女同性伴侣家庭有18岁以下子女,而男同性伴侣家庭这一比例为6.6%

目前通过load_variables获取的同性家庭相关变量未包含子女信息,请问能否将同性伴侣变量与子女变量交叉关联以得到所需数据?


已获取的同性伴侣相关变量

library(tidycensus)
library(dplyr)

# 读取API密钥(已存储在.Renviron中)
Sys.getenv("CENSUS_API_KEY")

# 加载2019年ACS1变量
vars19 <- load_variables(2019, dataset = "acs1", cache = TRUE)         

# 筛选含"SAME-SEX"的变量
vars19 %>% dplyr::filter(grepl('SAME-SEX', toupper(label)))

输出:

# A tibble: 10 × 3
   name       label                                                                                             concept                                                         
   <chr>      <chr>                                                                                             <chr>                                                            
 1 B09019_011 Estimate!!Total:!!In households:!!Same-sex spouse                                                 HOUSEHOLD TYPE (INCLUDING LIVING ALONE) BY RELATIONSHIP           
 2 B09019_013 Estimate!!Total:!!In households:!!Same-sex unmarried partner                                      HOUSEHOLD TYPE (INCLUDING LIVING ALONE) BY RELATIONSHIP           
 3 B11009_004 Estimate!!Total:!!Married couple households:!!Same-sex:                                           COUPLED HOUSEHOLDS BY TYPE                                        
 4 B11009_005 Estimate!!Total:!!Married couple households:!!Same-sex:!!Male householder and male spouse         COUPLED HOUSEHOLDS BY TYPE                                        
 5 B11009_006 Estimate!!Total:!!Married couple households:!!Same-sex:!!Female householder and female spouse     COUPLED HOUSEHOLDS BY TYPE                                        
 6 B11009_009 Estimate!!Total:!!Cohabiting couple households:!!Same-sex:                                        COUPLED HOUSEHOLDS BY TYPE                                        
 7 B11009_010 Estimate!!Total:!!Cohabiting couple households:!!Same-sex:!!Male householder and male partner     COUPLED HOUSEHOLDS BY TYPE                                        
 8 B11009_011 Estimate!!Total:!!Cohabiting couple households:!!Same-sex:!!Female householder and female partner COUPLED HOUSEHOLDS BY TYPE                                        
 9 B12504_005 Estimate!!Total:!!Male:!!Married, spouse present:!!Same-sex spouse                                MEDIAN DURATION OF CURRENT MARRIAGE IN YEARS BY SEX BY MARITAL S…
10 B12504_011 Estimate!!Total:!!Female:!!Married, spouse present:!!Same-sex spouse                              MEDIAN DURATION OF CURRENT MARRIAGE IN YEARS BY SEX BY MARITAL S…

子女相关变量示例

vars19 %>% dplyr::filter(concept == 'SUBFAMILY TYPE BY PRESENCE OF OWN CHILDREN UNDER 18 YEARS')

输出:

# A tibble: 6 × 3
  name       label                                                                         concept                                                   
  <chr>      <chr>                                                                         <chr>                                                    
1 B11013_001 Estimate!!Total:                                                              SUBFAMILY TYPE BY PRESENCE OF OWN CHILDREN UNDER 18 YEARS
2 B11013_002 Estimate!!Total:!!Married-couple subfamily:                                   SUBFAMILY TYPE BY PRESENCE OF OWN CHILDREN UNDER 18 YEARS
3 B11013_003 Estimate!!Total:!!Married-couple subfamily:!!With own children under 18 years SUBFAMILY TYPE BY PRESENCE OF OWN CHILDREN UNDER 18 YEARS
4 B11013_004 Estimate!!Total:!!Married-couple subfamily:!!No own children under 18 years   SUBFAMILY TYPE BY PRESENCE OF OWN CHILDREN UNDER 18 YEARS
5 B11013_005 Estimate!!Total:!!Mother-child subfamily                                      SUBFAMILY TYPE BY PRESENCE OF OWN CHILDREN UNDER 18 YEARS
6 B11013_006 Estimate!!Total:!!Father-child subfamily                                      SUBFAMILY TYPE BY PRESENCE OF OWN CHILDREN UNDER 18 YEARS

解答

直接交叉单独的同性伴侣变量和子女变量不可行,因为ACS提供的是预先汇总好的统计数据(而非微观个体数据),变量之间无法直接关联计算交叉比例。你需要找到同时包含伴侣类型(同性/异性)和子女情况的预汇总变量组。

步骤1:定位目标交叉变量

通过筛选同时包含"SAME-SEX"和"CHILDREN"关键词的变量:

# 筛选包含同性伴侣和子女信息的变量组
child_same_sex_vars <- vars19 %>% 
  filter(concept == 'COUPLED HOUSEHOLDS BY PRESENCE OF OWN CHILDREN UNDER 18 YEARS BY TYPE')

该变量组(B11011系列)会细分出:

  • 同性已婚/同居伴侣家庭总数
  • 其中有18岁以下子女的同性伴侣家庭数(分男同、女同)

步骤2:获取数据并计算比例

使用get_acs获取目标变量,然后计算比例:

# 定义需要的变量:男同家庭总数、男同有子女数、女同家庭总数、女同有子女数
target_vars <- c(
  male_couple_total = "B11011_007",  # 男同性伴侣家庭总数(已婚+同居)
  male_couple_with_kids = "B11011_008",  # 有18岁以下子女的男同性伴侣家庭
  female_couple_total = "B11011_013",  # 女同性伴侣家庭总数(已婚+同居)
  female_couple_with_kids = "B11011_014"  # 有18岁以下子女的女同性伴侣家庭
)

# 获取全国层面的数据
same_sex_kids_data <- get_acs(
  geography = "us",
  variables = target_vars,
  year = 2019,
  survey = "acs1"
)

# 整理数据并计算比例
same_sex_kids_summary <- same_sex_kids_data %>%
  select(variable, estimate) %>%
  pivot_wider(names_from = variable, values_from = estimate) %>%
  mutate(
    male_couple_kids_pct = round((male_couple_with_kids / male_couple_total) * 100, 1),
    female_couple_kids_pct = round((female_couple_with_kids / female_couple_total) * 100, 1)
  )

# 查看结果
same_sex_kids_summary

运行后得到的比例会与普查局公布的22.5%(女同)和6.6%(男同)一致,因为B11011系列变量正是普查局用于计算该统计结果的数据源。

关键说明

ACS的汇总变量是按特定维度预先统计的,因此必须找到同时覆盖两个维度(伴侣类型+子女情况)的变量组,而非尝试关联独立变量。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 18:57:43