Svijet analize podataka često zahtijeva rad s podacima vremenskih serija, a uobičajena tehnika koja se koristi u rukovanju takvim podacima je korištenje koncepta rolo prozor. Pokretni prozor, koji se ponekad naziva i pokretni prozor ili klizni prozor, pristup je koji nam omogućuje segmentiranje našeg skupa podataka u manje dijelove, njihovu obradu i dobivanje korisnih uvida iz rezultirajuće podserije. Ova se moćna tehnika naširoko koristi u financijama, predviđanju i analizi trendova, što je čini vrijednom vještinom koju morate imati u svom analitičkom alatu. U ovom ćemo članku istražiti koncept pokretnog prozora, uhvatiti se u koštac s problemom, rastaviti njegovo rješenje na lako razumljive korake i raspravljati o povezanim Python bibliotekama i funkcijama koje nam mogu olakšati život.
Izjava o problemu
Pretpostavimo da imamo skup podataka vremenske serije koji sadrži dnevne podatke o prodaji maloprodajne trgovine za godinu dana. Naš je zadatak analizirati ovaj skup podataka i izračunati 7-dnevni tekući prosjek prodaje kako bismo izgladili potencijalne anomalije, identificirali trendove i vodili poslovne odluke. Koristit ćemo Python, dobro poznati i naširoko korišteni programski jezik za analizu podataka.
Pristup rješenju
Da bismo riješili problem rolling window-a, slijedit ćemo ove korake:
- Uvezite potrebne biblioteke
- Učitajte skup podataka
- Napravite pokretni prozor
- Izračunajte 7-dnevni pomični prosjek
- Vizualizirajte rezultate
Počnimo s uvozom potrebnih biblioteka i učitavanjem skupa podataka.
import pandas as pd import numpy as np import matplotlib.pyplot as plt # Load dataset (Assuming the dataset is a CSV file) data = pd.read_csv('sales_data.csv') # Preview the dataset print(data.head())
Nakon učitavanja skupa podataka, sada nastavljamo sa stvaranjem pokretnog prozora.
Stvaranje Rolling Window
Okrećemo se moćnicima pande knjižnica za stvaranje pokretnog prozora pomoću rolling()
funkcija. Pokretni prozor će imati veličinu od 7 dana, jer želimo izračunati 7-dnevni pomični prosjek.
# Create a rolling window of 7 days rolling_window = data['sales'].rolling(window=7)
Sada kada imamo pokretni prozor, možemo izračunati 7-dnevni pomični prosjek.
Izračunavanje 7-dnevnog pomičnog prosjeka
Da bismo pronašli 7-dnevni pomični prosjek prodaje, jednostavno pozivamo mean()
funkciju na našem objektu rolo prozora. Zatim dodajemo ovaj novi pomični prosjek kao novi stupac u našem skupu podataka.
# Calculate the moving average data['7_day_avg'] = rolling_window.mean() # Preview the updated dataset print(data.head(10))
Na kraju, vizualizirajmo svoje rezultate kako bismo bolje razumjeli trendove u našim podacima.
Vizualizacija rezultata
Koristit ćemo se popularnim matplotlib biblioteku za izradu jednostavnog linijskog grafikona koji prikazuje podatke o dnevnoj prodaji i naš izračunati 7-dnevni pomični prosjek.
# Plot the daily sales data plt.plot(data['sales'], label='Daily Sales') # Plot the 7-day moving average plt.plot(data['7_day_avg'], label='7-Day Moving Average', color='red') # Add labels and legend plt.xlabel('Days') plt.ylabel('Sales') plt.title('Daily Sales and 7-Day Moving Average') plt.legend() # Display the plot plt.show()
Generirani grafikon prikazuje dnevne podatke o prodaji zajedno sa 7-dnevnim pomičnim prosjekom, što nam olakšava prepoznavanje trendova i anomalija.
Zaključno, pokretni prozor široko se koristi u analizi podataka, posebno vremenskih serija, zbog svoje sposobnosti otkrivanja skrivenih obrazaca i trendova unutar velikih skupova podataka. Kombinacija Pythona, Pandasa i Matplotliba pojednostavljuje proces izračunavanja pomičnog prosjeka i vizualizacije rezultata, što ga čini pristupačnim predmetom i za početnike i za stručnjake u tom području.