How to replace the missing value using the correlation between x and y?

조회 수: 8 (최근 30일)
Omar Mfarij
Omar Mfarij 2022년 6월 18일
답변: Jeff Miller 2022년 6월 20일
Hi,
Let's say I have this data:
T x y
------ ------ ------
1 150 7.2
2 150 7.1
3 210 NaN
4 235 6.1
5 280 5.5
I tried to use correlation on MATLAB but it gives me weired output where all the values are NaNs with size 5x5
Is there a way to replace this missing value using the correlation between x and y?

답변 (2개)

Ayush Singh
Ayush Singh 2022년 6월 18일
Hi Omar,
I understand from your question that you want to have the correlation between x and y but at the same time emit the NaN values.
You could use 'rows' , 'complete' name -pair values to avoid the rows with NaN values.
CorrXY = corr (X , Y, 'rows', 'complete') % Here X and Y are the two variables for which you are finding the correlation
  댓글 수: 1
Omar Mfarij
Omar Mfarij 2022년 6월 18일
편집: Omar Mfarij 2022년 6월 18일
Hi Ayush,
Thanks for answering!
I tried this method before, and it returns everything with NaN. That is why it was weird to me!
What I need is to not ignore the missing value. I need to replace this NaN value after I correlate between x and y. I can simply replace it with mean value and then correlate between x and y.
However, the correlation comes first and then replacing the missing value.

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


Jeff Miller
Jeff Miller 2022년 6월 20일
Omar, if I understand what you are trying to do, I would suggest:
  • Form a reduced dataset where you drop all rows with NANs. These rows cannot tell you anything about the relation between X and Y since you don't have Y.
  • Using regress or fitlm, fit a linear model to predict Y from X within this reduced dataset.
  • Going back to the full dataset, compute the predicted Y for each case with NAN based on its X and the linear model just fit.

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

제품


릴리스

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by