Я хочу скопировать программу в SAS (rake_and_trim), которая использует raking для получения весов для агрегированного выборочного набора данных (т.е. у меня только предельные итоги для каждой переменной raking в данных выборки).Из того, что я могу сказать, существующие процедуры грабли в R требуют данных на индивидуальном уровне.Я рассмотрел параметры «rake», «calibrate» и «anesrake», но не могу понять, как вводить только предельные итоги для образца.
Вот пример того, как мои агрегированные выборочные данные будут структурированы:
Age_Group Gender n Prev_Obesity
15 - 19 F 1623 22
15 - 19 M 924 24
20 - 24 F 4321 29
20 - 24 M 1776 28
25 - 29 F 4833 33
25 - 29 M 1922 29
Вот пример использования "rake" из пакета опроса:
library(survey)
IПредполагаю, что выборка с равной вероятностью без дизайна выборки
data.svy.unweighted <- svydesign(ids=~1, data=data)
Здесь я указываю предельные итоги для населения (также называемые целью, контролем или ссылкой)
gender.dist <- data.frame(gender = c("1", "2"),
Freq = nrow(data) * c(0.45, 0.55))
Здесьэто процедура для рейка, и sample.margins вычисляет пол только из фрейма данных индивидуального уровня.Мне бы хотелось, чтобы у меня была возможность вводить выборочные гендерные маргинальные значения, аналогичные тому, как создаются значения pop.margins.
data.svy.rake <- rake(design = data.svy.unweighted,
sample.margins = list(~gender),
population.margins = list(gender.dist))
Спасибо за любой совет, как это сделать!