You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If I fit model (1) with dlm package in R with same y series, I get the following estimates of Vt and Wt
0.55 0.23
Which are very close to the original sigma2_v and sigma2_w from which the y series has been simulated.
I am unable to recover the similar values using pydlm.
Can you please help me out with this problem?
Why does pydlm give Vt and Wt across all time points given they are assumed to be constant ?
The text was updated successfully, but these errors were encountered:
SmitRohan
changed the title
R and Python different results-
R and Python different results
Jan 5, 2021
I am trying to fit the following model (local level model) using pydlm package in Python-
Yt = θt + vt, vt ∼ N(0, Vt),
θt = θt−1 + wt, wt ∼ N(0,Wt) …….(1)
I have simulated the above model in python with the following values for Vt and Wt-
sigma2_v = 0.5 ………..(2)
sigma2_w = 0.25 ……….(3)
x0 = 0
t = 500
t_burn = 100
t_tot = t + t_burn
y_tot = np.zeros(t_tot)
x_tot = np.zeros(t_tot)
v = np.random.normal(0, sqrt(sigma2_v), t_tot)
w = np.random.normal(0, sqrt(sigma2_w), t_tot)
x_tot[0] = x0 + w[0]
y_tot[0] = x_tot[0] + v[0]
for i in range(1,t_tot):
x_tot[i] = x_tot[i - 1] + w[i]
y_tot[i] = x_tot[i] + v[i]
I am using the following argument to fit model (1) in pydlm
myDLM1 = dlm(y_tot)
trend1 = trend(degree=0, discount=0.99, name = 'trend')
myDLM1 = myDLM1 + trend1
myDLM1.tune(maxit = 100)
myDLM1.fit()
Below are my values for Vt and Wt-
var_v = myDLM1.getVar(filterType='forwardFilter')
var_v
0.996619
0.771301
1.183684
0.910351
0.774972
.. ...
1.003247
1.003131
1.001465
0.999822
0.999866
var_w = myDLM1.getVar(filterType='forwardFilter', name = 'trend')
var_w
0.496571
0.285149
0.370662
0.257496
0.205303
.. ...
0.231519
0.231492
0.231107
0.230728
0.230738
Questions-
0.55 0.23
Which are very close to the original sigma2_v and sigma2_w from which the y series has been simulated.
I am unable to recover the similar values using pydlm.
Can you please help me out with this problem?
The text was updated successfully, but these errors were encountered: