Oświadczenie: W poniższych punktach niniejszy ZASADA zakłada, że Twoje dane są zwykle dystrybuowane. Jeśli faktycznie coś konstruujesz, porozmawiaj z silnym specjalistą ds. Statystyk i pozwól tej osobie podpisać się na linii, mówiąc, jaki będzie poziom. Porozmawiaj z pięcioma lub 25 z nich. Ta odpowiedź jest przeznaczona dla studenta inżynierii lądowej pytającego „dlaczego”, a nie dla inżyniera inżyniera pytającego „jak”.
Myślę, że pytanie kryje się w pytaniu „jaki jest ekstremalny rozkład wartości?”. Tak, to niektóre symbole algebry. Więc co? dobrze?
Pomyślmy o powodziach trwających 1000 lat. Są duże.
Kiedy się zdarzy, zabiją wielu ludzi. Wiele mostów spada.
Wiesz, który most nie idzie w dół? Ja robię. Nie ... jeszcze.
Pytanie: Który most nie spadnie podczas powodzi na 1000 lat?
Odpowiedź: Most zaprojektowany, aby go wytrzymać.
Dane potrzebne do zrobienia tego po swojemu:
Powiedzmy, że masz 200 lat codziennych danych dotyczących wody. Czy jest tam 1000-letnia powódź? Nie zdalnie. Masz próbkę jednego ogona rozkładu. Nie masz populacji. Gdybyś znał całą historię powodzi, miałbyś całkowitą populację danych. Zastanówmy się nad tym. Ile lat danych potrzebujesz, ile próbek, aby mieć co najmniej jedną wartość, której prawdopodobieństwo wynosi 1 na 1000? W idealnym świecie potrzebujesz co najmniej 1000 próbek. W prawdziwym świecie panuje bałagan, więc potrzebujesz więcej. Zaczynasz otrzymywać kursy 50/50 przy około 4000 próbek. Zaczynasz mieć gwarancję posiadania więcej niż 1 przy około 20 000 próbek. Próbka nie oznacza „wody w jednej sekundzie w porównaniu do następnej”, ale miarę dla każdego unikalnego źródła zmienności - jak zmienność z roku na rok. Jeden środek w ciągu roku, wraz z innym środkiem w ciągu kolejnego roku stanowią dwie próbki. Jeśli nie masz 4000 lat dobrych danych, prawdopodobnie nie masz na przykład 1000-letniej powodzi w danych. Dobrą rzeczą jest to, że nie potrzebujesz tak dużo danych, aby uzyskać dobry wynik.
Oto, jak uzyskać lepsze wyniki przy mniejszej ilości danych:
jeśli spojrzysz na maksymalne wartości roczne, możesz dopasować „ekstremalny rozkład wartości” do 200 wartości poziomów maksymalnych w ciągu roku i uzyskasz rozkład obejmujący 1000-letnią powódź -poziom. Będzie to algebra, a nie faktyczne „jak duże to jest”. Możesz użyć równania, aby określić, jak duża będzie powódź na 1000 lat. Następnie, biorąc pod uwagę tę objętość wody - możesz zbudować swój most, aby się jej oprzeć. Nie strzelaj do dokładnej wartości, strzelaj do większej, w przeciwnym razie projektujesz, aby zawiodła podczas 1000-letniej powodzi. Jeśli masz odwagę, możesz użyć ponownego próbkowania, aby dowiedzieć się, o ile więcej na podstawie dokładnej wartości 1000 lat musisz ją zbudować, aby była odporna.
Oto dlaczego EV / GEV są odpowiednimi formami analitycznymi:
Uogólniony rozkład wartości ekstremalnych zależy od tego, jak bardzo zmienia się maksimum. Zmiana maksimum zachowuje się naprawdę inaczej niż zmiana średniej. Rozkład normalny, poprzez centralne twierdzenie graniczne, opisuje wiele „tendencji centralnych”.
Procedura:
- wykonać następujące 1000 razy:
i. wybierz 1000 liczb ze standardowego rozkładu normalnego
ii. oblicz maksimum dla tej grupy próbek i zapisz ją
teraz wykreśl rozkład wyniku
#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")
To NIE jest „standardowy rozkład normalny”:
Szczyt wynosi 3,2, ale maksimum idzie w górę do 5,0. Ma przekrzywienie. Nie spada poniżej około 2,5. Jeśli posiadasz rzeczywiste dane (normalna norma) i po prostu wybierasz ogon, wówczas losowo wybierasz coś wzdłuż tej krzywej. Jeśli ci się poszczęści, skieruj się w stronę centrum, a nie dolnego ogona. Inżynieria jest przeciwieństwem szczęścia - polega na konsekwentnym uzyskiwaniu pożądanych rezultatów za każdym razem. „ Liczby losowe są zdecydowanie zbyt ważne, aby pozostawić je przypadkowi ” (patrz przypis), szczególnie dla inżyniera. Rodzina funkcji analitycznych, która najlepiej pasuje do tych danych - rodzina ekstremalnych wartości rozkładów.
Przykład dopasowania:
Załóżmy, że mamy 200 losowych wartości maksymalnego roku ze standardowego rozkładu normalnego i zamierzamy udawać, że to nasza 200-letnia historia maksymalnych poziomów wody (cokolwiek to oznacza). Aby uzyskać dystrybucję, wykonaj następujące czynności:
- Próbkuj zmienną „store” (aby zrobić krótki / łatwy kod)
- pasuje do uogólnionego ekstremalnego rozkładu wartości
- znajdź średnią rozkładu
- użyj ładowania początkowego, aby znaleźć górny limit 95% CI w wariancie średniej, abyśmy mogli w tym celu ukierunkować naszą inżynierię.
(kod zakłada, że powyższe zostały uruchomione jako pierwsze)
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)
To daje wyniki:
> gevmle(y2)
loc scale shape
3.0965530 0.2957722 -0.1139021
Można je podłączyć do funkcji generowania, aby utworzyć 20 000 próbek
y3 <- rgev(20000,loc=myfit[1],scale=myfit[2],shape=myfit[3])
Postępowanie zgodnie z poniższymi instrukcjami da 50/50 szans na porażkę w dowolnym roku:
średnia (y3)
3,23681
Oto kod określający, jaki jest 1000-letni poziom „powodzi”:
p1000 <- qgev(1-(1/1000),loc=myfit[1],scale=myfit[2],shape=myfit[3])
p1000
Postępowanie zgodnie z poniższymi wskazówkami powinno dać ci 50/50 szans na porażkę podczas powodzi 1000 lat.
p1000
4.510931
Aby ustalić 95% górny CI, użyłem następującego kodu:
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)
Wynik był:
> mytarget
95%
4.812148
Oznacza to, że aby oprzeć się znacznej większości powodzi 1000 lat, biorąc pod uwagę, że Twoje dane są nieskazitelnie normalne (mało prawdopodobne), musisz zbudować dla ...
> out <- pgev(4.812148,loc=fit_d[1],scale=fit_d[2],shape=fit_d[3])
> 1/(1-out)
albo
> 1/(1-out)
shape
1077.829
... 1078 lat powodzi.
Dolne linie:
- masz próbkę danych, a nie rzeczywistą całkowitą populację. Oznacza to, że twoje kwantyle są szacunkowe i mogą być wyłączone.
- Rozkłady takie jak uogólniony rozkład wartości ekstremalnych są budowane w celu użycia próbek do ustalenia rzeczywistych ogonów. Szacują się znacznie gorzej niż przy szacowaniu wartości próbek, nawet jeśli nie masz wystarczającej liczby próbek do klasycznego podejścia.
- Jeśli jesteś solidny, sufit jest wysoki, ale wynikiem tego jest - nie zawiedziesz.
Powodzenia
PS:
PS: więcej zabawy - film na YouTube (nie mój)
https://www.youtube.com/watch?v=EACkiMRT0pc
Przypis: Coveyou, Robert R. „Generowanie liczb losowych jest zbyt ważne, aby pozostawić je przypadkowi”. Zastosowane prawdopodobieństwo i metody Monte Carlo oraz współczesne aspekty dynamiki. Studia z matematyki stosowanej 3 (1969): 70-111.
extreme value distribution
zamiast używaćthe overall distribution
danych, a nie uzyskać wartości 98,5%.