답변:
면책 조항 : 다음과 같은 시점에서, 귀하의 데이터가 정상적으로 분포되어 있다고 가정합니다. 실제로 엔지니어링을하고 있다면 강력한 통계 전문가와상의하고 그 사람이 레벨에 대해 말하면서 라인에 사인하도록하십시오. 그들 중 5 명 또는 25 명과 대화하십시오. 이 답변은 토목 공학 학생이 "어떻게"를 요구하는 엔지니어링 전문가가 아닌 "왜"를 묻는 것입니다.
이 질문의 배후에있는 질문은 "극단적 가치 분배 란 무엇인가?" 그렇습니다. 대수학입니다. 그래서 무엇? 권리?
1000 년 동안의 홍수에 대해 생각해 봅시다. 그들은 크다.
그들이 일어날 때, 그들은 많은 사람들을 죽일 것입니다. 많은 다리가 추락하고 있습니다.
어떤 다리가 내려 가지 않는지 알아? 나는한다. 넌 아직 ...
질문 : 1000 년 동안 어느 다리가 추락하지 않습니까?
답 : 다리는 그것을 견딜 수 있도록 설계되었습니다.
귀하가 원하는 방식으로 수행해야하는 데이터 :
따라서 매일 200 년간의 물 데이터가 있다고 가정 해 봅시다. 거기에 1000 년의 홍수가 있습니까? 원격이 아닙니다. 분포의 꼬리 하나의 표본이 있습니다. 당신은 인구가 없습니다. 홍수의 모든 이력을 알고 있다면 전체 데이터 인구를 확보 할 수 있습니다. 이것에 대해 생각합시다. 1000 년의 확률이 1 인 최소한 하나의 값을 가지려면 몇 년 동안의 데이터가 필요하고, 얼마나 많은 샘플이 필요합니까? 완벽한 세상에서는 최소한 1000 개의 샘플이 필요합니다. 실제 세계는 지저분하므로 더 많은 것이 필요합니다. 약 4000 개의 샘플에서 50/50 확률을 얻습니다. 약 20,000 개 샘플에서 1 개 이상을 확보하기 시작합니다. 샘플은 "물 1 초 대 다음 물"을 의미하는 것이 아니라 연도 별 변동과 같이 각 고유 한 변동 원인에 대한 척도입니다. 1 년에 한 번 측정 다른 연도에 대한 다른 측정과 함께 두 개의 샘플을 구성합니다. 4,000 년의 좋은 데이터가 없다면 데이터에 1000 년의 홍수가 발생하지 않았을 것입니다. 좋은 결과는 좋은 결과를 얻기 위해 많은 양의 데이터가 필요하지 않다는 것입니다.
적은 데이터로 더 나은 결과를 얻는 방법은 다음과 같습니다
. 연간 최대 값을 살펴보면 "극단 값 분포"를 200 년 최대 값 수준에 맞출 수 있으며 1000 년 홍수를 포함하는 분포를 갖게됩니다 -수평. 실제 "얼마나 큰가"가 아니라 대수식이 될 것입니다. 이 방정식을 사용하여 1000 년 홍수의 규모를 결정할 수 있습니다. 그런 다음 그 양의 물이 주어지면 다리를 지어서 저항 할 수 있습니다. 정확한 가치를 위해 쏘지 말고 더 큰 것을 쏘지 마십시오. 그렇지 않으면 1000 년 홍수에서 실패하도록 설계하고 있습니다. 대담한 경우 리샘플링을 사용하여 정확한 1000 년 값을 넘어서서 저항 할 수있는 정도를 계산할 수 있습니다.
EV / GEV가 관련 분석 형태
인 이유는 다음과 같습니다 . 일반화 된 극단 값 분포는 최대 값이 얼마나 변하는 지에 관한 것입니다. 최대 값의 변동은 평균의 변동과 실제로 다릅니다. 중앙 한계 정리를 통한 정규 분포는 많은 "중앙 경향"을 설명합니다.
순서:
이제 결과의 분포를 플롯
#libraries
library(ggplot2)
#parameters and pre-declarations
nrolls <- 1000
ntimes <- 10000
store <- vector(length=ntimes)
#main loop
for (i in 1:ntimes){
#get samples
y <- rnorm(nrolls,mean=0,sd=1)
#store max
store[i] <- max(y)
}
#plot
ggplot(data=data.frame(store), aes(store)) +
geom_histogram(aes(y = ..density..),
col="red",
fill="green",
alpha = .2) +
geom_density(col=2) +
labs(title="Histogram for Max") +
labs(x="Max", y="Count")
이것은 "표준 정규 분포"가 아닙니다 :
피크는 3.2이지만 최대 값은 5.0을 향해 올라갑니다. 비뚤어졌습니다. 약 2.5 이하로 떨어지지 않습니다. 실제 데이터 (표준 법선)가 있고 꼬리를 선택하면이 곡선을 따라 무작위로 무언가를 선택합니다. 운이 좋으면 아래쪽 꼬리가 아니라 중앙을 향합니다. 엔지니어링은 운의 반대에 관한 것입니다. 매번 원하는 결과를 일관되게 달성하는 것입니다. " 임의의 숫자는 우연히 떠나기에는 너무 중요하다 "(특히 각주 참조). 이 데이터에 가장 적합한 분석 함수 군-극값 분포 제품군.
샘플 적합 :
표준 정규 분포에서 200 년의 임의의 연도 최대 값을 가졌으며 최대 수위의 200 년 역사를 의미한다고 가정합니다 (무엇이든). 배포판을 얻으려면 다음을 수행하십시오.
(코드는 위의 코드가 먼저 실행되었다고 가정합니다)
library(SpatialExtremes) #if it isn't here install it, it is the ev library
y2 <- sample(store,size=200,replace=FALSE) #this is our data
myfit <- gevmle(y2)
결과는 다음과 같습니다.
> gevmle(y2)
loc scale shape
3.0965530 0.2957722 -0.1139021
이를 생성 기능에 연결하여 20,000 개의 샘플을 생성 할 수 있습니다.
y3 <- rgev(20000,loc=myfit[1],scale=myfit[2],shape=myfit[3])
다음과 같이 구축하면 매년 50/50의 확률로 실패 할 수 있습니다.
평균 (y3)
3.23681
1000 년 "홍수"수준을 결정하는 코드는 다음과 같습니다.
p1000 <- qgev(1-(1/1000),loc=myfit[1],scale=myfit[2],shape=myfit[3])
p1000
다음과 같이 구축하면 1000 년 동안의 홍수에서 50/50 확률로 실패 할 수 있습니다.
p1000
4.510931
95 % 상위 CI를 결정하기 위해 다음 코드를 사용했습니다.
myloc <- 3.0965530
myscale <- 0.2957722
myshape <- -0.1139021
N <- 1000
m <- 200
p_1000 <- vector(length=N)
yd <- vector(length=m)
for (i in 1:N){
#generate samples
yd <- rgev(m,loc=myloc,scale=myscale,shape=myshape)
#compute fit
fit_d <- gevmle(yd)
#compute quantile
p_1000[i] <- qgev(1-(1/1000),loc=fit_d[1],scale=fit_d[2],shape=fit_d[3])
}
mytarget <- quantile(p_1000,probs=0.95)
결과는 다음과 같습니다.
> mytarget
95%
4.812148
즉, 데이터가 엄청나게 정상 (아마도)이 아니라는 것을 감안할 때 대부분의 1000 년 홍수에 저항하려면 ...
> out <- pgev(4.812148,loc=fit_d[1],scale=fit_d[2],shape=fit_d[3])
> 1/(1-out)
아니면 그
> 1/(1-out)
shape
1077.829
... 1078 년 홍수.
하단 라인:
행운을 빌어 요
추신:
추신 : 더 재미-유튜브 비디오 (내 것이 아님)
https://www.youtube.com/watch?v=EACkiMRT0pc
각주 : Coveyou, Robert R. "임의의 숫자 생성은 너무 중요하여 우연히 남길 수 없습니다." 적용 확률 및 몬테 카를로 방법과 역학의 현대적인 측면. 응용 수학 3 (1969)의 연구 : 70-111.
관측 된 데이터에서 추정 하기 위해 극단 값 이론을 사용 합니다. 종종, 당신이 가진 데이터는 꼬리 확률에 대한 합리적인 추정치를 제공하기에 충분히 크지 않습니다. @EngrStudent의 1-in-1000 year 이벤트의 예를 살펴보면, 99.9 % 분포의 분위수를 찾는 것과 같습니다. 그러나 200 년의 데이터 만 보유한 경우 경험적 Quantile 추정치는 최대 99.5 %까지만 계산할 수 있습니다.
극단 값 이론을 사용하면 꼬리 분포 의 형태 에 대해 다양한 가정을 통해 99.9 % 분위수를 추정 할 수 있습니다 .
99.5 %와 99.9 %의 차이가 작다고 생각할 수도 있습니다. 결국 0.4 %에 불과합니다. 그러나 그것은 확률 의 차이이며 , 당신이 꼬리에있을 때, 그것은 Quantile 의 큰 차이로 해석 될 수 있습니다 . 다음은 감마 분포에 대한 모습을 보여줍니다. 이러한 현상은 꼬리가 길지 않습니다. 파란색 선은 99.5 % Quantile에 해당하고 빨간색 선은 99.9 % Quantile입니다. 이들 간의 차이는 세로 축에서는 작지만 가로 축에서의 간격은 상당히 큽니다. 정말 긴꼬리 분포에서만 분리가 더 커집니다. 감마는 실제로 매우 무해한 경우입니다.
꼬리에만 관심이 있다면 데이터 수집 및 분석 노력을 꼬리에 집중하는 것이 합리적입니다 . 그렇게하는 것이 더 효율적이어야합니다. EVT 배포에 대한 논증을 제시 할 때 이러한 측면이 종종 무시되기 때문에 데이터 수집을 강조했습니다. 실제로, 일부 필드에서 전체 분포 라고하는 것을 추정하기 위해 관련 데이터를 수집하는 것이 불가능할 수 있습니다 . 아래에서 더 자세히 설명하겠습니다.
@EngrStudent의 예에서와 같이 1000 년 동안 홍수가 1 회 발생하는 경우 정규 분포의 차체를 구축하려면 관측치로 채울 수있는 많은 데이터가 필요합니다. 잠재적으로 지난 수백 년 동안 발생한 모든 홍수가 필요합니다.
이제 잠시 멈추고 정확히 홍수가 무엇인지 생각해보십시오. 폭우가 내 뒤뜰에 홍수가 났을 때 홍수입니까? 아마도 그렇지는 않지만 홍수가 아닌 사건에서 홍수를 묘사하는 선은 어디에 있습니까? 이 간단한 질문은 데이터 수집 문제를 강조합니다. 수십 년 또는 수 세기 동안 동일한 표준에 따라 신체의 모든 데이터를 수집 할 수있는 방법은 무엇입니까? 홍수 분포의 본문에 대한 데이터를 수집하는 것은 실제로 불가능합니다.
따라서, 그것은의 문제가 아니다 단지 효율성 의 분석 만의 문제 가능성 데이터의 수집 : 전체 유통하거나 꼬리를 모델링 할 수 있는지?
당연히 테일을 사용하면 데이터 수집이 훨씬 쉽습니다. 대규모 홍수에 대한 임계 값을 충분히 높게 정의하면 모든 또는 거의 모든 이벤트가 어떤 방식 으로든 기록 될 가능성이 높아집니다. 치명적인 홍수를 놓치기가 어렵고 어떤 문명이 존재하면 사건에 대해 약간의 기억이 저장됩니다. 따라서 데이터 수집이 신뢰성 연구와 같은 많은 분야의 비극 단 사건보다는 극한 사건에 훨씬 더 강력하다는 점을 감안할 때 꼬리에 특히 초점을 둔 분석 도구를 구축하는 것이 합리적입니다.
일반적으로 기본 데이터 (예 : 가우스 풍속)의 분포는 단일 샘플 포인트에 대한 것입니다. 98 번째 백분위 수는 임의의 선택된 점에 대해 98 % 백분위 수보다 값이 2 % 더 클 가능성을 알려줍니다 .
나는 토목 기사가 아니지만 특정 날의 풍속이 특정 숫자보다 높을 가능성이 아니라 가장 큰 돌풍이 분포되어 있다고 생각합니다. 올해의 과정. 이 경우, 일일 바람 돌풍 최대 값이 지수 적으로 분포된다면, 원하는 것은 365 일 동안 최대 바람 돌풍의 분포입니다.
Quantile을 사용하면 추가 계산이 더 간단 해집니다. 토목 기사는 값 (예 : 풍속)을 첫 번째 원리 공식으로 대체 할 수 있으며 98.5 % Quantile에 해당하는 극한 조건에 대해 시스템의 동작을 얻을 수 있습니다.
전체 분포를 사용하면 더 많은 정보를 제공하는 것처럼 보이지만 계산이 복잡해집니다. 그러나 (i) 건설 및 (ii) 실패 위험과 관련된 비용을 최적으로 균형 잡는 고급 위험 관리 접근 방식을 사용할 수 있습니다.
extreme value distribution
보다 사용the overall distribution
하고 98.5 % 값을 얻는 것입니다.