%% Script para calculara regresion multiple y posteriormente metodo STEPWISE
%%

clear % limpia las memorias 
clf  % limpia las figuras 
S= xlsread('step.xls') % lee una matriz en excell la matriz tiene en la primer cfila nombres y anduvo bien  
help toolbox\stats %   me da la ayuda estadistica: todas las funciones 

S(:,1)  % solo primer columna  
S(2,:)  % solo segunda fila   

mean (S) %  lo hace por columnas 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%   MATRIZ DE CORRELACION %%%%%
clear % limpia las memorias 
clf  % limpia las figuras 

[R,P]=CORRCOEF(S) % also returns P, a matrix of p-values for testing
% the hypothesis of no correlation.  Each p-value is the probability
% of getting a correlation as large as the observed value by random
% chance, when the true correlation is zero.  If P(i,j) is small, say
% less than 0.05, then the correlation R(i,j) is significant.
 
GG= xlsread('base_datos_sinuno.xls') 
[R,P]=CORRCOEF(GG)  % dio igual que el statistica

Y=GG(:,5)
X=GG(:,1)
B= regress(Y,X) % por quien es X no tiene ordenada al origen 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%% agrego ordenada al origen               %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear % limpia las memorias 
clf  % limpia las figuras 

GG= xlsread('base_datos.xls') 

Y=GG(:,6)
X=GG(:,1:2)
B= regress(Y,X) % por quien es X SI tiene ordenada al origen 

Y=GG(:,6)
X=GG(:,1:3)
B= regress(Y,X) % por quien es X SI tiene ordenada al origen 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% REGRESION MULTIPLE 

clear
S=xlsread('base_datos_regresion.xls')
Y=S(:,6)
X=S(:,1:4)
B= regress(Y,X) % por quien es X no tiene ordenada al origen 

% B = REGRESS(Y,X) % returns the vector B of regression coefficients in the
% linear model Y = X*B. X is an n-by-p design matrix, with rows
%    corresponding to observations and columns to predictor variables.  Y is
%    an n-by-1 vector of response observations.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear
S=xlsread('base_datos_regresion.xls')
Y=S(:,6)
X=S(:,1:5)
B= regress(Y,X) % por quien es X AHORA SI tiene ordenada al origen 

[B,BINT,R,RINT,STATS] = REGRESS(Y,X) % returns 
%  BINT of 95% confidence  intervals for B. NO LO MIRAMOS !!!!
% vector R of residuals
% a matrix RINT of intervals that can be used to diagnose outliers. NO LO
% MIRAMOS !!!!
% a vector STATS containing the R-square statistic, the F statistic and p value for the full model,
% and an estimate of the error variance.

%%%%%  PLOTEO LOS RESIDUOS A VER SI SON ALEATORIOS 
plot(R,Y,'k.')  % plotea y en funcion de los residuos, un punto negro 
[B,BINT,R,RINT,STATS] = regress(S(:,1),S(:,2:6))
%[B,R,STATS] = regress(S(:,1),S(:,2:6))

%%%  reconstruyo el y estimado 
YBONETE=X*B

plot(YBONETE,'k.') %solo puntos
hold on
plot(Y,'r') %% solo recta / lineas rojas 
hold on

%%%%%%
plot(YBONETE,'k')  %% grafica la linea sin puntos 
hold on % me mantiene el grafico de arriba 
plot(YBONETE,'k')

clf  % limpia las figuras 
%% grafico el la variable Y, y la variable estimada
plot(YBONETE,'k.')  %% grafica solo puntos %%%  OJO CON MMINUSCULAS Y MAYUSCULAS

plot(YBONETE,'k')  %% grafica la linea sin puntos 
hold on % me mantiene el grafico de arriba 
plot(YBONETE,'k')

%%%  
%%%  Metodo stepwise %%%%%%%
stepwise(S(:,2:5),S(:,1),[4]) %% COMENTARIO [4] SIGNIFICA QUE SE QUEDA CON LA CUARTA VARIABLE. 
%% PARA QUE INCLUYA TODAS LAS VARIABLES PARA EL ANALISIS NO PONER NADA

%%5 UNA VEZ QUE TIENE EL "MEJOR" MODELO IR A LA CASILLA DE EXPORTAR. 
%% A PARTIR DE ALLI TENDRAN LOS BETA QUE NECESITAN PARA LA ECUACION
%% SIGUIENTE

Media=mean(S(:,1)) - mean(S(:,2:5))*beta
% Reconstruccion
Y=S(:,2:5)*beta+Media
Hold on
TITLE('Observado (azul) y estimacion SW (rojo)')
plot(Y,'r')
plot(S(:,1),'b-')
hold off
shg