Для моего эксперимента у меня есть очень маленькие данные временных рядов с тремя столбцами, отформатированными следующим образом.Полный набор данных прилагается здесь для воспроизводимости, так как я не могу прикрепить файл к stackoverflow:
http://www.mediafire.com/file/el1tkrdun0j2dk4/testdata.csv/file
time X Y
0.040662 1.041667 1
0.139757 1.760417 2
0.144357 1.190104 1
0.145341 1.047526 1
0.145401 1.011882 1
0.148465 1.002970 1
.... ..... .
Мы хотели сделать сглаживание, и вот мой код
import matplotlib.pyplot as plt
from pykalman import KalmanFilter
import numpy as np
import pandas as pd
df = pd.read_csv('testdata.csv')
print(df)
pd.set_option('use_inf_as_null', True)
df.dropna(inplace=True)
X = df.drop('Y', axis=1)
y = df['Y']
d1= np.array(X)
d2 = np.array(y)
measurements = np.asarray(d1)
kf = KalmanFilter(transition_matrices=[1],
observation_matrices=[1],
initial_state_mean=measurements[0],
initial_state_covariance=1,
observation_covariance=5,
transition_covariance=1)
state_means, state_covariances = kf.filter(measurements)
state_std = np.sqrt(state_covariances[:,0])
print (state_std)
print (state_means)
print (state_covariances)
plt.plot(measurements, '-r', label='measurment')
plt.plot(state_means, '-g', label='kalman-filter output')
plt.legend(loc='upper left')
plt.show()
Если мы рассмотрим только столбцы X и Y, как я делал в моем коде выше, это дает следующий вывод графика
![enter image description here](https://i.stack.imgur.com/sn6ji.png)
Я хотел иметь первый столбец ('time
) (1-10) на x-axis
) и значения второго столбца (X) на y-axis
.
Однако, когда я пытаюсь добавить первый столбец в свой набор данных (time
), я получаю следующую ошибку
ValueError: The shape of all parameters is not consistent. Please re-check their values.
Как решитьЭта проблема?Любая помощь будет оценена.