Model wygładzania wykładniczego Browna

mtbrowna5

Model Browna to jeden z prostych modeli prognostycznych. Zwykle stosuje się ten model dla szeregów czasowych o stałym poziomie lub bardzo słabym trendzie i umiarkowanych wahaniach przypadkowych. Jest on rozwinięciem modelu średnich ważonych.

Jeśli ktoś nie jest zainteresowany tutorialem a samym programem to można go pobrać: ModelWygladzaniaWykladniczegoBrowna_exe

(działa tylko na Windows 7+)

 

Prognozę wyznaczamy na podstawie wzoru:

mtbrowna

 

Pierwszy wyraz naszej prognozymtbrownaa  zazwyczaj przyjmujemy wartość:

1. Pierwszą wartość szeregu czasowego ( ten rodzaj określenia pierwszego wyrazu prognozy został wykorzystany w programie)

2. Średnią z trzech początkowych wartości szeregu czasowego.

3. Średnią z pięciu początkowych wyrazów szeregu czasowego.

Dzisiaj pokażę wam jak zrobić jeden z moim zdaniem najprostszy model prognostyczny. Jest on trochę cienki ale na start zawsze dobry. Polega on na wygładzeniu naszych zmiennych i ich przesunięciu. Opiera się w głównej mierze na ostatniej obserwacji i takiego doboru stałej alfa aby błąd średnio kwadratowy był jak najmniejszy. Ostatecznie ta metoda daje nam bardzo duży wachlarz prognozy. Program który tutaj zrobimy będzie pobierał dane z pliku tekstowego którego dane będą w prosty sposób wprowadzane, w kolumnie.

mtbrowna1

 

Ja mam taki plik z danymi. Teraz te dane będzie eksportować do „datagridview” i na nich wykonywać operacje. Podczepimy sobie również wykresy aby móc z wizualizować sobie zmiany.

 

Rodzaj elementu Nazwa elementu ustawienia
Form ModelBrowna Name: ModelBrowna
Text: Model Browna
Size: 1081; 582
DataGridView dgv_dane Name: dgv_dane
AllowUserToAddRows: False
AllowUserToDeleteRows: False
AllowUserToOrderColumn: True
AllowUserToResizeColumns: False
AllowUserToResizeRows: False
AutoSizeColumnsMode: Fill
Size: 566; 320
Location: 12; 29
label ie Text: „0”
Location: 105;380
Name: ie
label SumaRoznic Text: „0”
Location: 105;407
Name: SumaRoznic
label SumaKwadratow Text: „0”
Location: 105;435
Name: SumaKwadratow
label Prognoza Text: „0”
Location: 105;380
Name: Prognoza
label Mape Text: „0”
Location: 293;380
Name: Mape
label Mse Text: „0”
Location: 293;409
Name: Mse
label Rmse Text: „0”
Location: 293;436
Name: Rmse
label WspTheila Text: „0”
Location: 293;460
Name: WspTheila
label me_ Text: „0”
Location: 293;484
Name: me_
label Rmspe Text: „0”
Location: 293;508
Name: Rmspe
TextBox alfa Name: alfa
Location: 54;509
MenuStrip1 MenuStrip1 Name: MenuStrip1Dodano w menu:
Dane
– Dodaj dane
– Zakończ
Textbox FilePath Name: FilePath
Location: 123;3
Size: 560;20
Button Odswiez Name: Odswiez
Location:108;509
Chart Wykres1 Name: Wykres1
Location: 785; 35
Size: 268; 198
Ilość serii danych: 2
OpenFileDialog WczytajDane Name: WczytajDane
Chart wykres2 Name: Wykres2
Location: 587; 239
Size: 466; 300
Ilość serii: 2

Wypisałem powyżej najważniejsze elementy i ich lokalizacje, resztę labeli z opisami zostawiam wam do wypełnienia. Serie danych dodaje się tak:

mtbrowna2

 

Po wypełnieniu wszystkiego mój program wygląda tak:

mtbrowna3

Dobra wszystko przygotowane. Zajmiemy się teraz programowaniem naszego programu. Najpierw wpiszemy stałe elementy potrzebne z czasem w naszym programie:

Teraz zajmiemy się wczytanie danych i załadowaniem ich do DataGridView w tym celu rozwijamy nasze menu i przyciskamy dwukrotnie na „Dodaj dane”

mtbrowna4

Kod do ładujący dane wygląda tak:

Teraz zajmiemy się załadowanie wczytanych danych do tablicy „dane” dzięki wczytanie danych do datagridview będzie dużo łatwiejsze i nie przysporzy nam problemów.

Teraz zajmiemy się jądrem naszego programu, czyli samą metodą. Po załadowaniu danych do tablicy „dane” trzeba je tylko przenieść do datagridview, co nie jest trudne. Trochę tego dużo ale myślę, że się połapiecie co i jak:

Math.Round(wartość,x) – zaokrągla naszą wartość do „x” liczb po przecinku

Math.Abs() – wartość bezwzględna

Math.Sqrt() – pierwiastek z liczby

wartość^x – podniesienie wartości do potęgi „x”

Teraz zostało nam tylko przygotować wykresy i można sprawdzić czy wszystko działa.

Odpalamy zobaczymy. U mnie po załadowaniu danych wszystko wyglądało tak:

mtbrowna5

Chyba jest nieźle 🙂  Teraz dodamy sobie obsługę przycisku i ja włączyłem do pracy textbox określający element alfa, czyli jeśli wejdziemy w textbox i przyciśniemy przycisk na klawiaturze w górę „↑” to nasza alfa zmieni się o +0,01 a strzałka w dół zmieni naszą alfe o -0,01 oczywiście wszystko przy odświeżaniu programu co daje nam podgląd na zmiany w czqasie rzeczywistym.

i zmiana alfy.

Myślę, że Program będzie przydatny. Na pewno jest to dobry wstęp do modeli prognostycznych. Do pobrania daje jeszcze:

Dane użyte w czasie tutoriala: dane

Cały program: ModelWygladzaniaWykladniczegoBrowna

Jak to wygląda można zobaczyć tutaj:

Permalink do tego artykułu: https://visualmonsters.cba.pl/model-wygladzania-wykladniczego-browna/

Dodaj komentarz

Twój adres email nie będzie publikowany.