how to fit linear trend in time series

15 ビュー (過去 30 日間)
devendra
devendra 2014 年 4 月 26 日
コメント済み: Star Strider 2017 年 4 月 21 日
i have this time series liner fitted figure but i plotted this figure with the help of matlab tool box((basic fitting)(liner fit)) but i want to do same thing from matlab code.thank you in advance.

採用された回答

Star Strider
Star Strider 2014 年 4 月 26 日
編集済み: Star Strider 2014 年 4 月 27 日
See if this does what you want:
% Create Data
yrs = linspace(1,100,100);
rainfall = 0.3*yrs + 350*rand(1,100);
% Fit Data
b = polyfit(yrs,rainfall, 1);
fr = polyval(b, yrs);
% Plot Data & Fit
figure(1)
plot(yrs, rainfall, '-b')
hold on
plot(yrs, fr, '-r')
hold off
h1 = legend('Data', 'Linear', 'Location','NE')
set(h1, 'FontSize',8)
[xlim ylim]
textposx = diff(xlim)*0.50+min(xlim);
textposy = diff(ylim)*0.95+min(ylim);
text(textposx,textposy, sprintf('y = %.2f*x %c %0.2f', b(1), char(45-(sign(b(1))+1)), abs(b(2))), 'FontSize',8)
xlabel('Years')
ylabel('Rainfall (mm)')
EDIT — Added textposx and textposy.
  6 件のコメント
Muhammad Usman Saleem
Muhammad Usman Saleem 2017 年 4 月 21 日
@Star Strider I have plot my timeseries plot through this method
myfile=load('time.txt');
xx = myfile(:,2);
dataa=myfile(:,1);
x=xx.';
ts1 = timeseries(x,1:length(x));
ts1.Name = 'Daily Count';
ts1.TimeInfo.Units = 'days';
ts1.TimeInfo.StartDate = '01-Jan-2003'; % Set start date.
ts1.TimeInfo.Format = 'mmm dd, yy'; % Set format for display on x-axis.
ts1.Time = ts1.Time - ts1.Time(1); % Express time relative to the start date.
plot(ts1)
How can i use ploy fit against the time and ts1.Data? My data is a vector but date is in date format. Can you tell me how?
Star Strider
Star Strider 2017 年 4 月 21 日
You need to convert the dates and times to date numbers using the datenum function. Use polyfit with 3 outputs so that it will do centring and scaling. Be sure to include all the outputs in your polyval call as well. Use the datetick function to plot the x-axis as the dates and times you want.

サインインしてコメントする。

その他の回答 (1 件)

dpb
dpb 2014 年 4 月 26 日
p=polyfit(y,x);
doc polyfit % for more details
doc polyval % to evaluate

カテゴリ

Help Center および File ExchangeLine Plots についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by