add practice
This commit is contained in:
parent
3199ce93bd
commit
4716dd866f
16
PA/code/stationary diff.py
Normal file
16
PA/code/stationary diff.py
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
def difference(timeseries, interval=1):
|
||||||
|
diff = []
|
||||||
|
for i in range(interval, len(timeseries)):
|
||||||
|
value = timeseries[i] - timeseries[i - interval]
|
||||||
|
diff.append(value)
|
||||||
|
return np.array(diff)
|
||||||
|
|
||||||
|
diff_ts = difference(trend_ts)
|
||||||
|
|
||||||
|
plt.figure(figsize=(12, 6))
|
||||||
|
plt.plot(time[1:], diff_ts, label='Äèôôåðåíöèðîâàííûé ðÿä')
|
||||||
|
plt.legend()
|
||||||
|
plt.title('Ðÿä ïîñëå äèôôåðåíöèðîâàíèÿ')
|
||||||
|
plt.show()
|
||||||
|
|
||||||
|
adf_test(diff_ts)
|
8
PA/code/stationary log.py
Normal file
8
PA/code/stationary log.py
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
volatile_ts = np.exp(np.linspace(0, 2, n)) * np.random.normal(size=n)
|
||||||
|
|
||||||
|
plt.figure(figsize=(12, 6))
|
||||||
|
plt.plot(time, volatile_ts, label='Èñõîäíûé ðÿä')
|
||||||
|
plt.plot(time, np.log(volatile_ts), label='Ëîãàðèôìèðîâàííûé ðÿä')
|
||||||
|
plt.legend()
|
||||||
|
plt.title('Ëîãàðèôìè÷åñêîå ïðåîáðàçîâàíèå')
|
||||||
|
plt.show()
|
12
PA/code/stationary season.py
Normal file
12
PA/code/stationary season.py
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# Ñîçäàåì ñåçîííûé ðÿä
|
||||||
|
seasonal_ts = 5 * np.sin(np.linspace(0, 10*np.pi, n)) + np.linspace(0, 5, n) + np.random.normal(size=n)
|
||||||
|
|
||||||
|
# Ñåçîííîå äèôôåðåíöèðîâàíèå ñ ïåðèîäîì 30 äíåé
|
||||||
|
seasonal_diff = seasonal_ts[30:] - seasonal_ts[:-30]
|
||||||
|
|
||||||
|
plt.figure(figsize=(12, 6))
|
||||||
|
plt.plot(time, seasonal_ts, label='Èñõîäíûé ðÿä')
|
||||||
|
plt.plot(time[30:], seasonal_diff, label='Ñåçîííî äèôôåðåíöèðîâàííûé ðÿä')
|
||||||
|
plt.legend()
|
||||||
|
plt.title('Ñåçîííîå äèôôåðåíöèðîâàíèå')
|
||||||
|
plt.show()
|
39
PA/code/stationary test.py
Normal file
39
PA/code/stationary test.py
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
import pandas as pd
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
import numpy as np
|
||||||
|
from statsmodels.tsa.stattools import adfuller, kpss
|
||||||
|
|
||||||
|
|
||||||
|
# Ïðèìåð âðåìåííîãî ðÿäà
|
||||||
|
np.random.seed(42)
|
||||||
|
n = 100
|
||||||
|
time = pd.date_range(start='2020-01-01', periods=n, freq='D')
|
||||||
|
stationary_ts = np.random.normal(loc=0, scale=1, size=n)
|
||||||
|
trend_ts = np.linspace(0, 10, n) + stationary_ts
|
||||||
|
|
||||||
|
plt.figure(figsize=(12, 6))
|
||||||
|
plt.plot(time, stationary_ts, label='Ñòàöèîíàðíûé ðÿä')
|
||||||
|
plt.plot(time, trend_ts, label='Íåñòàöèîíàðíûé ðÿä ñ òðåíäîì')
|
||||||
|
plt.legend()
|
||||||
|
plt.title('Âèçóàëüíàÿ ïðîâåðêà ñòàöèîíàðíîñòè')
|
||||||
|
plt.show()
|
||||||
|
|
||||||
|
def adf_test(timeseries):
|
||||||
|
print("Ðåçóëüòàòû òåñòà Äèêè-Ôóëëåðà:")
|
||||||
|
dftest = adfuller(timeseries, autolag='AIC')
|
||||||
|
dfoutput = pd.Series(dftest[0:4],
|
||||||
|
index=['Òåñòîâàÿ ñòàòèñòèêà', 'p-value',
|
||||||
|
'Êîëè÷åñòâî ëàãîâ', 'Êîëè÷åñòâî íàáëþäåíèé'])
|
||||||
|
for key, value in dftest[4].items():
|
||||||
|
dfoutput[f'Êðèòè÷åñêîå çíà÷åíèå ({key})'] = value
|
||||||
|
print(dfoutput)
|
||||||
|
|
||||||
|
if dftest[1] <= 0.05:
|
||||||
|
print("Âûâîä: ðÿä ñòàöèîíàðíûé (îòâåðãàåì H0)")
|
||||||
|
else:
|
||||||
|
print("Âûâîä: ðÿä íåñòàöèîíàðíûé (íå îòâåðãàåì H0)")
|
||||||
|
|
||||||
|
|
||||||
|
adf_test(stationary_ts)
|
||||||
|
print("\n")
|
||||||
|
adf_test(trend_ts)
|
BIN
PA/datasets/NN3_COMPLETE.xls
Normal file
BIN
PA/datasets/NN3_COMPLETE.xls
Normal file
Binary file not shown.
BIN
PA/datasets/NN3_REDUCED.xls
Normal file
BIN
PA/datasets/NN3_REDUCED.xls
Normal file
Binary file not shown.
BIN
PA/datasets/cif-dataset.xls
Normal file
BIN
PA/datasets/cif-dataset.xls
Normal file
Binary file not shown.
BIN
PA/datasets/statistic.xls
Normal file
BIN
PA/datasets/statistic.xls
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
PA/Практические задания.docx
Normal file
BIN
PA/Практические задания.docx
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user