mirror of
https://github.com/saymrwulf/prophet.git
synced 2026-09-15 22:10:22 +00:00
Speed up stan fitting by removing unecessary parameter definitions
This commit is contained in:
parent
7c010aac51
commit
3bd372bc15
2 changed files with 30 additions and 32 deletions
|
|
@ -102,21 +102,6 @@ parameters {
|
||||||
vector[K] beta; // Regressor coefficients
|
vector[K] beta; // Regressor coefficients
|
||||||
}
|
}
|
||||||
|
|
||||||
transformed parameters {
|
|
||||||
vector[T] trend;
|
|
||||||
vector[T] Xb_a;
|
|
||||||
vector[T] Xb_m;
|
|
||||||
|
|
||||||
if (trend_indicator == 0) {
|
|
||||||
trend = linear_trend(k, m, delta, t, A, t_change);
|
|
||||||
} else if (trend_indicator == 1) {
|
|
||||||
trend = logistic_trend(k, m, delta, t, cap, A, t_change, S);
|
|
||||||
}
|
|
||||||
|
|
||||||
Xb_a = X * (beta .* s_a);
|
|
||||||
Xb_m = X * (beta .* s_m);
|
|
||||||
}
|
|
||||||
|
|
||||||
model {
|
model {
|
||||||
//priors
|
//priors
|
||||||
k ~ normal(0, 5);
|
k ~ normal(0, 5);
|
||||||
|
|
@ -126,5 +111,19 @@ model {
|
||||||
beta ~ normal(0, sigmas);
|
beta ~ normal(0, sigmas);
|
||||||
|
|
||||||
// Likelihood
|
// Likelihood
|
||||||
y ~ normal(trend .* (1 + Xb_m) + Xb_a, sigma_obs);
|
if (trend_indicator == 0) {
|
||||||
|
y ~ normal(
|
||||||
|
linear_trend(k, m, delta, t, A, t_change)
|
||||||
|
.* (1 + X * (beta .* s_m))
|
||||||
|
+ X * (beta .* s_a),
|
||||||
|
sigma_obs
|
||||||
|
);
|
||||||
|
} else if (trend_indicator == 1) {
|
||||||
|
y ~ normal(
|
||||||
|
logistic_trend(k, m, delta, t, cap, A, t_change, S)
|
||||||
|
.* (1 + X * (beta .* s_m))
|
||||||
|
+ X * (beta .* s_a),
|
||||||
|
sigma_obs
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -102,21 +102,6 @@ parameters {
|
||||||
vector[K] beta; // Regressor coefficients
|
vector[K] beta; // Regressor coefficients
|
||||||
}
|
}
|
||||||
|
|
||||||
transformed parameters {
|
|
||||||
vector[T] trend;
|
|
||||||
vector[T] Xb_a;
|
|
||||||
vector[T] Xb_m;
|
|
||||||
|
|
||||||
if (trend_indicator == 0) {
|
|
||||||
trend = linear_trend(k, m, delta, t, A, t_change);
|
|
||||||
} else if (trend_indicator == 1) {
|
|
||||||
trend = logistic_trend(k, m, delta, t, cap, A, t_change, S);
|
|
||||||
}
|
|
||||||
|
|
||||||
Xb_a = X * (beta .* s_a);
|
|
||||||
Xb_m = X * (beta .* s_m);
|
|
||||||
}
|
|
||||||
|
|
||||||
model {
|
model {
|
||||||
//priors
|
//priors
|
||||||
k ~ normal(0, 5);
|
k ~ normal(0, 5);
|
||||||
|
|
@ -126,5 +111,19 @@ model {
|
||||||
beta ~ normal(0, sigmas);
|
beta ~ normal(0, sigmas);
|
||||||
|
|
||||||
// Likelihood
|
// Likelihood
|
||||||
y ~ normal(trend .* (1 + Xb_m) + Xb_a, sigma_obs);
|
if (trend_indicator == 0) {
|
||||||
|
y ~ normal(
|
||||||
|
linear_trend(k, m, delta, t, A, t_change)
|
||||||
|
.* (1 + X * (beta .* s_m))
|
||||||
|
+ X * (beta .* s_a),
|
||||||
|
sigma_obs
|
||||||
|
);
|
||||||
|
} else if (trend_indicator == 1) {
|
||||||
|
y ~ normal(
|
||||||
|
logistic_trend(k, m, delta, t, cap, A, t_change, S)
|
||||||
|
.* (1 + X * (beta .* s_m))
|
||||||
|
+ X * (beta .* s_a),
|
||||||
|
sigma_obs
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue