Пример #1
0
reg.ss.parameters.set_parameter("sigx0_i", value=1.0, transform="fixed")

out = reg.fit(t, y, u, 'foh')

# compute log-likelihood on validation dataset
yp = df['south_T'][start_valid:stop_valid].values[np.newaxis, :]
y0p = y[0, -1] / 100
tp = np.arange(0, dt * yp.shape[1], dt)
reg.ss.parameters.set_parameter("x0_i", value=y0p, transform="fixed")
up = df[['Ambient temperature',
         'north_T',
         'Solar radiation: global horizontal',
         'south_H',
         'vent2_H']][start_valid:stop_valid].values.T

reg.eval_log_likelihood(tp, yp, up, 'foh')

reg.ss.parameters.set_parameter("x0_i", value=y0, transform="fixed")

upred = df[['Ambient temperature',
            'north_T',
            'Solar radiation: global horizontal',
            'south_H',
            'vent2_H']][start_fit:stop_valid].values.T

df["south_T_pred"] = df["south_T"].copy()
df["south_T_pred"][start_valid:stop_valid] = np.nan
tpred = np.arange(0, dt * upred.shape[1], dt)
ypred = df["south_T_pred"].values[np.newaxis, :]

y_mean, y_std = reg.predict(tpred, tpred, ypred, upred, 'foh', smooth=False)
Пример #2
0
]
outputs = 'south_T'

out = reg.fit(df=df[start_fit:stop_fit], inputs=inputs, outputs=outputs)

# compute log-likelihood on validation dataset
x, P = reg.estimate_states(df=df[start_fit:stop_fit],
                           inputs=inputs,
                           outputs=outputs)

x0v = x[-1, :, :]
P0v = np.linalg.cholesky(P[-1, :, :]).T

reg.eval_log_likelihood(df=df[start_valid:stop_valid],
                        inputs=inputs,
                        outputs=outputs,
                        x0=x0v,
                        P0=P0v)

y_mean, y_std = reg.predict(df=df[start_valid:stop_valid],
                            inputs=inputs,
                            x0=x0v,
                            P0=P0v)

dfp = df[start_valid:stop_valid].copy()
dfp['yp'] = y_mean
dfp['lower'] = y_mean - 1.96 * y_std
dfp['upper'] = y_mean + 1.96 * y_std

fig, axes = plt.subplots(nrows=1, ncols=1, sharex=True, sharey=True)
axes.plot(dfp.index, dfp['south_T'], 'k', lw=2)