Interpoleren voor ongekende tijdsintervallen.
-
- 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.
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.
- Berichten: 3.112
Re: Interpoleren voor ongekende tijdsintervallen.
Interpoleren doe je tussen twee 'nabije' meetpunten.
Een lineaire benadering is meestal toereikend.
Een lineaire benadering is meestal toereikend.
- Berichten: 5.609
Re: Interpoleren voor ongekende tijdsintervallen.
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 allemaalBert 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.
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?
Enkel met eenvoudige methoden: de meest gebruikte methoden maken (terecht) gebruik van de volledige dataset.Interpoleren doe je tussen twee 'nabije' meetpunten.
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-
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
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.
- Berichten: 5.609
Re: Interpoleren voor ongekende tijdsintervallen.
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.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).
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-
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 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. bvd317070 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.
- Berichten: 5.609
Re: Interpoleren voor ongekende tijdsintervallen.
p = polyfit(x,y,6);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
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-
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.
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.
- Berichten: 5.609
Re: Interpoleren voor ongekende tijdsintervallen.
Laat ik het nu eens omkeren, en laat je je splines nu eens los op ruizige data ](*,)Dus wellicht kan je daarmee in het algemeen concluderen dat voor tijdsafhankelijke systemen (data) een globale polynoom fit niet de aangewezen interpolatiemethode is.
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-
And I've got one hand in my pocket and the other one is giving the peace sign
-Alanis Morisette-