나는 역사적인 허리케인 데이터로부터 합성 실현을 생성하려고합니다. 허리케인은 내 문제에서 일련의 설명자 (즉, 폭풍 크기, 폭풍 강도, 폭풍 속도 및 폭풍 표제 - 허리케인이 일부 해안선을 가로 지르는 시점의 값을 참조)으로 매개 변수화되었습니다. 실현은 허리케인 생성 홍수에 대한 확률 론적 예측을하는데 사용될 것입니다. 역사적인 허리케인 데이터는 일부 근원적 인 다변량 분포에서 나온다고 가정합니다. 아이디어는이 기본 분포 (순간, 상관 관계, 양의 폭풍 크기와 같은 물리적 범위 등)에서 추가 샘플을 그려내는 것입니다.상관 관계가있는 다 변수 데이터 시뮬레이션
저는 Taylor와 Thompson에 의해 개발 된 기법 (Computational Statistics and Data Analysis, 1986)에 의해 수정 된 가장 가까운 이웃 가우스 분산 방법을 구현했습니다. 이것을 수행하는 더 좋은 방법이 있는지 알고 싶습니다.
데이터 샘플 (멕시코 허리케인 1940년부터 2005년까지 걸프) neighborhood_size = 5 = distance_metric 유클리드위한
def TT_alg(data_list, sample_size, num_neighbors=5, metric=2):
dummy_list = []
dimension = len(data_list[0])
# transform the data to the interval [0,1]
aa = numpy.array([(max([row[i] for row in data_list]) - min([row[i] for row in data_list])) for i in range(dimension)])
bb = numpy.array([min([row[j] for row in data_list]) for j in range(dimension)])
data_array = numpy.array(data_list)
data_array_normed = (data_array - bb)/aa
# setup nearest neighbor tree
tree = scipy.spatial.KDTree(data_array_normed)
# perform nearest neighbor random walk
for ijk in range(sample_size):
sample = random.choice(data_array_normed)
kNN = tree.query(sample, k=num_neighbors, p=metric)
x_mu = numpy.array([numpy.average([data_array_normed[i][j] for i in kNN[1]]) for j in range(dimension)])
x_si = numpy.array([numpy.std([data_array_normed[i][j] for i in kNN[1]]) for j in range(dimension)])
s_gs = [numpy.random.normal(mu, si) for mu, si in zip(x_mu, x_si)]
dummy_list.append(s_gs)
dummy_array = numpy.array(dummy_list)
# go back to original scale
data_array_unnormed = (dummy_array * aa) + bb
return data_array_unnormed.tolist()
예.
이 질문을 Cross-Validated (통계 및 기계 학습을위한 SE 사이트)에 게시하면 더 편리 할 것입니다. [이 신문] (http://civil.colorado.edu/~balajir/my-papers/MultiNon.pdf)을 사용해보십시오. – Antoine