Interim Project Report
Session 2010 - 2011
Student name: Hongji Xu |
Project Supervisor:Xiujuan Zhao |
Project Title as submitted: Application of TEI@I Methodology in Crude Oil Price Forecasting |
Interim Project Report 1
Previous work on the topic. 2
Achievements so far. 2
Requirements Specification. 2
Comparison of current progress with your original timeline. 3
Time plan for the remaining work. 3
Appendix. 4
Risk Assessment in the future. 6
Previous work on the topic
Background literature and resources consulted so far:
l Background Research & Algorithm searching.
l Learn about how to do ANN with Matlab.
l Implement the algorithm by programming
Achievements so far
Milestone 1:
l Presented and demonstrated the outlook of whole project.
Milestone 2:
l Some innovative and useful use cases were proposed about TEI@I.
l Requirements analysis, including the functional and non-functional ones.
l Architectural Design for the system.
l Development Methodology for the system.
l Mostly coding is finished.
Requirements Specification
Functional requirements:
l Functional requirements for use case – forecast crude oil price.
l Can forecast both the EU and US crude oil price.
l Can plot the trend curve for the price.
Non-functional requirements:
Core requirements:
1) Reliability: the accuracy of the forecast should be more than 90%;
2) Performance: The text mining should be more efficient than text input;
3) Supportability: The system should be able to install and test in the Windows 7;
4) Design requirement: a relational database is required to be set up for the TEI@I forecasting.
5) Implementation requirement: Simulator software, e.g., MATLAB to work out the algorithms.
6) Implementation requirement: Open-source software APIs and Sensor-based platforms
7) Physical requirement (low):
CPU 1GHz, Memory 512M, Hardware 10G
Comparison of current progress with your original timeline
By comparing the current progress with my original timeline, it almost match what I had planned.
Time plan for the remaining work
4 |
Evaluation and optimization |
3/16/11 |
3/25/11 |
4.1 |
codes evaluation and optimization |
3/16/11 |
3/17/11 |
4.1.1 |
Testing in the simulation environment using TEI@I software |
3/21/11 |
3/23/11 |
4.1.2 |
Bug scanning and correction |
3/23/11 |
3/24/11 |
4.2 |
Enhance the performance of the system |
3/24/11 |
3/25/11 |
5 |
Completing the Report |
3/26/11 |
5/06/11 |
5.1 |
Collecting the data and figures and analysis them |
3/26/11 |
3/28/11 |
5.2 |
Revise and Complete the Project |
3/29/11 |
4/22/11 |
5.3 |
Write Viva's PPT |
4/23/11 |
5/06/11 |
Part code of the main program.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% TEI@I method
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc;
clear;
close all;
warning off;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% simulation parameter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Crude_Oil_type = 'RBRTE';%'RWTC'--- WTI - Cushing, Oklahoma RBRTE--- Brent - Europe
Period = 'Monthly';% 'Weekly','Monthly','Annual'
N_a = 5;% Order of the denominator (# of poles) in arima model
N_c = 3;% Order of the numerator (# of ceros) in arima model
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% parameter parser
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
switch Period;
case 'Weekly';
period_name = 'w';
case 'Monthly';
period_name = 'm';
case 'Annual';
period_name = 'a';
otherwise,
error('error input in Period!');
end;
Plot_original_data = 'On';
Plot_error = 'On';
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% text mining module
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
filename = strcat(Crude_Oil_type,period_name);
filename = strcat(filename,'.xls');
filename = strcat('.\data\',filename);
[data_cell,entry,raw_data] = xlsread(filename,'Data 1');
sample_len = length(data_cell);% the length of sample
read_offset = 4;% read offset
time_seq = raw_data(read_offset:end-1,1);% the date for sample
time_index = 1:sample_len;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Econometrical module(ARIMA)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Enc_data_cell = iddata(data_cell);
Model_Pa = armax(Enc_data_cell,'na',N_a,'nc',N_c);
Pred_data_cell = predict(Enc_data_cell,Model_Pa,1);%Ô¤²â
switch Plot_original_data;
case 'On';
figure(1);
plot(time_index,data_cell,'ro-');hold on;
plot(Pred_data_cell);
xlabel('Time');
ylabel('Crude Oil price');
legend('Original','ARIMA prediction');
grid on;
otherwise;
end;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% ANN model
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
TargetIn = [1:12]+length(time_index);
ARMA_prediction_structure = get(Pred_data_cell);
ARMA_prediction = ARMA_prediction_structure.OutputData{1};
[TestNNOut,ErrHistory] = ANN_RBF(time_index,ARMA_prediction,TargetIn);
% »æÖÆÑ§Ï°Îó²îÇúÏß
switch Plot_error;
case 'On';
figure(2);
grid on;
[xx,Num] = size(ErrHistory);
plot(1:Num,ErrHistory,'k-');
otherwise,
end;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% data plot
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(3);
New_index = [time_index TargetIn];
New_crude_oil_price = [data_cell' TestNNOut];
plot(New_index,New_crude_oil_price,'r-*');
Risk Assessment in the future
To examine what could go wrong in a specific context in the project and to weigh up whether I have taken enough precautions to prevent failure, this Risk Assessment is conducted by firstly identifying potential risks in this project, secondly assess those risks, finally find out some strategies and plans to manage them.
Risk assessment and management
The tables below are used to complete the risk assessment for each identified risk event.
“Likelihood rating” and “Description of impact” can be used to prioritize risk events for continuous monitoring throughout the project, i.e., “Impact rating”.
Each risk event can have multiple Mitigation Strategies and Contingency Plans, i.e., the “Preventative actions”.
Contingency Plans: Description of planned or possible actions to address the risk event.
Description of Risk |
Description of Impact |
Likelihood Rating |
Impact Rating |
Preventative actions |
Mitigation Strategy |
Contingency Plan |
Failure to access required information |
Miss many useful knowledge and information |
Medium,
|
Medium
|
Retention |
Search for alternatives knowledge and information |
Non-availability of components |
Some simulations cannot be conducted |
Low
|
Medium/High
|
Deflection |
Ask for help from the school equipment administration office |
Hardware / equipment not available |
Some simulations and implementation cannot be conducted |
Medium |
High |
Deflection |
Ask for help from supervisor or the school equipment administration office |
Software not suitable for purpose |
Some simulations and implementation cannot be conducted |
Low/Medium |
Medium/High |
Control |
Find the more suitable ones |
Failure to build the demonstrator |
Cannot finish the simulation and the demonstration task in the project |
Low/Medium |
High |
Control |
Demonstrate with the current existing solutions, find out the reasons for failure |
Failure to build the system |
Cannot finish the implementation task in the project |
Low/Medium |
High |
Control |
Try to implement some simple functions to the system |
Failure to implement some required functions |
Some operations of the system cannot function |
Medium/High |
Medium |
Control |
Prioritize the more important ones, then try to implement them first |
Size underestimate |
System larger than expected |
Medium/High |
Medium/High |
Control |
Optimize the algorithms and the code |
Slow response time |
The response time is slower than the expected one |
Medium/High |
Medium |
Control |
Find better algorithms and optimize the algorithms and the code |
Low accuracy |
Affect the functionality of the system |
Medium/High |
High |
Control |
Find better algorithms and optimize the algorithms and the code |
Failure to debug software |
Some operations of the system cannot function properly |
Medium |
Medium |
Deflection
/Control |
Ask for help from supervisor or search for some debug solution |
Testing inadequate |
Cannot get adequate testing results |
Medium/High |
Medium |
Control |
Use different testing methods and compare the testing results |
Requirements change |
Should change current work to adopt to new requirements |
Medium |
Medium |
Control |
Do the project in the process such as spiral, which can better deal with requirements change |
Poor time management |
Cannot finish the project on time |
Medium/High |
High |
Control |
Double check timetable / read e-mail regularly, do the project according to the plan |