Найти образцы из числового вектора, которые имеют предварительно определенное среднее значение - PullRequest
0 голосов
/ 25 апреля 2018

Я использую исторические годовые данные о количестве осадков, чтобы разработать «whatif» сценарии изменения количества осадков в экологических моделях.Чтобы сделать это, я пытаюсь выбрать фактические значения количества осадков, чтобы создать выборку по годам осадков, которая соответствует определенным критериям (например, выборка по годам осадков, которые на 10% влажнее, чем в среднем за исторический период).

Я предложил относительно простой метод грубой силы, описанный ниже, который работает нормально, если у меня есть один критерий (например, целевое среднее значение):

rainfall_values = c(270.8, 150.5, 486.2, 442.3, 397.7, 
           593.4191, 165.608, 116.9841, 265.69, 217.934, 358.138, 238.25, 
           449.842, 507.655, 344.38, 188.216, 210.058, 153.162, 232.26, 
           266.02801, 136.918, 230.634, 474.984, 581.156, 674.618, 359.16
)

#brute force 
sample_size=10 #number of years included in each sample
n_replicates=1000 #number of total samples calculated
target=mean(rainfall_values)*1.1 #try to find samples that are 10% wetter than historical mean
tolerance=0.01*target #how close do we want to meet the target specified above?

#create large matrix of samples
sampled_DF=t(replicate(n_replicates, sample(x=rainfall_values, size=sample_size, replace=T))) 
#calculate mean for each sample
Sampled_mean_vals=apply(sampled_DF,1, mean)
#create DF only with samples that meet the criteria
Sampled_DF_on_target=sampled_DF[Sampled_mean_vals>(target-tolerance)&Sampled_mean_vals<(target+tolerance),]

Проблема в том, чтоВ конечном итоге у меня будет несколько критериев (не только целевое значение, но также стандартное отклонение, коэффициенты автокорреляции и т. Д.).С более сложными многовариантными целями этот метод грубой силы становится действительно неэффективным в поиске совпадений, где мне, по сути, приходится просматривать миллионы выборок и брать дни даже при распараллеливании ...

Итак, мой вопрос - есть лиЛюбой способ реализовать этот поиск с использованием алгоритма оптимизации или другого подхода, не грубой силы?

1 Ответ

0 голосов
/ 25 апреля 2018

Некоторые подходы к такого рода вопросам описаны в этой ссылке . Один респондент называет метод «отказа», который вы называете «методом грубой силы».

Эта ссылка относится к связанному вопросу.

...