[bootstrap] improved code

This commit is contained in:
2020-12-07 22:37:36 +01:00
parent e1c6c32db0
commit 430bdfb7fd
4 changed files with 34 additions and 33 deletions

View File

@@ -3,7 +3,7 @@ corrs = [1.0, 0.6, 0.0, -0.9];
for k = [1:length(corrs)]
r = corrs(k);
x = randn(n, 1);
y = r*x; % linear dependence of y on x
y = r*x; % linear dependence of y on x
% add noise to destroy perfect correlations:
y = y + sqrt(1.0-r*r)*randn(n, 1);
% compute correlation coefficient of data:

View File

@@ -1,15 +1,15 @@
data = randn(100, 1); % generate some data
sigma = 0.2; % std. dev. of Gaussian kernel
xmin = -4.0; % minimum x value for kernel density
xmax = 4.0; % maximum x value for kernel density
dx = 0.05*sigma; % step size for kernel density
xg = [-4.0*sigma:dx:4.0*sigma]; % x-axis for single Gaussian kernel
data = randn(100, 1); % generate some data
sigma = 0.2; % std. dev. of Gaussian kernel
xmin = -4.0; % minimum x value for kernel density
xmax = 4.0; % maximum x value for kernel density
dx = 0.05*sigma; % step size for kernel density
xg = [-4.0*sigma:dx:4.0*sigma]; % x-axis for single Gaussian kernel
% single Gaussian kernel:
kernel = exp(-0.5*(xg/sigma).^2)/sqrt(2.0*pi)/sigma;
ng = floor((length(kernel)-1)/2); % half the length of the Gaussian
x = [xmin:dx:xmax+0.5*dx]; % x-axis for kernel density
kd = zeros(1, length(x)); % vector for kernel density
for i = 1:length(data) % for every data value ...
x = [xmin:dx:xmax+0.5*dx]; % x-axis for kernel density
kd = zeros(1, length(x)); % vector for kernel density
for i = 1:length(data) % for every data value ...
xd = data(i);
% index of data value in kernel density vector:
inx = round((xd-xmin)/dx)+1;
@@ -17,8 +17,8 @@ for i = 1:length(data) % for every data value ...
k0 = inx-ng;
% end index for Gaussian in kernel density vector:
k1 = inx+ng;
g0 = 1; % start index in Gaussian
g1 = length(kernel); % end index in Gaussian
g0 = 1; % start index in Gaussian
g1 = length(kernel); % end index in Gaussian
% check whether left side of Gaussian extends below xmin:
if inx < ng+1
% adjust start indices accordingly:
@@ -34,7 +34,7 @@ for i = 1:length(data) % for every data value ...
% add Gaussian on kernel density:
kd(k0:k1) = kd(k0:k1) + kernel(g0:g1);
end
kd = kd/length(data); % normalize by number of data points
kd = kd/length(data); % normalize by number of data points
% plot the computed kernel density:
plot(x, kd, 'b', 'linewidth', 4, 'displayname', 'manual')
@@ -45,4 +45,4 @@ plot(x, kd, '--r', 'linewidth', 4, 'displayname', 'ksdensity()')
hold off
xlabel('x')
ylabel('Probability density')
legend('show')
legend('show')