Verfasst am: 22.05.2022, 12:08
Titel: Lineare Trendsuche bei Zeitreihenanalyse
Hallo Zusammen,
ich benötige dringend Eure Hilfe.
Ich habe von verschiedenen Probanden Zeitreihen für diverse Parameter. Ich möchte die verschiedenen Parameter auf lineare (später auch quadratische) Trends zu untersuchen und die Effektstärken(Choens-d) der Trends vergleichen.
Damit ihr seht, was ich bisher habe, folgt mein Code:
Code:
for iG= 1:length(einlesen.flistG)
einlesen.loadnameG = fullfile(einlesen.flistG(iG).folder, einlesen.flistG(iG).name);
g= readmatrix(einlesen.loadnameG);
einlesen.loadnamef = fullfile(einlesen.flistFrames_G(iG).folder, einlesen.flistFrames_G(iG).name);
fG= readmatrix(einlesen.loadnamef);
%% Berechnung der einzelnen Parameter for iparam=3:length(g(1,:))
Gait = rmmissing(g(:,[1,2,iparam]));
%Standardabweichung & Mittelwert berechnen von orginal Daten (Gait)
Gehen.Std_G(iG,iparam)= std(Gait(:,3));
Gehen.Mean_G(iG,iparam)= mean(Gait(:,3));
%Detrenden und Std. berechnen
Gehen.detrendG=Frames(fG,Gait,lambda);
Gehen.detrendG_std(iG,iparam)=std(Gehen.detrendG);
%SD des Trends berechen
Gehen.detrendG_diff(iG,iparam)=std(Gait(1:50,3)-Gehen.detrendG(1:50));
%Rmssd berechnen normal und von Detrending-Datein
Gehen.Rmssd(iG,iparam)=Rm(Gait(1:50,:));
Gehen.RmssdDe(iG,iparam)=Rm([Gait(1:50,1:2) Gehen.detrendG(1:50)]);
%LinearerTrend berechnen
Gehen.LinTrend(iG,iparam)=getTrend(Gait(:,3));
die Funktion getTrend benötigt laut Doku ein iddata - Objekt.
Ich würde eher
fitlm
verwenden und mir den p-Wert des linearen bzw. quadratischen Terms ansehen.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
ich habe mich jetzt nochmal für eine andere Methode entschieden.
Da mein Datensatz etwas komplex ist, und zwar:
Ich habe Gangdaten, welche kontinuierlich aufgezeichnet werden. Die Probanden gehen eine Strecke dauernd hin und zurück für eine bestimmte Zeit. Ich will diese Truns nicht in meiner Auswertung haben, deshalb muss ich die beiden Datein (Gangaten und Frames) abgleichen.
for iframes=1:length(f(:,1))
ind=[];
for istrides=1:length(g(:,1)) if g(istrides,1)>= f(iframes,1) && g(istrides,2)<= f(iframes,2)
ind=[ind,istrides];
end end
%Parameter übergeben
gneu2=g(ind,:);
%hier linear pro Frame detrenden
iflength(ind)>3 iflength(ind)==2
trendlin(ind,:)=nan;
else
trendlin(ind,:)=DetrendLin(gneu2);
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
nach einem Neustart von Matlab, war der Hinweis nicht mehr da.
Die if-Abfrage habe ich rausgenommen.
Vielen Dank für die Hilfe und viele Grüße,
Ines
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.