Obliczanie predykcji a posteriori
Przed chwilą zbadałeś(-aś) a posteriori trend wagi \(Y\) wśród dorosłych o wzroście \(X = 180\): \(m\)180 \(= a + b * 180\). Ramka danych weight_chains zawiera 100 000 wartości \(m\)180 wiarygodnych a posteriori, które wyznaczono na podstawie odpowiednich wartości \(a\) i \(b\):
> head(weight_chains, 2)
a b s iter m_180
1 -113.9029 1.072505 8.772007 1 79.14803
2 -115.0644 1.077914 8.986393 2 78.96014
Zapomnij na chwilę o trendzie – co jeśli chcesz przewidzieć wagę konkretnej osoby dorosłej o wzroście 180 cm? To możliwe! Aby to zrobić, trzeba uwzględnić zmienność indywidualną względem trendu, którą modeluje:
\(Y\)180 \(\sim N(m\)180\(, s^2)\)
Korzystając z tego modelu, zasymuluj prognozy wagi dla każdego zestawu wiarygodnych parametrów a posteriori z weight_chains.
To ćwiczenie jest częścią kursu
Modelowanie bayesowskie z RJAGS
Instrukcje do ćwiczenia
- Użyj funkcji
rnorm(), aby zasymulować pojedynczą prognozę wagi dla ustawień parametrów z pierwszego wierszaweight_chains. - Powtórz powyższe dla ustawień parametrów z drugiego wiersza
weight_chains. - Zasymuluj pojedynczą prognozę wagi dla każdego z 100 000 zestawów parametrów w
weight_chains. Zapisz wyniki jako nową zmiennąY_180wweight_chains. - Wyświetl pierwsze 6 wierszy wartości parametrów i prognoz z
weight_chains.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Simulate 1 prediction under the first parameter set
rnorm(n = 1, mean = ___, sd = ___)
# Simulate 1 prediction under the second parameter set
rnorm(n = 1, mean = ___, sd = ___)
# Simulate & store 1 prediction under each parameter set
weight_chains <- weight_chains %>%
mutate(Y_180 = rnorm(n = 100000, mean = ___, sd = ___))
# Print the first 6 parameter sets & predictions