A は、行の最初の要素が家の ID を表し、2 番目の列がその家の人の ID を持つ世帯のサンプルを表すデータ マトリックスであるとします。
A = [100 1 56;
101 1 34;
101 2 33;
102 1 22;
102 2 55;
102 3 2]
w = [3 2 1] % weight of each household to generate the synthetic population
サンプルを拡張して、出力が次のようになるような合成母集団を作成したいと思います。
100 1 56
100 1 56
100 1 56
101 1 34
101 2 33
101 1 34
101 2 33
102 1 22
102 2 55
102 3 2
次のコードを使用して、特定の重みに対してマトリックス内のすべての行を繰り返しました
cc = [0 cumsum(w)];
idx = zeros(1,sum(w));
for i=1:length(w)
idx(cc(i)+1:cc(i+1))=i;
end
weighted_replicated_matrix = A (idx,:)
しかし、目的の出力を得るには、一連の行を繰り返す必要があります。行のセットの長さは世帯内の人数 (w のような別の行列である可能性があります) に依存し、各セットが繰り返される回数は重み行列によって与えられます。
コードの変更に関するヘルプは本当に役に立ちます!