Red de conocimiento informático - Material del sitio web - Cómo utilizar matlab para implementar análisis de correlación parcial

Cómo utilizar matlab para implementar análisis de correlación parcial

Análisis de mínimos cuadrados parciales de Matlab (2009-11-20 16:43:07) Reimpreso ▼

Etiqueta: Varios

Función de variable dependiente única y=pls(pz)

[row, col]=size(pz);

aver=mean(pz);

stdcov=std(pz); Encuentra la media y la desviación estándar

rr=corrcoef(pz); Encontrar matriz de coeficientes de correlación

data=zscore(pz); normalización de datos

stdarr = ( pz - aver(ones (fila, 1); ), :))./ stdcov( ones(row, 1), :); Resultados de datos normalizados y zscore()

x0=pz(:, 1:col-1); :, end); Extraer datos originales de la variable independiente y la variable dependiente

e0=stdarr(:, 1:col-1); f0=stdarr(:, end);

num=size(e0, 1); encuentra el número de puntos de muestra

temp=eye(col-1); matriz diagonal

para i= 1: col-1

Calcule los vectores de puntuación de w, w* y t,

w(:,i)= (e0'* f0)/ norm( e0'* f0);

t(:, i)=e0*w(:, i) calcula la puntuación del componente ti

alpha(:, i)=e0 '*t( :,i)/(t(:,i)'*t(:,i)) calcula alpha_i, donde (t (:,i)'*t(:,i)) es equivalente a norm(t (:, i))^2

e=e0-t(:,i)*alpha(:,i)' Calcular la matriz residual

e0=e;

p >

Calcular la matriz w*

Si i==1

w_star(:i)=w(:, i);

else

for j=1:i-1

temp=temp*(eye(col-1)-w(:,j)*alpha(:,j)');< / p>

end

w_star(:,i)=temp*w(:,i);

end

Calcula el siguiente ss( i ) valor

beta=[t(:,1:i), ones(num,1)]\f0 Encuentra los coeficientes de la ecuación de regresión

beta(end,:) = []; Eliminar el término constante del análisis de regresión

cancha=f0-t(:,1:i)* beta; Encontrar la matriz residual

ss(i)=sum; (sum (cancha.^2)); Encuentra la suma de errores al cuadrado

Cálculo posterior presiona(i)

para j=1: num

t1 =t(: , 1: i); f1=f0;

she_t=t1(j,:); she_f=f1(j,:); >

t1(j,:)=[]; f1(j,:)=[]; Eliminar el punto de observación j

beta1=[t1, ones(num-1, 1)] \f1 ; Encuentra los coeficientes utilizados para el análisis de regresión

beta1(end,:)=[]; Elimina el término constante del análisis de regresión

cancha=she_f-she_t*beta1; la dirección del residuo

Importe

press_i(j)=sum(cancha.^2

end

press(i)=sum(press_i)

<); p>si igt;1

Q_h2(i)=1-presione(i)/ss(i-1)

si no

Q_h2(1) =1

end

if Q_h2(i)lt;0.0985

fprintf('El número propuesto de componentes r=d',i); p>

r=i;

romper

fin

fin

beta_z=[t, unos(núm , 1 )]\f0; Encuentre el coeficiente de regresión de Y normalizado en relación con el vector de puntuación del componente principal t

beta_z(end,:) =[]; xishu=w_star *beta_z; Encuentre el coeficiente de regresión de Y estandarizado en X, que es el coeficiente de regresión de datos estandarizados.

mu_x=aver(1:col-1); =aver(fin) ;

sig_x=stdcov(1:col-1); sig_y=stdcov(fin);

ch0=mu_y-mu_x./sig_x*sig_y*xishu ; Calcular la regresión de datos originales El término constante de la ecuación

xish=xishu'. /sig_x*sig_y; Calcula los coeficientes de la ecuación de regresión de datos original, cada columna es una ecuación de regresión

Rc=corrcoef(x0*xish' ch0, y0)

sol=[ ch0; xish'] muestra los coeficientes de la ecuación de regresión, cada columna es una ecuación y el primer número de cada columna es el término constante función de variable multidependiente y=pls(pz, Xnum, Ynum)

[row, col ]=size(pz);

aver=mean(pz);

stdcov=std(pz); Encuentra la media y la desviación estándar

rr=corrcoef(pz).

Encuentre la matriz de coeficientes de correlación

data=zscore(pz); normalización de datos

stdarr = (pz - aver(ones(row, 1),:).)./ stdcov ( ones(row, 1),:); variables independientes estandarizadas

n=Xnum; m=Ynum; n es el número de variables independientes, m es el número de variables dependientes

x0 =pz(:, 1:n); y0=pz(:, n 1: end); Extrae los datos originales de las variables independientes y dependientes

e0=data(:, 1:n) ; f0 =data(:, n 1: end); Extrae datos de variables independientes y dependientes estandarizadas

num=size(e0, 1); temp=eye( n); matriz diagonal

para i=1: n

Lo siguiente calculará el vector de puntuación de w, w* y t vector de puntuación,

matrix= e0'*f0*f0'*e0;

[vec, val]=eig(matrix) Encuentra valores propios y vectores propios

val=diag(val ); Proponer elemento diagonal

[val, ind]=sort(val,'descend');

w(:, i)=vec(:, ind(1)) propone la característica máxima El vector propio correspondiente al valor

t(:,i)=e0*w(:,i) calcula la puntuación del componente ti

alpha(:,i )=e0'* t(:,i)/(t(:,i)'*t(:,i)) calcula alpha_i, donde (t(:i)'*t(:,i)) es equivalente a norm(t(:, i))^2

e=e0-t(:,i)*alpha(:,i)' Calcular la matriz residual

e0=e ;

Calcular la matriz w*

Si i==1

w_star(:,i)=w(:,i);

else

for j=1:i-1

temp=temp*(eye(n)-w(:,j)*alpha(:,j)') ;

end

w_star(:,i)=temp* w(:,i);

end

Calcular el valor de ss(i) a continuación

beta=[t(:,1:i),ones(num,1)]/f0 Encuentra los coeficientes de la ecuación de regresión

beta( end,:)=[]; Eliminar el término constante para el análisis de regresión

cancha= f0-t(:,1:i)*beta Encuentra la matriz residual

ss( i)=sum(sum(cancha. ^2)); Encuentra la suma de errores al cuadrado

El siguiente cálculo presiona(i)

para j=1: num

t1=t(:, 1 :i); f1=f0;

she_t=t1(j,:); she_f=f1(j,:); p>

t1(j,: )=[]; f1(j,:)=[]; Eliminar la j-ésima observación

beta1=[t1, ones(num-1, 1)] \f1; Buscar para el análisis de regresión Coeficiente de

beta1(end,:)=[]; Eliminar el término constante del análisis de regresión

cancha=she_f-she_t*beta1; vector residual

press_i(j)=sum(cancha.^2);

fin

presionar_i(i)= suma(presionar_i)

si igt 1

Q_h2(i)=1-presionar; (i)/ss(i-1)

else

Q_h2(1)=1

fin

si Q_h2(i )lt; 0.0985

fprintf('Número de componentes propuestos r=d',i);

r=i;

end

end

beta_z=[t(:,1:r),ones(num,1)]/f0; encuentre el coeficiente de regresión de Y estandarizado en t

beta_z( end ,:)=[]; Eliminar el término constante

xishu=w_star(:,1:r)*beta_z; Encuentre el coeficiente de regresión de Y estandarizado en X, que es el coeficiente de regresión de datos estandarizados. Cada columna es una ecuación de regresión

mu_x=aver(1:n);mu_y=aver(n 1:end);

mu_x=ver(n 1:end); mu_y=ver( n 1: fin);