You are on page 1of 28

Model ze stałą Podstawy języka R Bayesowska analiza modelu ze stałą

Ekonometria Bayesowska
Wykład 2: Bayesowska analiza równania ze stałą (N)
i składnikiem losowym (N). Pakiet rstan

Andrzej Torój

Instytut Ekonometrii – Zakład Ekonometrii Stosowanej

Andrzej Torój Instytut Ekonometrii – Zakład Ekonometrii Stosowanej


(2) Ekonometria Bayesowska 1 / 28
Model ze stałą Podstawy języka R Bayesowska analiza modelu ze stałą

Plan wykładu

1 Model ze stałą

2 Podstawy języka R

3 Bayesowska analiza modelu ze stałą

Andrzej Torój Instytut Ekonometrii – Zakład Ekonometrii Stosowanej


(2) Ekonometria Bayesowska 2 / 28
Model ze stałą Podstawy języka R Bayesowska analiza modelu ze stałą

Plan prezentacji

1 Model ze stałą

2 Podstawy języka R

3 Bayesowska analiza modelu ze stałą

Andrzej Torój Instytut Ekonometrii – Zakład Ekonometrii Stosowanej


(2) Ekonometria Bayesowska 3 / 28
Model ze stałą Podstawy języka R Bayesowska analiza modelu ze stałą

Specyfikacja modelu

Model ze stałą
Rozważmy absurdalnie prosty model ekonometryczny:

ε ∼ N 0, σ 2 i.i.d.

yi = c + εi ,

c – jedyny nieznany parametr (dlatego model jest prosty, z samą stałą –


chodzi o ustalenie poziomu zjawiska). Ustalamy dla niego rozkład a priori:
 
c ∼ N µc , σc2

Model jest absurdalnie prosty, bo dodatkowo zakładamy znajomość


wariancji składnika losowego (σ 2 ), co jest rzadkie w praktyce. Pozwala to
jednak uprościć model na tyle, byśmy przejrzyście prześledzili schemat
rozumowania bayesowskiego. (Wkrótce poznamy bardziej praktyczną
wersję.)
Andrzej Torój Instytut Ekonometrii – Zakład Ekonometrii Stosowanej
(2) Ekonometria Bayesowska 4 / 28
Model ze stałą Podstawy języka R Bayesowska analiza modelu ze stałą

Specyfikacja modelu

Rozkład normalny
Dotyczy zmiennych losowych o
wartościach rzeczywistych.
Opisują go dwa parametry: µ i σ 2
(odpowiednio wartość oczekiwana i
wariancja).
Funkcja gęstości:
(x−µ)2
f (x) = √1 e − 2σ 2 .
σ 2π

Zatem w naszym przykładzie gęstość a priori dla parametru c:

(c−µc )2
1 −
2σc2
f (c) = √ e
σc 2π
Andrzej Torój Instytut Ekonometrii – Zakład Ekonometrii Stosowanej
(2) Ekonometria Bayesowska 5 / 28
Model ze stałą Podstawy języka R Bayesowska analiza modelu ze stałą

Specyfikacja modelu

Gęstość próbkowa
Przy niezależnych obserwacjach (jak w poprzednim przykładzie o
Euro 2016) jest to iloczyn wartości funkcji wiarygodności dla
każdego elementu w próbie, warunkowo względem określonej
wartości parametru:
n
Y
f (ε|c) = f (εi |c) =
i=1
n
(εi −0)2
X
− 12
σ2
= √1 n e i=1 =
(σ 2π)
n
(yi −c )2
X
− 12
σ2
= √1 n e i=1 = f (y |c)
(σ 2π)
Andrzej Torój Instytut Ekonometrii – Zakład Ekonometrii Stosowanej
(2) Ekonometria Bayesowska 6 / 28
Model ze stałą Podstawy języka R Bayesowska analiza modelu ze stałą

Gęstość a posteriori

Gęstość a posteriori (1)

Zgodnie z twierdzeniem Bayesa:


f (y |c)·f (c)
f (c|y ) = Z =
f (y |c) · f (c) · dc
R
| {z }
A
n
(yi −c )2
X
− 21 σ2 (c−µc )2
− 2σc2
1 √1 1
= A (σ 2π )n e
i=1
σc


e =
n
 
(yi −c )2 (c−µc )2 
X
− 12  +

σ2 σ2

c
1 √1 1
= A (σ 2π )n σc 2π e
√ i=1

Andrzej Torój Instytut Ekonometrii – Zakład Ekonometrii Stosowanej


(2) Ekonometria Bayesowska 7 / 28
Model ze stałą Podstawy języka R Bayesowska analiza modelu ze stałą

Gęstość a posteriori

Gęstość a posteriori (2)

n
X n
X
yi2 −2c yi +nc 2
n
X (y −c)2i (c−µc )2 i=1 i=1 c 2 −2cµc +µ2
c
σ2
+ σc2
= σ2
+ σc2
=
i=1 
n
X
  n
X

n 1 yi2 −2c ȳ +c 2  nσc2  1 yi2 −2c ȳ +c 2 +σ 2 (c 2 −2cµc +µ2


c)
   
n n
i=1 c 2 −2cµc +µ2
c i=1
= σ2
+ σc2
= σ 2 σc2
=
 n
X 
 σ2 yi2 +σ 2 µ2 
!  c c 
σc2 nȳ +σ 2 µc

c 2 −2c +
 i=1 
 n 
nσc2 +σ 2

 nσ 2 +σ 2


X c
nσc2 +σ 2 2
σc2 nȳ +σ 2 µc 2
yi2 +σ 2 µ2
 
( )c −2c ( )+
 σc c
 



i=1
= σ 2 σc2
= σ 2 σc2
=
nσc2 +σ 2

= ...

Andrzej Torój Instytut Ekonometrii – Zakład Ekonometrii Stosowanej


(2) Ekonometria Bayesowska 8 / 28
Model ze stałą Podstawy języka R Bayesowska analiza modelu ze stałą

Gęstość a posteriori

Gęstość a posteriori (3)


Xn 
2 2 2 2
!2  σc yi + σ µc 
σc2 nȳ +σ 2 µc
!
σc2 nȳ +σ 2 µc
!2 σc2 nȳ + σ 2 µc  i=1

c 2 −2c + − + 
nσc2 +σ 2 nσc2 +σ 2
nσc2 + σ 2 
 nσc2 + σ 2 

| {z }
B
... = 1 =
1 + n
σc2 σ 2
!2
σc2 nȳ +σ 2 µc
c− +B
nσc2 +σ 2
= 1
1 + n
σc2 σ 2

Andrzej Torój Instytut Ekonometrii – Zakład Ekonometrii Stosowanej


(2) Ekonometria Bayesowska 9 / 28
Model ze stałą Podstawy języka R Bayesowska analiza modelu ze stałą

Gęstość a posteriori

Gęstość a posteriori (4)


2
σc2 nȳ +σ 2 µc
 
 c− 2
nσc +σ 2
 +B 
−1
 
1
 
2 
 1 + n 
1 1 1 σc2 σ 2
f (c|y ) = √ √
A (σ 2π )n σc 2π
e =
 w .o. rozkladu N 2
 z }| {
σc2 nȳ + σ 2 µc 
 

 
 
c− 


 nσc2 + σ 2  

 
 


1

1 n
σc2
+ σ2
−B nσc2 +σ 2
 
( )
 1 √1 n √1 | {z }
2σ 2 σc2
= e e wariancja rozkladu N
A σ 2π σc 2π
| {z }
stala niezale żna od c

Rozkład a posteriori to również rozkład normalny.


Andrzej Torój Instytut Ekonometrii – Zakład Ekonometrii Stosowanej
(2) Ekonometria Bayesowska 10 / 28
Model ze stałą Podstawy języka R Bayesowska analiza modelu ze stałą

Gęstość a posteriori

Gęstość a posteriori (5)


σc2 nȳ +σ 2 µc nσc2 σ2
µc = nσc2 +σ 2
= nσc2 +σ 2
ȳ + µ
nσc2 +σ 2 c

Wartość oczekiwana a posteriori to średnia ważona wartości


oczekiwanej a priori i średniej z próby.
Waga średniej z próby rośnie wraz z wielkością próby i z
wariancją a priori.
Waga średniej a priori rośnie wraz z wariancją danych.
1
σc2 = 1
+ n2
σc2 σ

Wariancja a posteriori:
rośnie wraz z wariancją a priori i wariancją danych;
maleje wraz z wielkością próby.

Andrzej Torój Instytut Ekonometrii – Zakład Ekonometrii Stosowanej


(2) Ekonometria Bayesowska 11 / 28
Model ze stałą Podstawy języka R Bayesowska analiza modelu ze stałą

Plan prezentacji

1 Model ze stałą

2 Podstawy języka R

3 Bayesowska analiza modelu ze stałą

Andrzej Torój Instytut Ekonometrii – Zakład Ekonometrii Stosowanej


(2) Ekonometria Bayesowska 12 / 28
Model ze stałą Podstawy języka R Bayesowska analiza modelu ze stałą

Potrzebne pakiety

Do analiz bayesowskich będziemy wykorzystywać program R.


Potrzebna nam będzie również aplikacja interfejsu R Studio.
Na razie, oprócz „bazowych” pakietów R, będzie dodatkowo
korzystać z pakietu manipulate – ten pakiet pozwala tworzyć
interaktywne wykresy (pozwalające efektywnie śledzić zmiany
rozkładów a posteriori przy zmianach parametrów a priori).
W dalszej kolejności przydadzą nam się również pakiet rstan (i
wymagane przez niego narzędzie Rtools). Jego instalacja i
wstępna konfiguracja w osobnym kodzie (zob. WWW).

Andrzej Torój Instytut Ekonometrii – Zakład Ekonometrii Stosowanej


(2) Ekonometria Bayesowska 13 / 28
Model ze stałą Podstawy języka R Bayesowska analiza modelu ze stałą

Potrzebne pakiety

Instalacja i ładowanie pakietów

Aby zainstalować pakiet manipulate:


install.packages("manipulate")
Aby wprowadzić go do pamięci i bieżącego użytku:
library(manipulate)
Wygodnie jest też ustalić folder sieciowy – w domu dowolnie,
na zajęciach najlepiej na przenośnym dysku lub własnej
przestrzeni na dysku sieciowym, na przykład:
setwd("C:/ekonometria_bayesowska/wyklad02")

Andrzej Torój Instytut Ekonometrii – Zakład Ekonometrii Stosowanej


(2) Ekonometria Bayesowska 14 / 28
Model ze stałą Podstawy języka R Bayesowska analiza modelu ze stałą

Zadanie

Co chcemy zrobić?

Przekonajmy się, jak będzie wyglądać rozkład a posteriori c w


omawianym przykładzie.
Wiemy, że σ 2 = 1. Powiedzmy też, że naszą wiedzę a priori o
c opiszemy rozkładem normalnym:
µc = 0
σc2 = 0, 3
W praktyce mielibyśmy do dyspozycji wektor danych
 T
y = y1 y2 ... yn . W naszym przypadku wyznaczymy
go symulacyjnie, ustalając c, n i losując
ε1 , ..., εn ∼ i.i.d. N(0, σ 2 ). Przyjmijmy więc „prawdziwe”
c = 0, 5 (zauważmy, że to inna wartość niż średnia a priori - a
więc nasza wiedza a priori jest zniekształcona) oraz n = 20.
Andrzej Torój Instytut Ekonometrii – Zakład Ekonometrii Stosowanej
(2) Ekonometria Bayesowska 15 / 28
Model ze stałą Podstawy języka R Bayesowska analiza modelu ze stałą

Zadanie

Generujemy skalar lub wektor

Generujemy skalar o zadanej wartości:


c_true <- 0.5
Generujemy wektor:
o znanych wartościach 1, 2, 3:
u=c(1, 2, 3)
o jednej wartości, np. siedem zer:
v=rep(0, 7)
ciąg arytmetyczny o za
c <- seq(from = -1.5, to = 1.5, by = 0.01)
Sprawdzamy w pomocy, jak działa polecenie:
?seq

Andrzej Torój Instytut Ekonometrii – Zakład Ekonometrii Stosowanej


(2) Ekonometria Bayesowska 16 / 28
Model ze stałą Podstawy języka R Bayesowska analiza modelu ze stałą

Zadanie

Funkcje gęstości

Wektor n liczb losowych z rozkładu normalnego o średniej A i


odchyleniu standardowym B:
y <- rnorm(n, mean = A, sd = B)
Wartość gęstości dla liczby x z rozkładu normalnego o średniej
A i odchyleniu standardowym B:
v <- dnorm(x, mean = A, sd = B)
Na podobnej zasadzie posługiwaliśmy się poprzednio
poleceniami rbeta i dbeta.

Andrzej Torój Instytut Ekonometrii – Zakład Ekonometrii Stosowanej


(2) Ekonometria Bayesowska 17 / 28
Model ze stałą Podstawy języka R Bayesowska analiza modelu ze stałą

Zadanie

Wykresy

plot – tworzy wykres liniowy lub punktowy


lines – dodaje do ostatnio utworzonego wykresu dodatkową
linię
polygon – dodaje wykres powierzchniowy
abline – dodaje prostą linię
text – dodaje pole tekstowe
legend – dodaje legendę

Szczegóły w kodzie.

Andrzej Torój Instytut Ekonometrii – Zakład Ekonometrii Stosowanej


(2) Ekonometria Bayesowska 18 / 28
Model ze stałą Podstawy języka R Bayesowska analiza modelu ze stałą

Zadanie

Wykresy interaktywne

manipulate (
{plot(x,y,...)
...} #Polecenia tworzące wykres
y <- f(x,a) #Polecenia przetwarzające parametry
a <- slider(od, do, step = ..., initial = ...)
#Parametry
)

Andrzej Torój Instytut Ekonometrii – Zakład Ekonometrii Stosowanej


(2) Ekonometria Bayesowska 19 / 28
Model ze stałą Podstawy języka R Bayesowska analiza modelu ze stałą

Zadanie

Zapisywanie wykresów do pliku

png(file = "tytul.png", width = ..., height = ..., res


= ...)
manipulate (...
...)
dev.off()

Andrzej Torój Instytut Ekonometrii – Zakład Ekonometrii Stosowanej


(2) Ekonometria Bayesowska 20 / 28
Model ze stałą Podstawy języka R Bayesowska analiza modelu ze stałą

Plan prezentacji

1 Model ze stałą

2 Podstawy języka R

3 Bayesowska analiza modelu ze stałą

Andrzej Torój Instytut Ekonometrii – Zakład Ekonometrii Stosowanej


(2) Ekonometria Bayesowska 21 / 28
Model ze stałą Podstawy języka R Bayesowska analiza modelu ze stałą

Analitycznie

Rozkład a priori

Andrzej Torój Instytut Ekonometrii – Zakład Ekonometrii Stosowanej


(2) Ekonometria Bayesowska 22 / 28
Model ze stałą Podstawy języka R Bayesowska analiza modelu ze stałą

Analitycznie

Rozkład a posteriori

Andrzej Torój Instytut Ekonometrii – Zakład Ekonometrii Stosowanej


(2) Ekonometria Bayesowska 23 / 28
Model ze stałą Podstawy języka R Bayesowska analiza modelu ze stałą

Analitycznie

Pytania

1 Co się dzieje przy wzroście średniej a priori dla c?


2 Co się dzieje przy wzroście wariancji a priori dla c?
3 Co się dzieje przy wzroście σ 2 ?
4 Co się dzieje przy wzroście n?

Andrzej Torój Instytut Ekonometrii – Zakład Ekonometrii Stosowanej


(2) Ekonometria Bayesowska 24 / 28
Model ze stałą Podstawy języka R Bayesowska analiza modelu ze stałą

Numerycznie

rstan – wywołanie przykładu

Andrzej Torój Instytut Ekonometrii – Zakład Ekonometrii Stosowanej


(2) Ekonometria Bayesowska 25 / 28
Model ze stałą Podstawy języka R Bayesowska analiza modelu ze stałą

Numerycznie

rstan – plik z modelem

Andrzej Torój Instytut Ekonometrii – Zakład Ekonometrii Stosowanej


(2) Ekonometria Bayesowska 26 / 28
Model ze stałą Podstawy języka R Bayesowska analiza modelu ze stałą

Numerycznie

rstan – wyniki

Andrzej Torój Instytut Ekonometrii – Zakład Ekonometrii Stosowanej


(2) Ekonometria Bayesowska 27 / 28
Model ze stałą Podstawy języka R Bayesowska analiza modelu ze stałą

Numerycznie

Dostępne pakiety i metody

Poza rstan, warte uwagi mogą okazać się pakiety bazujące na


innych rozwiązaniach:
rjags / R2jags
jags.model oraz jags.samples z pakietu rjags
jags / jags2 / jags.parallel z pakietu R2jags
jags.fit i jags.parfit z pakietu dclone
LaplaceDemon
nimble
...

Andrzej Torój Instytut Ekonometrii – Zakład Ekonometrii Stosowanej


(2) Ekonometria Bayesowska 28 / 28

You might also like