Using Cross-Correlation for variable selection from a time series database
5 views (last 30 days)
Show older comments
Hi all, I would like to use cross correlation function to a large time series database (e.g 50 different predictor variables) and then perform a variable section,feature selection. So from the large database create a new smaller one(e.g 10 variables). The new subset will contain the most explanatory variables which will have the highest correlation with the independent variable so I can build robust non linear model. I will really appreciate if someone can give me an insight how I will build this model? Any other ideas or an existing code on how to create this subset are welcome!
Thanks
0 Comments
Answers (1)
nick
on 14 Apr 2025
Hello Karamos,
To perform feature selection, you can use the 'xcorr' function to calculate the cross-correlation for each predictor variable with the independent variable as shown:
numPredictors = size(X, 2);
correlations = zeros(numPredictors, 1);
for i = 1:numPredictors
[c, lags] = xcorr(X(:, i), Y, 'coeff');
correlations(i) = max(abs(c));
end
You can then select the number of top features based on the highest correlation values:
numTopFeatures = 10; % Number of features to select
[~, sortedIndices] = sort(correlations, 'descend');
topFeatureIndices = sortedIndices(1:numTopFeatures);
Kindly refer to the documentation by executing the following command in MATLAB command Window to learn more about 'xcorr' function :
doc xcorr
0 Comments
See Also
Categories
Find more on Database Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!