alpha-lamda Prognostic Accuracy

조회 수: 3 (최근 30일)
Vincent Ike 2024년 5월 21일
답변: Vincent Ike 2024년 5월 28일
Hi MATLAB community,
I have been trying to create a prognostic code using Hidden Markov Model.
Having gotten my state posterior probabilities, how do I perform the a-lamda perfomance metrics? I mean what becomes the trueRUL and what is the estimatedRUL??

댓글을 달려면 로그인하십시오.

답변 (3개)

surya venu 2024년 5월 22일
Hi,
Here's a breakdown of how to interpret the relevant terms and calculate the α-Lambda performance metric:
True Remaining Useful Life (RUL):
• In prognostic scenarios, you might have access to historical data or labels indicating the failure times of similar systems.
• If you have this information, you can directly calculate the true RUL for each data point in your test set as the difference between the current time step (t) and the actual failure time (t_failure).
Estimated RUL:
• Once you've obtained the state posterior probabilities for a given time step (t), you can estimate the RUL using various approaches:
1) State-Averaged Mapping:
• Assign a pre-defined RUL value to each hidden state in your HMM. This value could be based on domain knowledge or historical data.
• Calculate the weighted average of these assigned RUL values using the state posterior probabilities as weights:
estimatedRUL_t = sum(pi_t(i) * RUL_i) for all states i
• Here, pi_t(i) is the posterior probability of being in state "i" at time "t", and RUL_i is the assigned RUL value for state "i".
2) Learning-Based Mapping:
• Train a separate regression model to map the state posterior probabilities to the estimated RUL.
• This model could be a simple linear regression, a neural network, or any other suitable regression technique.
• Train the regression model on a dataset where you have both the state posterior probabilities and the corresponding true RUL values.
α-Lambda Performance Metric:
• It's calculated as follows: alpha_lambda = 1 / N * sum( |estimatedRUL_t - trueRUL_t| / trueRUL_t) for all N data points in the test set
• A lower α-Lambda value indicates better prediction accuracy. It represents the average fractional error between the estimated and true RUL, expressed as a proportion of the true RUL.
Hope it helps.
댓글 수: 2없음 표시없음 숨기기
Vincent Ike 2024년 5월 24일
Hi Surya,
First I want to thank you for your prompt response, than I anticipated.
Please, if you have a robust script to help me with, I will be immensely grateful. This is months of repeated attempts for me.
I actually wrote this backward recursive piece on defining state probabilities, and obtaining the RUL:
new_trans_mat=trans_mat;
for k=3:1:7
new_trans_mat(k,k)=new_trans_mat(k-1,k-1)-0.1111;
new_trans_mat(k,k+1)=1-new_trans_mat(k,k);
end
new_trans_mat(end,end-1)=1; new_trans_mat=new_trans_mat(:,1:end-1); %extended the %stochastic transition matrix beyond my model
rul=length(Y)-m; %rul is the time in the future I am considering before failure
N=length(new_trans_mat); k=N;
est_pdf(1,k-1)=new_trans_mat(k-1,k);
for t=2:rul
est_pdf(t,k-1)=new_trans_mat(k-1,k-1)*est_pdf(t-1,k-1);
end
for k=N:-1:3
if any(new_trans_mat(k-2,N))
est_pdf(1,k-2)=new_trans_mat(k-2,N);
else; est_pdf(1,k-2)=0; end
for t=2:rul
est_pdf(t,k-2)=new_trans_mat(k-2,k-2)*est_pdf(t-1,k-2) ...
+ new_trans_mat(k-2,k-1)*est_pdf(t-1,k-1);
end
end
est_pdf=[est_pdf(:,[1 2]) sum(est_pdf(:,3:5),2)]; % compressed future state into current
% multiply state prob above with posterior probability
for t=1:length(est_pdf)
RUL(t) = sum(est_pdf(t,:).*tau(t,:),2)*t;
end
The RUL is far less than/different from expected.
Vincent Ike 2024년 5월 24일
if you have a template, please, can you share as I need it badly?

댓글을 달려면 로그인하십시오.

Vincent Ike 2024년 5월 28일
this is the state-based code I was trying to develop, maybe this will help understand what I want to produce
댓글 수: 0이전 댓글 -2개 표시이전 댓글 -2개 숨기기

댓글을 달려면 로그인하십시오.

Vincent Ike 2024년 5월 28일
the former will produce the RUL in states, before multiplying with the posterior prob

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Predict Remaining Useful Life (RUL)에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by