Przygotowanie danych

W projekcie będą analizowane dane dotyczące jakości powietrza (PM10) z wybranej stacji pomiarowej. Dane będą pochodzić z GIOŚ. Najpierw sprawdzono jak wygląda mapa aktywnych stacji powietrza w Polsce:

Do dalszych analiz wybrano stację MzRadTochter:

Najpierw wyfiltrowano pożądane informacje dla stacji o kodzie MzRadTochter dla lat 2015 i 2016 oraz zmieniono datę tak aby odpowiadała dacie bazy danych ISD NOAA (różnice w strefach czasowych).

Następnie pobrano metadane stacji meteorologicznej znajdujących się najbliżej wybranej wcześniej stacji jakości powietrza. W tym przypadku jest to stacja w Kozienicach oddalona o 33.5 km od stacji jakości powietrza w Radomiu.

## Joining, by = "date"

Prognoza stężenia PM10 na 2017 rok

Braki danych i selekcja

Najpierw usunięto niepotrzebne kolumny z danymi. Z pozostałych można zauważyć, że brakuje bardzo dużo danych dla “Podstawy chmur”, zatem ta kolumna zostanie dodatkowo usunięta.

##        wd              ws            ceil_hgt         visibility   
##  Min.   :  0.0   Min.   : 0.000   Min.   :    0.0   Min.   :    0  
##  1st Qu.:130.0   1st Qu.: 2.000   1st Qu.:   30.0   1st Qu.: 6000  
##  Median :230.0   Median : 2.000   Median :   30.0   Median :16000  
##  Mean   :207.5   Mean   : 2.619   Mean   :  809.3   Mean   :20138  
##  3rd Qu.:280.0   3rd Qu.: 3.000   3rd Qu.:   60.0   3rd Qu.:30000  
##  Max.   :360.0   Max.   :11.000   Max.   :22000.0   Max.   :50000  
##  NA's   :1254    NA's   :1254     NA's   :17472     NA's   :700    
##     air_temp         dew_point         atmos_pres           RH       
##  Min.   :-17.800   Min.   :-19.800   Min.   : 974.7   Min.   :20.81  
##  1st Qu.:  2.800   1st Qu.:  0.100   1st Qu.:1012.2   1st Qu.:65.08  
##  Median :  8.500   Median :  4.800   Median :1017.0   Median :82.31  
##  Mean   :  9.609   Mean   :  5.082   Mean   :1017.3   Mean   :76.81  
##  3rd Qu.: 16.100   3rd Qu.: 10.400   3rd Qu.:1022.8   3rd Qu.:92.20  
##  Max.   : 35.700   Max.   : 22.000   Max.   :1045.6   Max.   :99.34  
##  NA's   :700       NA's   :700       NA's   :700      NA's   :700    
##       pm10         
##  Min.   :  0.3793  
##  1st Qu.: 19.2453  
##  Median : 29.3857  
##  Mean   : 36.8725  
##  3rd Qu.: 44.6434  
##  Max.   :363.7774  
##  NA's   :518

Następnie sprawdzono liczbę nieutraconych danych, która jest na poziomie:

## [1] 89.97092

Kompletność danych jest na wysokim poziomie, więc stacja jest odpowiednia i można przejść dalej.

Wstępna analiza danych

##        wd              ws           visibility       air_temp      
##  Min.   :  0.0   Min.   : 0.000   Min.   :    0   Min.   :-17.800  
##  1st Qu.:140.0   1st Qu.: 2.000   1st Qu.: 6000   1st Qu.:  2.800  
##  Median :230.0   Median : 2.000   Median :16000   Median :  8.300  
##  Mean   :208.4   Mean   : 2.617   Mean   :20254   Mean   :  9.443  
##  3rd Qu.:280.0   3rd Qu.: 3.000   3rd Qu.:35000   3rd Qu.: 15.900  
##  Max.   :360.0   Max.   :11.000   Max.   :50000   Max.   : 35.400  
##    dew_point         atmos_pres           RH             pm10         
##  Min.   :-19.800   Min.   : 974.7   Min.   :20.81   Min.   :  0.3793  
##  1st Qu.:  0.100   1st Qu.:1012.1   1st Qu.:65.21   1st Qu.: 18.6674  
##  Median :  4.600   Median :1017.0   Median :82.25   Median : 28.6783  
##  Mean   :  4.943   Mean   :1017.3   Mean   :76.83   Mean   : 36.2942  
##  3rd Qu.: 10.200   3rd Qu.:1022.8   3rd Qu.:92.10   3rd Qu.: 44.6434  
##  Max.   : 22.000   Max.   :1045.6   Max.   :99.34   Max.   :363.7774

Z tego co widać dane wyglądają na normalne dla Polski. Żaden wskaźnik nie odbiega normie.

Korelacje między zmiennymi

Jak widzimy, korelacje liniowe Pearsona między stężeniem pyłu PM10 a innymi zmiennymi są jedynie na umiarkowanym poziomie, ale wszystkie są statystycznie istotne.

Wykonanie predykcji

Następnie uruchomiono las losowy do utworzenia predykcji dla stężenia PM10 w roku 2017.

## Random Forest 
## 
## 15780 samples
##     7 predictor
## 
## No pre-processing
## Resampling: Cross-Validated (5 fold) 
## Summary of sample sizes: 12624, 12623, 12625, 12624, 12624 
## Resampling results across tuning parameters:
## 
##   mtry  RMSE      Rsquared   MAE      
##   1     17.05161  0.6269573  10.422212
##   2     16.26324  0.6510051   9.790692
##   3     16.24755  0.6500926   9.741950
##   4     16.29892  0.6472957   9.804858
##   5     16.29586  0.6471312   9.814171
##   6     16.39973  0.6423468   9.870533
##   7     16.42258  0.6413438   9.880199
##   8     16.35593  0.6442364   9.848490
## 
## RMSE was used to select the optimal model using the smallest value.
## The final value used for the model was mtry = 3.

Testowanie modelu

Teraz, kiedy już model został utworzony, można sprawdzić jak zachowuje się on na danych, które nie były wykorzystane do jego uczenia. Pobrano dane meteorologiczne dla roku 2017 dla tej samej stacji w Kozienicach, a następnie wykorzystano utworzony model do oszacowania stężenia pyłu PM10 w tym roku. Utworzono wykres rozrzutu prognozy od obserwacji dla stężeń PM10 w roku 2017.

Wykres pokazuje jak bardzo wyniki prognoz odchylone są od pomiarów stężeń PM10. Zielona linia obrazuje model idealny, a niebieska linię trendu uzyskaną z zebranych danych, o równianiu wyświetlonym na wykresie.

Według zebranych danych prognoza jest zaniżona w stosunku do pomiarów stężenia PM10 na stacji w Radomiu, co jest widoczne w przypadku najwyższych stężeń. Może to wynikać z faktu, że warunki meteorologiczne nie są jedynymi czynnikami wpływającymi na stężenie zanieczyszczenia na danym obszarze.

Wykres trendu prognoz (linia czerwona) od obserwacji stężeń PM10 (linia szara) pozwala na ogólną ocenę zgodności tych dwóch serii danych. Można zauważyć, że wniosek wyciągnięty na podstawie poprzedniego wykresu jest potwierdzony – najwyższe wartości stężeń są zaniżane w danym modelu.