Narzędzia użytkownika

Narzędzia witryny


narzedzia:php_global_warming

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Nowa wersja
Poprzednia wersja
narzedzia:php_global_warming [2025/05/17 22:47] – utworzono administratornarzedzia:php_global_warming [2025/05/17 23:07] (aktualna) – [Matematyka: regresja liniowa] administrator
Linia 1: Linia 1:
-====== PHP: Wykres temperatury Polski z linią trendu ======+====== PHP: Wykres temperatury Polski z regresją liniową ======
  
 Wykres można obejrzeć tutaj: https://wiki.ostrowski.net.pl/php_mysql/pol_temp.php Wykres można obejrzeć tutaj: https://wiki.ostrowski.net.pl/php_mysql/pol_temp.php
Linia 88: Linia 88:
  
 Dzięki temu rozwiązaniu możemy łatwo tworzyć dynamiczne, interaktywne wykresy statystyczne w aplikacjach webowych. Dzięki temu rozwiązaniu możemy łatwo tworzyć dynamiczne, interaktywne wykresy statystyczne w aplikacjach webowych.
 +
 +===== Matematyka: regresja liniowa =====
 +
 +<WRAP right 25%>
 +{{:narzedzia:pasted:20250517-230122.png}}\\
 +Źródło: [[https://blog.etrapez.pl/ekonometria/o-regresji-i-metodzie-najmniejszych-kwadratow-czyli-skad-wziely-sie-oszacowania-parametrow-modelu/|blog.etrapez.pl]]
 +</WRAP>
 +
 +Poniższy fragment opisuje metodę najmniejszych kwadratów (ang. *least squares*) stosowaną do wyznaczenia parametrów prostej regresji liniowej, czyli współczynników nachylenia i wyrazu wolnego.  
 +
 +Metoda polega na minimalizacji sumy kwadratów odchyleń (residuals) pomiędzy rzeczywistymi wartościami \(y_i\) a wartościami przewidywanymi \(\hat{y}_i\) przez model liniowy $$y = \beta_0 + \beta_1 x$$, co wyraża funkcja kryterium:  
 +$$
 +S(\beta_0, \beta_1) \;=\;\sum_{i=1}^n \bigl(y_i - (\beta_0 + \beta_1 x_i)\bigr)^2.
 +$$ 
 +
 +Aby znaleźć optymalne \(\beta_0\) i \(\beta_1\), rozwiązujemy układ tzw. równań normalnych:
 +$$
 +\begin{cases}
 +\displaystyle \frac{\partial S}{\partial \beta_1} \;=\; -2 \sum_{i=1}^n x_i\,(y_i - \beta_0 - \beta_1 x_i)\;=\;0,\\[1em]
 +\displaystyle \frac{\partial S}{\partial \beta_0} \;=\; -2 \sum_{i=1}^n (y_i - \beta_0 - \beta_1 x_i)\;=\;0.
 +\end{cases}
 +$$ 
 +
 +Rozwiązując ten układ, otrzymujemy wzory na estymatory:  
 +  * $$\hat{\beta}_1 = \frac{\sum_{i=1}^n (x_i - \bar{x})(y_i - \bar{y})}{\sum_{i=1}^n (x_i - \bar{x})^2},$$ 
 +  * $$\hat{\beta}_0 = \bar{y} - \hat{\beta}_1\,\bar{x},$$ 
 +gdzie \(\bar{x} = \frac{1}{n}\sum x_i\) i \(\bar{y} = \frac{1}{n}\sum y_i\).  
 +
 +Inna, równoważna postać wzoru na nachylenie prostej korzysta z sum iloczynów i sum kwadratów:
 +multiline $$
 +\hat{\beta}_1
 += \frac{n\sum_{i=1}^n x_i y_i \;-\; \sum_{i=1}^n x_i \sum_{i=1}^n y_i}
 +       {n\sum_{i=1}^n x_i^2 \;-\; \bigl(\sum_{i=1}^n x_i\bigr)^2}\,,
 +$$  
 +a wyraz wolny:
 +multiline $$
 +\hat{\beta}_0
 += \frac{\sum_{i=1}^n y_i - \hat{\beta}_1\sum_{i=1}^n x_i}{n}
 +=\bar{y}-\hat{\beta}_1\bar{x}\,.
 +$$ 
 +
 +W praktycznej implementacji, gdy \(x_i\) to kolejne indeksy czasowe (0, 1, …, n‑1), obliczenia skracają się do wersji:\\
 +$$x_i = i,\quad y_i = \text{Temp}[i],$$  
 +pozwalając łatwo wygenerować tablicę wartości trendu:\\
 +$$\hat{y}_i = \hat{\beta}_0 + \hat{\beta}_1\,i.$$
 +
 +Interpretacja parametrów:  
 +  * \(\hat{\beta}_1\) – średnia zmiana \(y\) przy wzroście \(x\) o jednostkę, czyli nachylenie trendu liniowego 
 +  * \(\hat{\beta}_0\) – przewidywana wartość \(y\) dla \(x=0\), czyli punkt przecięcia z osią OY 
 +
 +Dzięki tym wzorom możemy obliczyć linię trendu, która najlepiej przybliża dane w sensie najmniejszych kwadratów, ułatwiając analizę długoterminowych tendencji.
 +
  
 ===== Kod ===== ===== Kod =====
narzedzia/php_global_warming.1747514865.txt.gz · ostatnio zmienione: 2025/05/17 22:47 przez administrator