Wiskundige modellering, machinaal leren en datamining

Naast statistische tijdreeksanalyse en afhankelijk van de probleemstelling passen we ook wiskundige datamodellering toe. De wiskundige modellen zijn gerelateerd aan statistiek, maar richten zich meer op complexe processen en grote datasets. Tot voor kort was het toepassen van een neuraal netwerk populair voor het modelleren van niet-lineaire complexe processen. Inmiddels zijn er vele (vaak betere) mogelijkheden om met Machinaal Leren (Machine Learning) of datamining (complexe) processen te beschrijven, statistische verbanden en patronen te zoeken en te classificeren.

Random Forest (Breiman, 2001) is zo’n goede methode uit het werkveld Machinaal Leren. Random Forest is vooral een geschikte methode als er in de dataset sprake is van multicollineariteit, interacties tussen predictoren en niet-lineaire verbanden. Random Forest kan ook overweg met niet-numerieke (ordinale en nominale) predictoren en ongebalanceerde data, waarbij gebeurtenissen onevenredig verdeeld zijn, zoals bij storingen en calamiteiten. Een mooie toepassingsmogelijkheid is het modelleren van storingen in waterleidingen/ het schatten van faalkansen. Random Forest heeft bijzonder goede eigenschappen voor:

  • Het voorspellen of het schatten van kansen op gebeurtenissen
  • Het imputeren van ontbrekende waarden in een dataset
  • Het detecteren van de belangrijkste invloedsfactoren (predictoren) voor gebeurtenissen in een dataset; bij waterleidingen is dat de leeftijd, het materiaal en de omgeving
  • Het detecteren van verdachte gebeurtenissen of veranderingen in een dataset
  • Het detecteren van patronen of de classificatie van verbanden of kenmerken in een dataset.

Met veel succes hebben wij Random Forest (op basis van beslissingsbomen (decision trees)) toegepast op het imputeren/voorspellen van waarden in meetreeksen voor waterschap De Dommel en in de RIWA-base (zie Imputeren van ontbrekende waarden in RIWA-base, pagina 13, met een uitgebreide uitleg van de methodiek en de meest geschikte instellingen). Zie ook Het principe van de werking van Random Forest.

Een elegante methodiek om met Random Forest de beste predictors te kiezen is met VI (Variable Importance). De onderstaande figuur is een VI-plot met boxplots van de VI van 25 predictoren in het Random Forest model voor het imputeren/voorspellen van de watertemperatuur (120) bij Andijk. De predictors zijn langs de horizontale as gesorteerd op basis van de absolute waarde van de  Spearman-rangcorrelatiecoëfficiënt met de watertemperatuur bij Andijk. Negatieve VI’s impliceren onnauwkeurige imputaties/voorspellingen.

VI

Heeft u een grote dataset en onderzoeksvragen? Wenst u een datavalidatie van uw databasegegevens van uw proces? We kunnen er voor zorgen dat uw gegevens (‘ruwe data’) betrouwbaar en bruikbaar worden. Heeft u vragen over de kans op bepaalde gebeurtenissen, storingen of calamiteiten? We helpen we u graag aan de gewenste informatie.

Heeft u marketing datasets? Heeft u vragen over het koopgedrag van uw klanten? Revenue management of yield management? Ook dan kunnen we er voor zorgen dat uw bedrijf in staat is om weloverwogen en onderbouwde beslissingen te nemen.

Geplaatst in Diensten, Onderzoeksprojecten, Tijdreeksanalist | Getagged | Reacties uitgeschakeld voor Wiskundige modellering, machinaal leren en datamining

Vernieuwingen in Trendanalist

Trendanalist huidige versie is 6.0.07 van 21 juli 2019.

In versie 6.0.07 is de nieuwe versie van het Aquokit csv-formaat geïmplementeerd.

In versie 6.0.01 is gekozen voor de meest recente Matlab Compiler van 2017b voor de 64-bits versie van Windows en voor de Matlab Compiler van 2015b voor de 32-bits versie van Windows. De Trendanalist-software is aangepast voor de nieuwe versies van Matlab en Microsoft Office (Excel en Word).

In versie 5.0.19 zijn de opties uitgebreid met de mogelijkheid om grafieken aan te passen.

In versie 5.0.18 zijn aansluitend na versie 5.0.17 een groot aantal kleine verbeteringen doorgevoerd.

In versie 5.0.17 van 30 mei is de grafische functionaliteit van Trendanalist verbeterd. Tevens Trendanalist afgesteld op de nieuwste versie van Matlab, r2015a.

In versie 5.0.16 is de inleesroutine van Trendanalist verder uitgebreid en verbeterd. Een optie is toegevoegd dat Trendanalist de meetgegevens voorbewerkt (sorteert en dubbele meetwaarden verwijderd).

In versie 5.0.15 kan Trendanalist ook meetreeksen die ongeschikt zijn voor trendanalyses verkennen (met tijdreeksplot, boxplot, ..).

In versie 5.0.14 is de inleesroutine uitgebreid met de mogelijkheid om aquokit csv-bestanden in te lezen. Verder is de optie ingebouwd dat meetreeksen bij het inlezen worden voorbewerkt en opgeschoond.

In versie 5.0.13 kunnen jaarboxplots van meetreeksen worden bekeken.

In de versie 5.0.10 zijn de installatiebestanden van Trendanalist verbeterd voor de installatie en werking van Trendanalist onder Windows 7. Bij onze klant in België is met succes Trendanalist geïnstalleerd op een Cirix-machine draaiende onder Windows 7, de 64-bit versie.

In de versie 5.0.07 van 29 mei 2012 is er een (belangrijke) verbetering uitgevoerd in het algoritme voor het verwerken van gecensureerde meetwaarden met verschillende rapportagegrenzen. Dit is een vervolg van de onderstaande vernieuwingen in versie 5.0 in 2).

Omgaan met gecensureerde waarden met verschillende rapportagegrenzen

Voor het omzetten van een meetreeks naar een tijdreeks worden alle gecensureerde waarden van een meetreeks standaard op de helft van de hoogste rapportagegrens van die reeks gezet. Ook niet-gecensureerde meetwaarden die lager zijn dan de hoogste rapportagegrens worden standaard op de helft van die grens gezet (tenzij de gebruiker die standaardoptie heeft uitgezet, zie ook verder) en zijn dan op te vatten als gecensureerde waarden. Deze aanpak kan informatieverlies en daarmee ook verlies aan onderscheidend vermogen geven, maar is nodig om het detecteren van kunstmatige trends te vermijden die louter zijn veroorzaakt door veranderingen van de rapportagegrens (zie bijvoorbeeld [Helsel and Hirsch, 1991]). Door deze voorbewerking kan het overigens voorkomen dat een tijdreeks meer gecensureerde waarden bevat dan de oorspronkelijke meetreeks.

Als voldaan wordt aan beide volgende criteria, wordt een aangepaste aanpak gevolgd:

  1. de meetreeks bevat slechts één waarde die is gecensureerd ten opzichte van de hoogste rapportagegrens;
  2.  er komt minstens één niet-gecensureerde waarde voor, die tussen de hoogste rapportagegrens en de op één na hoogste rapportagegrens ligt, of die onder de hoogste rapportagegrens ligt als dat de enige rapportagegrens in de meetreeks is.

Alleen als wordt voldaan aan beide criteria dan wordt de ene waarde die is gecensureerd ten opzichte van de hoogste rapportagegrens verwijderd en worden vervolgens alle waarden (zowel de gecensureerde als de niet-gecensureerde) die onder de één na hoogste rapportagegrens liggen standaard op de helft van die één na hoogste rapportagegrens gezet, tenzij de meetreeks maar één rapportagegrens omvat, in welk geval er na de verwijdering van de ene gecensureerde waarde ten opzichte van die grens geen verdere censuur plaatsvindt. Dit voorkomt onnodig informatieverlies door een eenmalige, relatief hoge rapportagegrens.

 De belangrijkste vernieuwingen van versie 5.0

  1. De automatische procedure voor het selecteren van de combinatie van trendtoets en trendschatter is verbeterd. Tot dusverre werd de procedure gestart met het herhaald schatten van het uitgebreide lineaire regressiemodel (dat wil zeggen met verdiscontering van seizoenseffecten en autocorrelatie), tot een model resteerde met alleen statistisch significante parameters. Vervolgens werd getoetst of de modelresiduën wel witte ruis vormden (onafhankelijke trekkingen uit de normale kansverdeling). Als dat niet het geval was, ging de procedure verder met het selecteren van één van de verdelingsvrije Mann-Kendall-toetsen. Een nadeel van deze aanpak is dat voor elke reeks wordt gestart met het uitgebreide lineaire regressiemodel, terwijl dat bij een reeks met relatief veel ontbrekende waarden rekenkundige oplossingen vergt (vooral voor het schatten van de 1e-orde-autocorrelatiecoëfficiënt), die het trendtoetsen minder optimaal maken. De nieuwe procedure start daarom met een eenvoudig lineair regressiemodel (zonder verdiscontering van autocorrelatie) en checkt vervolgens of de modelresiduën wel witte ruis vormen. Als daaruit blijkt dat de modelresiduën afkomstig zijn uit een normale kansverdeling, maar nog autocorrelatie vertonen, dan wordt het lineaire regressiemodel uitgebreid met een 1e-orde-autocorrelatiecoëfficiënt voor de ruis. Dit gebeurt echter alleen als de reeks niet teveel ontbrekende waarden bevat (hooguit 10%). Als de reeks wél teveel ontbrekende waarden bevat (meer dan 10%), dan wordt de Mann-Kendall-toets met verdiscontering van (seizoenseffecten en) autocorrelatie geselecteerd, aangezien die robuust is tegen ontbrekende waarden, mits de reeks voldoende waarden voor deze toets bevat (minstens 20), anders wordt de tijdreeks omgezet naar een hogere tijdseenheid. Een gedetailleerde toelichting op de nieuwe automatische selectieprocedure vindt u in de handleiding (§ 3.5).
  2. De behandeling van gecensureerde waarden is aangepast, om te voorkomen dat er kunstmatige trends worden gedetecteerd die louter zijn veroorzaakt door veranderingen van de rapportagegrens. In versie 5.0 worden alle waarden onder de hoogste rapportagegrens op de helft van die grens gezet, ongeacht of het een gecensureerde waarde of een meetwaarde betreft. Dit is uiteraard een rigoreuze aanpassing, maar het biedt afdoende bescherming tegen kunstmatige trends. Indien gewenst kan de gebruiker deze instelling aanpassen, zodanig dat elke gecensureerde waarde op de helft van zijn eigen rapportagegrens wordt gezet (dit kan via ‘Opties’, zie daarvoor de handleiding, § 4.6). Maar het is dan wel sterk aan te bevelen om alle trendplots visueel te beoordelen op kunstmatige trends, veroorzaakt door veranderingen van de rapportagegrens.
  3. Het toetsen op autocorrelatie van de residuën van het lineaire regressiemodel is uitgebreid, zodanig dat beter rekening kan worden gehouden met ontbrekende waarden. Daartoe is naast de reeds eerder beschikbare Ljung-Box-Portmanteau-toets op autocorrelatie een variant op die toets toegevoegd die beter overweg kan met ontbrekende waarden in de reeks van modelresiduën.
  4. Voor de vijf toetsen die worden gebruikt voor de keuzemomenten van de automatische selectieprocedure is de betrouwbaarheid op 95% gezet. Dit betreft de Kruskal-Wallis-toets op seizoenseffecten, de Lilliefors-toets op normaliteit, de Ljung-box-Portmanteau-toets op autocorrelatie van modelresiduën (en zijn variant die overweg kan met ontbrekende waarden) en de runstoets op autocorrelatie van de tijdreekswaarden. Voor de Lilliefors-toets stond de betrouwbaarheid eerst op 99%, waardoor alleen sterke afwijkingen van normaliteit werden gedetecteerd. Door deze op 95% te zetten worden ook minder sterke afwijkingen gedetecteerd. Daardoor zal vaker een verdelingsvrije trendtoets worden geselecteerd, maar die zijn bij niet-normaliteit ook de te verkiezen toetsen, terwijl ze bij normaliteit niet veel onderdoen voor trendtoetsen gebaseerd op lineaire regressie. De betrouwbaarheid van de zeven trendtoetsen blijft overigens standaard ingesteld op 95%, maar indien gewenst kan de gebruiker dit omzetten naar 90% of 80% (zie de handleiding § 4.4).
  5. Er is een bescherming ingebouwd tegen het onterecht detecteren van een trend door precisieproblemen. In bepaalde gevallen werd bij een constante reeks toch een trend gedetecteerd, louter door het delen van zeer kleine getallen. Dit soort randgevallen is nu softwarematig afgevangen. Dit is overigens wat anders dan wat sporadisch optreedt bij de verdelingsvrije Mann-Kendall-toetsen, namelijk dat de toets een statistisch significante trend detecteert, terwijl de geschatte trend exact nul bedraagt. Dit komt doordat bij een reeks met relatief veel gecensureerde waarden de trendschatting onterecht op nul kan uitkomen.
  6. Bij het inlezen van een uitvoerbestand van iBever wordt nu ook de hoedanigheid, het compartiment en de meetwaardecode meegenomen. Vervolgens worden meetreeksen onderscheiden op basis van meetlocatie, parameternaam, meeteenheid, hoedanigheid en compartiment. Deze laatste twee kenmerken worden bij de uitvoer alleen vermeld als deze nodig zijn om de meetreeks te onderscheiden van een andere meetreeks van dezelfde combinatie van meetlocatie, parameternaam en meeteenheid.
  7. Bij het omzetten van een ingelezen meetreeks naar een tijdreeks wordt nu evenwichtiger omgegaan met de keuze tussen de tijdseenheid Vier weken en de tijdseenheid Maand (die liggen zeer dicht bij elkaar). De tijdseenheid Vier weken wordt nu pas verkozen boven de tijdseenheid Maand als dit geen groter percentage ontbrekende waarden oplevert. Zo wordt vermeden dat er bij het omzetten van een meetreeks onnodig ontbrekende waarden in de resulterende tijdreeks worden gecreëerd.
  8. Bij het omzetten van een meetreeks naar een tijdreeks wordt elke tijdreekswaarde toegekend aan het tijdstip halverwege de betreffende tijdseenheid, waarbij de tijd wordt uitgedrukt als jaarfractie. Maar als er sprake is van een tijdreeks die is samengesteld uit een meetreeks met hooguit één meetwaarde per jaar, dan blijft het meettijdstip van een meetwaarde in de tijdreeks gehandhaafd. Dit voorkomt dat er een te grote vertekening van de trendlijn optreedt. En als er sprake is van een tijdreeks die is samengesteld uit een meetreeks met meerdere meetwaarden per jaar, dan wordt de mediaan van de meetwaarden binnen een jaar toegekend aan het mediane meettijdstip van de betrokken meetwaarden. Dit voorkomt misverstanden bij het visueel beoordelen van een tijdreeksplot, want bij toekenning van een jaarwaarde aan het midden van het jaar is de visuele beoordeling lastiger. Zie hiervoor de handleiding, § 3.5.2.
Geplaatst in Trendanalist | Reacties uitgeschakeld voor Vernieuwingen in Trendanalist

Tijdreeksanalyse

Heeft u vragen over statistische relaties tussen procesvariabelen? Heeft u de beschikking over meet- of tijdreeksen? Een (statistische) tijdreeksanalyse kan mogelijk een oplossing bieden voor het beantwoorden van uw vragen.

Statistisch onderbouwde tijdreeksanalyses voeren we uit op grondwaterstanden, waterkwaliteit- en verkeersgegevens. Bij een statistische tijdreeksanalyse is een residuenanalyse – met toetsen op normaliteit en geen autocorrelatie – onontbeerlijk. Bij statistische tijdreeksanalyses is het mogelijk statistische uitspraken te doen over procesvariabelen en resultaten. Wij voeren tijdreeksanalyses uit met de applicatie Tijdreeksanalist.

Een elegante toepassing van tijdreeksanalyse is de interventie-analyse om te onderzoeken of een maatregel (significant) effect heeft gehad.

Na de trendanalyse wordt vaak de vraag gesteld: wat zijn de onderliggende oorzaken van de trends? Voor het beantwoorden van die vraag passen wij tijdreeksanalyse toe met interventie-analyse.

Indien gewenst kunnen we:

  • Op locatie een tijdreeksanalysecursus verzorgen.
  • Een licentie van Tijdreeksanalist aanbieden.
  • Tijdreeksanalyses uitvoeren.

Zie ook wiskundige modellering,  Trendanalist of recente projecten

Geplaatst in Diensten, Tijdreeksanalist, Trendanalist | Getagged , , | Reacties uitgeschakeld voor Tijdreeksanalyse

Interactieve tijdreeksmodelontwikkeling

Presentatie op NHV-tijdreeksanalysedag 28 januari 2016

In de presentatie tonen we aan hoe belangrijk het ruismodel is voor het verdisconteren van autocorrelatie in de modelresiduen voor het schatten van de bijdrage van de componenten aan de grondwaterstanden (modeluitvoer), zoals de onttrekkingen, neerslag en overdamping. Zonder een goed ruismodel wordt de standaardfout van de bijdrage van een component onderschat. De standaardfout (precisie) wordt immers niet bepaald door het aantal modelresiduen, maar het aantal onderling onafhankelijk modelresiduen. Zonder een goed ruismodel zijn afgeleide betrouwbaarheden onbruikbaar. Hoe ontwikkel je een betrouwbaar tijdreeksmodel?…

Interactievetijdreeksmodelontwikkeling28jan2016

 

We maken gebruik van de applicatie Tijdreeksanalist (TRG).

De presentatie is ook te vinden op Themadag Tijdreeksmodellen – 28 januari 2016
Een brug tussen theorie en praktijk

Zie ook de presentatie  van 1 oktober 2015 ‘Het belang van het ruismodel’

Zie ook de presentatie  van 8 juni 2004 ‘Schatgraven in een tijdreeks’

Geplaatst in Presentaties, Tijdreeksanalist | Getagged | Reacties uitgeschakeld voor Interactieve tijdreeksmodelontwikkeling

Het belang van het ruismodel

Presentatie op NHV-tijdreeksanalysedag 1 oktober 2015

Presentatie PKB Belang ruismodel 1okt2015

Geplaatst in Presentaties, Tijdreeksanalist | Reacties uitgeschakeld voor Het belang van het ruismodel

Dataverwerking en datavalidatie

Heeft u vragen over het ontsluiten van uw datasets of database? Heeft u grote datasets? Onze dataverwerking kan mogelijk een oplossing bieden voor het beantwoorden van uw vragen. Zie ook wiskundige modellering en datamining, statistisch onderzoek, tijdreeksanalyse en trendanalyse.

Een essentieel onderdeel van onze data-georiënteerde analyses, zoals tijdreeks-, trend-, correlatie- en statistische analyses is de uitgebreide controle op mogelijke fouten in de data. De kwaliteit van de analyses is immers direct gerelateerd aan de kwaliteit van de data. Voor deze dataverwerking en datavalidatie hebben inmiddels vele tools ontwikkeld, zo controleren wij o.a. op:

  • Afwijkende meetwaarden
  • Dubbele meetwaarden, zelfde tijdstip verschillende waarden of zelfde tijdstip verschillende waarden
  • Uitschieters, waarbij een uitschieter een mogelijke maar niet noodzakelijk een fout is
  • Zelfde parameternaam, verschillende eenheid of compartiment of .. of een andere entiteit
  • Onmogelijke waarden, zoals gecensureerde (waarden onder de rapportagegrens) nulwaarden.

Na het toepassen van bovenstaande gaan we altijd na, op basis van visuele inspectie van grafische presentaties, of de data voldoet aan onze kwaliteitseisen om de analyses goed te kunnen uitvoeren.

Heeft u vragen over het ontsluiten van uw datasets of database, ook dan helpen we u graag.

Geplaatst in Diensten, Tijdreeksanalist, Trendanalist | Getagged , , , | Reacties uitgeschakeld voor Dataverwerking en datavalidatie

Statistisch onderzoek

Wij voeren statistisch onderzoek uit. Dit kan zijn door het toepassen van statistische methodieken en toetsen, door het toepassen van trend- of tijdreeksanalyses of door analyses op basis van stochastische (wiskundige of fysische) modelleringen. Onze analyses en softwareontwikkeling voeren we uit in de programmeeromgeving van Matlab of met SPSS. Tot onze klanten behoren o.a. Rijkswaterstaat, waterleidingbedrijven en waterschappen.

Geplaatst in Diensten | Reacties uitgeschakeld voor Statistisch onderzoek

Trendpalet

Het trendpalet is een ideale vorm voor het presenteren van trendanalyseresultaten. Een trendpalet geeft een beknopt overzicht van de trendanalyseresultaten. Trendanalist heeft de mogelijkheid om een trendpalet te exporteren naar een Excel-bestand. Ook een trendkaart is een mooie vorm voor het presenteren van trendanalyseresultaten.

trendpalet

Voorbeeld van een (deel van een) trendpalet, vervaardigd op basis van de resultaten van Trendanalist. Elke cel geeft met een kleur de richting van de trend, per combinatie van meetlocatie (vermeld in de kolommen) en stof (vermeld in de rijen). Als er geen statistisch significante trend is gedetecteerd (hier met 95% betrouwbaarheid), dan is de cel geel gekleurd. Een statistisch significante daling is groen gekleurd en een statistisch significante stijging is oranje gekleurd. Een statistisch significante trend is relatief uitgedrukt als percentage verandering per jaar ten opzichte van de mediaan van de meetreeks.

Geplaatst in Alle categorieen, Trendanalist | Getagged , | Reacties uitgeschakeld voor Trendpalet

Neurale Netwerken

Op basis van de tijdreeksanalyse ontwikkelen wij ook Neurale Netwerken, om nog enige winst te behalen in het modelleren en het voorspellen. Wij beschouwen de tijdreeksanalyse daarbij als een belangrijke stap om inzicht te krijgen in de informatie in de meetreeksen en het onderliggende proces. De tijdreeksanalyse heeft daarbij wel het voordeel,  tenminste als de  residuen aan de voorwaarden voldoen van normaliteit en geen autocorrelatie, er objectieve statistische uitspraken mogelijk zijn. Zie ook wiskundige modellering.

Geplaatst in Alle categorieen, Tijdreeksanalist | Getagged , | Reacties uitgeschakeld voor Neurale Netwerken

Lowess-smooth

Trendanalist geeft naast de trend ook een modellering van de meetreeks met Lowess. Lowess is een modellering met polynomen op delen van de meetreeks en geeft een gladde beschrijving (‘smooth’) van de data. De vergelijking van de Lowess- met de trendlijn geeft aanvullende informatie voor de beoordeling van een meetreeks. Zie de licht blauwe lijn in onderstaande grafiek.

trendplot

Geplaatst in Alle categorieen, Trendanalist | Getagged | Reacties uitgeschakeld voor Lowess-smooth