function [S6,lamda6]=fourShrinkT6(sdcorrObsPL,SampleData,choosesn) % Start shrinkage method % --------------------------------------------------------------------- % Sample Covariance Matrix zip=sdcorrObsPL; zi=mean(zip,2); zi=zi(:,ones(SampleData,1)); zjp=zip'; zj=mean(zjp,1); zj=zj(ones(SampleData,1),:); samplec=((zip-zi)*(zjp-zj))/(SampleData-1); % Correlation Matrix From Sample Covariance Matrix Cij=samplec; varSamC=diag(samplec); Cii=varSamC(:,ones(choosesn,1)); Cjj=Cii'; CorrMat=Cij./sqrt(Cii.*Cjj); % Average Correlation Between Network Nodes % avgCorr=(sum(sum(CorrMat))) / (choosesn*((choosesn)-1)); var=diag(samplec); sqrtvar=sqrt(var); avgCorr=(sum(sum(samplec./(sqrtvar(:,ones(choosesn,1)).*sqrtvar(:,ones(choosesn,1))')))-choosesn)/(choosesn*(choosesn-1)); % Variance of Sample Cij vij=((SampleData-1)/SampleData)*Cij; for count1=1:SampleData vijp(:,:,count1)=(zip(:,count1)-zi(:,count1))*(zjp(count1,:)-zj(count1,:)); end for count2=1:SampleData vcij(:,:,count2)=(vijp(:,:,count2)-vij).^2; end VarCij=(SampleData/((SampleData-1)^3)).*sum(vcij,3); % Variance of Sample Cii for count3=1:SampleData vcii(:,:,count3)=((diag(diag(vijp(:,:,count3))))-(diag(diag(vij)))).^2; end VarCii=(SampleData/((SampleData-1)^3)).*sum(vcii,3); % Diagonal, unequal variance (Target F) T6ijond=diag(diag(Cii)); T6ijoffd=avgCorr*sqrt(Cii.*Cjj)-diag(diag(avgCorr*sqrt(Cii.*Cjj))); T6ij=T6ijond+T6ijoffd; % Finding Lamda % Covariance of Sample C for count4=1:SampleData for i=1:length(vij(:,1)) for j=1:length(vij(1,:)) CiiCij(i,j,count4)=(vijp(i,i,count4)-vij(i,i))*(vijp(i,j,count4)-vij(i,j)); end end end CovCiiCij=(SampleData/(SampleData-1)^3).*sum(CiiCij,3); for count5=1:SampleData for i=1:length(vij(:,1)) for j=1:length(vij(1,:)) CjjCij(i,j,count5)=(vijp(j,j,count5)-vij(j,j))*(vijp(i,j,count5)-vij(i,j)); end end end CovCjjCij=(SampleData/(SampleData-1)^3).*sum(CjjCij,3); for i=1:length(vij(:,1)) for j=1:length(vij(1,:)) Cov1(i,j)=sqrt((vij(j,j))/vij(i,i))*CovCiiCij(i,j); end end for i=1:length(vij(:,1)) for j=1:length(vij(1,:)) Cov2(i,j)=sqrt((vij(i,i))/vij(j,j))*CovCjjCij(i,j); end end CovTC=(avgCorr/2).*(Cov1+Cov2); numer6=sum(sum(VarCij-CovTC)); denor6=norm(Cij-T6ij,'fro').^2; lamdaconstant6=numer6/denor6; lamda6=max(0,min(1,lamdaconstant6)); % Shrinkage Covariance Matrix S6=(lamda6*T6ij) + (1-lamda6)*(samplec); % --------------------------------------------------------------------- % End shrinkage method end