Interpoleren voor ongekende tijdsintervallen.

Moderators: jkien, Xilvo

Reageer
Berichten: 2.589

Interpoleren voor ongekende tijdsintervallen.

Stel ik heb een vector A met hierin de metingen en een vector T met hierin de tijdsmomenten waarop de samples in A genomen zijn.

Bestaat er een matlab een standaard manier om met A en T een vector B en N te maken waarbij in B de samples zitten op een vast tijds interval? Met interpoleren? Bestaan hier functies voor?

Groeten.

Gebruikersavatar
Berichten: 3.112

Re: Interpoleren voor ongekende tijdsintervallen.

Interpoleren doe je tussen twee 'nabije' meetpunten.

Een lineaire benadering is meestal toereikend.

Gebruikersavatar
Berichten: 5.609

Re: Interpoleren voor ongekende tijdsintervallen.

Bert F schreef:Stel ik heb een vector A met hierin de metingen en een vector T met hierin de tijdsmomenten waarop de samples in A genomen zijn.

Bestaat er een matlab een standaard manier om met A en T een vector B en N te maken waarbij in B de samples zitten op een vast tijds interval? Met interpoleren? Bestaan hier functies voor?

Groeten.
Dat hangt af van de aard van de vector A en de toepassing. Polyfit is het eenvoudigst, maar er zijn uiteraard geavanceerdere methoden gaande van kernel methoden over Principal component analysis tot support vector machines. Matlab kan het allemaal ;)

Een algemene benaming is overigens regressie-analyse. Eens googlen op regression analysis matlab zal volgens mij al voldoende stof opleveren.

Op die tweede vraag weet ik ook geen antwoord: waarschijnlijk dat zoiets wel mogelijk is via Markov Chains...

Maar misschien eerst polyfit?
Interpoleren doe je tussen twee 'nabije' meetpunten.
Enkel met eenvoudige methoden: de meest gebruikte methoden maken (terecht) gebruik van de volledige dataset.
What it all comes down to, is that I haven't got it all figured out just yet

And I've got one hand in my pocket and the other one is giving the peace sign

-Alanis Morisette-

Berichten: 216

Re: Interpoleren voor ongekende tijdsintervallen.

M.i. moet hier geen regressie op worden toegepast maar interpolatie.

Stel vector A bevat temperatuurmetingen. De temperatuur variaties zijn veroorzaakt door bijv een verwarmingselement aan en uit te schakelen. De temperatuursvariaties hangen dan af van de tijd EN de variaties in warmtetoevoer. Een functie fitten op de temperatuur met alleen de tijd als input is geen goed idee (maar wel mogelijk).

Aangezien alleen de temperatuur en tijd gegeven zijn waarbij de tijdsvector niet equidistant is, is interpolatie een goede (de aangewezen?) techniek om equidistante data te verkrijgen.

Matlab functie: yi = interp1(x,y,xi,method). Met x,y de originale data, xi de data waarvoor de interpolatie gewenst is. Met "method" kan je o.a. voor lineair of cubic spline interpolatie kiezen

Berichten: 2.589

Re: Interpoleren voor ongekende tijdsintervallen.

Matlab functie: yi = interp1(x,y,xi,method). Met x,y de originale data, xi de data waarvoor de interpolatie gewenst is. Met "method" kan je o.a. voor lineair of cubic spline interpolatie kiezen


Werkt perfect bedankt.

Gebruikersavatar
Berichten: 5.609

Re: Interpoleren voor ongekende tijdsintervallen.

robertus58a schreef:M.i. moet hier geen regressie op worden toegepast maar interpolatie.

Stel vector A bevat temperatuurmetingen. De temperatuur variaties zijn veroorzaakt door bijv een verwarmingselement aan en uit te schakelen. De temperatuursvariaties hangen dan af van de tijd EN de variaties in warmtetoevoer. Een functie fitten op de temperatuur met alleen de tijd als input is geen goed idee (maar wel mogelijk).
Regressie is dan ook een heel stuk ruimer dan alleen lineaire regressie. Je kunt regressie uitvoeren op alle dimensies tot zelfs oneindig-dimensionale data, dus je kunt perfect een functie fitten op de temperatuur en variaties. Die functie heeft dan wel dikwijls geen mooie gesloten vorm, maar het blijft een evalueerbare functie nonetheless.

Bij interpolatie ga je trouwens altijd uit van een bepaalde functie bij je data, en ga je dus impliciet regressie op je data gaan toepassen.
What it all comes down to, is that I haven't got it all figured out just yet

And I've got one hand in my pocket and the other one is giving the peace sign

-Alanis Morisette-

Berichten: 216

Re: Interpoleren voor ongekende tijdsintervallen.

317070 schreef:Regressie is dan ook een heel stuk ruimer dan alleen lineaire regressie. Je kunt regressie uitvoeren op alle dimensies tot zelfs oneindig-dimensionale data, dus je kunt perfect een functie fitten op de temperatuur en variaties. Die functie heeft dan wel dikwijls geen mooie gesloten vorm, maar het blijft een evalueerbare functie nonetheless.

Bij interpolatie ga je trouwens altijd uit van een bepaalde functie bij je data, en ga je dus impliciet regressie op je data gaan toepassen.
317070 gaf ook al in zijn eerste reactie regressie via de functie "polyfit" als oplossing. Kan dit met een concreet voorbeeld worden toegelicht. Wordt "polyfit" dan voor de gehele dataset gebruikt of een aantal maal voor een deel van de data. Het is mij nog niet duidelijk. bvd

Gebruikersavatar
Berichten: 5.609

Re: Interpoleren voor ongekende tijdsintervallen.

317070 gaf ook al in zijn eerste reactie regressie via de functie "polyfit" als oplossing. Kan dit met een concreet voorbeeld worden toegelicht. Wordt "polyfit" dan voor de gehele dataset gebruikt of een aantal maal voor een deel van de data. Het is mij nog niet duidelijk. bvd
p = polyfit(x,y,6);

f = polyval(p,t);

Hier benader je dus je metingen y op de punten x door een 6e orde polynoom. Vervolgens zijn de waarden f de evaluaties van die polynoom op de plaatsen t.

Dus concreet voor de vraagsteller zijn naamgebruik:

p = polyfit(A,T,6);

B = polyval(p,N);

Oppassen met je orde, de algemene regel is dat als je een k-de-orde gebruikt, dat je dan minstens 10k datapunten moet hebben, anders zul je overfitting krijgen.
What it all comes down to, is that I haven't got it all figured out just yet

And I've got one hand in my pocket and the other one is giving the peace sign

-Alanis Morisette-

Berichten: 216

Re: Interpoleren voor ongekende tijdsintervallen.

In de oorsponkelijke probleemstelling werd een dataset gegeven met metingen en tijdsmomenten. Ik ga er dan van uit dat deze metingen tijdsafhankelijk zijn.

Als je dan als representatief voorbeeld een eerste orde DV neemt (1e orde systeem met met slechts twee parameters: gain+tijdsconstante), waarbij de input verhoogd en verlaagd wordt dan kan je met een eenvoudig illustreren dat een globale fit (zoals p = polyfit(x,y,6) en f = polyval(p,t)) een slechte interpolatie geeft. Locale fit methoden (lineair, of spline) (met bijv. interp1) geeft veel betere resultaten.

Dus wellicht kan je daarmee in het algemeen concluderen dat voor tijdsafhankelijke systemen (data) een globale polynoom fit niet de aangewezen interpolatiemethode is.

Gebruikersavatar
Berichten: 5.609

Re: Interpoleren voor ongekende tijdsintervallen.

Dus wellicht kan je daarmee in het algemeen concluderen dat voor tijdsafhankelijke systemen (data) een globale polynoom fit niet de aangewezen interpolatiemethode is.
Laat ik het nu eens omkeren, en laat je je splines nu eens los op ruizige data ](*,)

Je zult zien dat splines bijlange na niet de aangewezen interpolatiemethode is, terwijl polyfit betere resultaten geeft.

Zoals eerder gezegd, de soort data is zeer belangrijk om je interpolatiemethode te kiezen. Geavanceerdere methoden hebben steeds minder nadelen, maar mijn ervaring met machine learning (waar dit onder valt) leert me dat je voor iedere methode een categorie datasets kunt geven waarop ze niet goed werkt. Hoe geavanceerder de methode, hoe minder datasets je zult vinden, maar een algemene goede methode bestaat er (nog) niet.
What it all comes down to, is that I haven't got it all figured out just yet

And I've got one hand in my pocket and the other one is giving the peace sign

-Alanis Morisette-

Reageer