clear all
clc
format short
X = [25 25 28 32 32 32 38 42 48 51 51 58 62 65];
Y = [180 195 186 180 210 197 239 183 204 221 243 208 222 269];
% X = [45 50 55 60 65 70 75]
% Y = [24.2 25 23.3 22 21.5 20.6 19.8]
%X = [3 5 7 8 10 11 12 12 13 15 15 16 18 19 20];
%Y = [7 20 20 15 25 17 20 35 26 25 35 32 44 37 45];
% X = [60 70 80 85 95];
% Y = [70 65 70 95 85];
sum_x = sum(X)
sum_y = sum(Y)
xsqr = X.*X
xy = X.*Y
ysqr = Y.*Y
sum_xsqr = sum(xsqr)
sum_xy = sum(xy)
sum_ysqr = sum(ysqr)
n = length(X);
S_xx = sum_xsqr - (n*((sum_x/n)^2))
S_xy = sum_xy - (n*(sum_x/n)*(sum_y/n))
S_yy = sum_ysqr - (n*((sum_y/n)^2))
B = S_xy/S_xx
A = (sum_y/n) - B*(sum_x/n)
% Step II
% Build intervals of confidence
SS_R = (S_xx * S_yy - (S_xy^2)) / S_xx
t_cr = 1.77;
left = B - (sqrt(SS_R/((n-2)*S_xx)) * t_cr)
right = B + (sqrt(SS_R/((n-2)*S_xx)) * t_cr)
beta = 0;
if( beta >= left)
disp('stop')
else
disp('yes, beta =/= 0, go on')
end
for k = 1:n
y_cap(k) = A+B*X(k);
res(k) = Y(k) - y_cap(k);
end
y_cap
res
res_sqr = res.*res;
sum_res_sqr = sum(res_sqr)
sum_res = sum(res)
mean_appx = (sum(res))/n;
if (mean_appx >= 0.1)
disp('stop'), disp(mean_appx)
else
disp('go on'), disp(mean_appx)
end
% Step III
% Calculate Proportion
i_uno = (1-0.375)/(n+0.25);
prop = ((1:n)-1)/(n+0.25) + i_uno
z_score(1:n) = NORMINV(prop(1:n),0,1)
ordered_res = sort(res)
sum_z = sum((z_score.*z_score));
mid_flag = 0;
for k = 1:length(prop)
if(prop(k) >= 0.50 & ~mid_flag)
mid = k;
mid_flag = 1;
end
if(mid_flag)
break;
end
end
mid
%mid = find(prop == 0.500);
if(mod(n,2))
t(1:mid-1) = abs(z_score(1:mid-1)).*(abs(ordered_res(1:mid-1)) + abs(ordered_res(n:-1:mid+1)));
else
t(1:mid-1) = abs(z_score(1:mid-1)).*(abs(ordered_res(1:mid-1)) + abs(ordered_res(n:-1:mid)));
end
top = sum(t)
rb = sum_res/n;
zb = sum(z_score)/n;
bleft = sqrt(sum_res_sqr - n*(rb^2));
bright = sqrt(sum_z - n*(zb^2));
top/(bleft*bright)