Reduce dimensions of Sobol point set
Reduce Dimensions of Sobol Point Set
Generate a seven-dimensional Sobol point set and scramble the points.
p = sobolset(7); ps = scramble(p,'MatousekAffineOwen')
ps = Sobol point set in 7 dimensions (9007199254740992 points) Properties: Skip : 0 Leap : 0 ScrambleMethod : MatousekAffineOwen PointOrder : standard
Split the first 7168 points in
ps into seven levels of 1024 points each. Reduce the first 1024 points to be one-dimensional, the second 1024 points to be two-dimensional, and so on. For each level, compute the variance of the point values in each dimension.
variance = NaN(7); for level = 1:7 pr = reduceDimensions(ps,level); pr.Skip = (level-1)*1024; pts = pr(1:1024,:); variance(level,1:level) = var(pts); end
Plot the variances. The dark blue bars show the variance of the points in the first dimension, the dark orange bars show the variance of the points in the second dimension, and so on.
bar(variance) xlabel('Level') ylabel('Variances')
d — Number of dimensions to retain
positive integer scalar
Number of dimensions to retain from the point set
as a positive integer scalar between 1 and the number of dimensions in
p. The function always retains the first
Introduced in R2019a