Próbuję obliczyć 95% wiarygodny przedział czasu następującego rozkładu tylnego. Nie mogłem znaleźć dla niej funkcji w R, ale czy poniższe podejście jest prawidłowe?
x <- seq(0.4,12,0.4)
px <- c(0,0, 0, 0, 0, 0, 0.0002, 0.0037, 0.018, 0.06, 0.22 ,0.43, 0.64,0.7579, 0.7870, 0.72, 0.555, 0.37, 0.24, 0.11, 0.07, 0.02, 0.009, 0.005, 0.0001, 0,0.0002, 0, 0, 0)
plot(x,px, type="l")
mm <- sum(x*px)/sum(px)
var <- (sum((x)^2*px)/sum(px)) - (mm^2)
cat("95% credible interval: ", round(mm -1.96*sqrt(var),3), "-", round(mm + 1.96*sqrt(var),3),"\n")
bayesian
descriptive-statistics
credible-interval
użytkownik19758
źródło
źródło
Odpowiedzi:
Jak zauważył Henry , zakładasz rozkład normalny i jest całkowicie w porządku, jeśli twoje dane są zgodne z rozkładem normalnym, ale będzie niepoprawny, jeśli nie możesz założyć dla niego rozkładu normalnego. Poniżej opisuję dwa różne podejścia, które można zastosować do nieznanego rozkładu, biorąc pod uwagę tylko punkty danych
x
i towarzyszące im szacunki gęstościpx
.Pierwszą rzeczą do rozważenia jest to, co dokładnie chcesz podsumować za pomocą interwałów. Na przykład, możesz być zainteresowany interwałami uzyskanymi za pomocą kwantyli, ale możesz również być zainteresowany regionem o największej gęstości (zobacz tutaj lub tutaj ) swojej dystrybucji. Chociaż nie powinno to robić dużej różnicy (jeśli w ogóle) w prostych przypadkach, takich jak dystrybucje symetryczne, unimodalne, będzie to miało znaczenie dla bardziej „skomplikowanych” dystrybucji. Zasadniczo kwantyle podadzą przedział zawierający masę prawdopodobieństwa skoncentrowaną wokół mediany (środkowy twojego rozkładu), podczas gdy region o największej gęstości to obszar wokół trybów100α% dystrybucji. Będzie to wyraźniejsze, jeśli porównasz dwie wykresy na poniższym obrazku - kwantyle „wycinają” rozkład w pionie, a region o największej gęstości „wycina” go w poziomie.
Następną rzeczą do rozważenia jest sposób radzenia sobie z faktem, że masz niepełne informacje o rozkładzie (zakładając, że mówimy o ciągłym rozkładzie, masz tylko kilka punktów, a nie funkcję). Co możesz z tym zrobić, to wziąć wartości „takie, jakie są” lub użyć jakiegoś rodzaju interpolacji lub wygładzenia, aby uzyskać wartości „pomiędzy”.
Jednym podejściem byłoby użycie interpolacji liniowej (patrz
?approxfun
R) lub alternatywnie coś bardziej gładkiego jak splajny (patrz?splinefun
R). Jeśli wybierzesz takie podejście, musisz pamiętać, że algorytmy interpolacji nie mają wiedzy domenowej o twoich danych i mogą zwracać nieprawidłowe wyniki, takie jak wartości poniżej zera itp.Drugim podejściem, które można rozważyć, jest użycie rozkładu gęstości / mieszanki jądra w celu przybliżenia dystrybucji przy użyciu posiadanych danych. Trudność polega na tym, aby zdecydować o optymalnej przepustowości.
Następnie znajdziesz przedziały zainteresowania. Możesz postępować numerycznie lub symulacyjnie.
1a) Pobieranie próbek w celu uzyskania interwałów kwantylowych
1b) Pobieranie próbek w celu uzyskania regionu o największej gęstości
2a) Znajdź kwantyle numerycznie
2b) Znajdź region o największej gęstości numerycznie
Jak widać na poniższych wykresach, w przypadku unimodalnego, symetrycznego rozkładu obie metody zwracają ten sam interwał.
Oczywiście możesz także spróbować znaleźć interwał wokół jakiejś centralnej wartości, takiej jak i użyć pewnego rodzaju optymalizacji, aby znaleźć odpowiednią , ale dwa opisane powyżej podejścia wydają się być stosowane częściej i są bardziej intuicyjne.100α% Pr(X∈μ±ζ)≥α ζ
źródło