Izjava o problemu
Pretpostavimo da imamo skup podataka vremenske serije koji sadrži podatke o dnevnoj prodaji maloprodaje za godinu dana. Naš zadatak je da analiziramo ovaj skup podataka i izračunamo 7-dnevni pokretni prosek prodaje kako bismo izgladili potencijalne anomalije, identifikovali trendove i vodili poslovne odluke. Koristićemo Python, dobro poznat i široko korišćen programski jezik za analizu podataka.
Pristup rješenju
Da bismo riješili problem s pokretnim prozorom, slijedit ćemo ove korake:
- Uvezite potrebne biblioteke
- Učitajte skup podataka
- Kreirajte pokretni prozor
- Izračunajte 7-dnevni pokretni prosjek
- Vizualizirajte rezultate
Počnimo sa 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 što smo učitali skup podataka, sada nastavljamo da kreiramo pokretni prozor.
Kreiranje pokretnog prozora
Okrećemo se moćnicima Pandas biblioteku za kreiranje pokretnog prozora koristeći rolling() funkcija. Pokretni prozor će imati veličinu od 7 dana, jer želimo da izračunamo 7-dnevni pokretni 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 pokretni prosjek.
Izračunavanje 7-dnevnog pokretnog prosjeka
Da bismo pronašli 7-dnevni pokretni prosek prodaje, jednostavno zovemo mean() funkciju na našem objektu s pokretnim prozorom. Zatim dodajemo ovaj novi pokretni prosjek kao novu kolonu 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 naše rezultate kako bismo bolje razumjeli trendove u našim podacima.
Vizualizacija rezultata
Koristićemo popularne matplotlib biblioteku za kreiranje jednostavnog linijskog grafikona koji prikazuje i dnevne podatke o prodaji i naš izračunati 7-dnevni pokretni 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 pokretnim prosjekom, što nam olakšava prepoznavanje trendova i anomalija.
Zaključno, pokretni prozor se naširoko koristi u analizi podataka, posebno u vremenskim serijama, zbog svoje sposobnosti da otkrije skrivene obrasce i trendove unutar velikih skupova podataka. Kombinacija Python-a, Pandas-a i Matplotlib-a pojednostavljuje proces izračunavanja pokretnog prosjeka i vizualizacije rezultata, čineći je pristupačnom temom i za početnike i za stručnjake u ovoj oblasti.