我有已分配权重的调查数据。 这是一个玩具样品。 如果我不对数据进行加权,它就不能准确地代表总体。 有没有一种简单的方法来计算权重? 鉴于权重是样本中某个特定人代表人口 X 中的多少人,我是否需要乘以 obs * 权重? 我查看了 youtube 但我没有视频中提到的分层数据,我的数据都是个人数据,在其他地方没有任何运气搜索。
提前感谢您的帮助
ID <- c(1,2,3,4,5,6,7,8,9)
year <- c(1980,1980,1980,1981,1981,1981,1982,1982,1982)
city <- c("NY", "LA", "CA", "NY", "LA","CA","NY", "LA","CA")
favFood <- c("pizza","salad","tacos","tacos","frenchFries","pizza","tacos","hamburger","frenchFries")
weight <- c(100,17,25,1,100,52,35,10,5)
df <- data.frame(ID,year,city,favFood,weight)
print(df)
# aggregate count by year city favFood but now add the weights
a <- aggregate(ID ~ year + city + favFood + weight,
data = df,
FUN = length)
a
在 Stata 中,您可以根据分析需要使用“pweight”或“fweight”,R 中的原理类似:通过权重调整数据以反映样本在总体中的代表性。
在您的情况下,您有频率权重,您可以将每个观测值乘以其权重以反映聚合中的人口计数,然后按所需变量聚合加权计数。
从可能的分区(或组)中,您可以获取年份、城市和最喜欢的食物,并对权重求和。结果为您提供了总体偏好的表示,而不仅仅是样本,一种方法是:
library(dplyr)
df %>%
group_by(year, city, favFood) %>%
summarize(weighted_count = sum(weight), .groups = "drop")