handicap I meet in testing the HpbM code

    技术2022-05-11  60

    It seams that the synthetic data generating method whitch is included in the literature HpbM is invalid,  tested both in the HpbM and pbM programs.

    However when use the method delineated in the pbM paper, the pbM program can get the correct result.

    I can't find the reason.

    It seams that the simulation of the linear model can obtain satisfied output, which is close to the true parameter(user-set) of the model.

                                                        ----------------(compiled by qianjiang 1/5/2006,11:25)

    This afternoon I find that the c++ code show perfect result, then I began to analyse the MATLAB code in the function y=GetNormVec( data,  dim) (in function: PbMRegression). The sticking point is :

    % y = y / sum(y); % ---------- raw sentence. This is an incorrect normalization operation.y=y'/sqrt(y'*y) ;  % ------------- modified by qianjiang 1/5/2006,16:50.

    ----------------(compiled by qianjiang 1/5/2006,20:00)

    The above is one side, the other is as follows:

    data(:,1) = corr(:,1) .* corr(:,3);data(:,2) = corr(:,2) .* corr(:,3);data(:,3) =  corr(:,3);data(:,4) = corr(:,1) .* corr(:,4);data(:,5) = corr(:,2) .* corr(:,4);data(:,6) =  corr(:,4);data(:,7) = corr(:,1) ;data(:,8) = corr(:,1) .* corr(:,3); % Errordata(:,1) = corr(:,2) ;                  % Error

    the correct one should be:

    data(:,1) = corr(:,1) .* corr(:,3);data(:,2) = corr(:,2) .* corr(:,3);data(:,3) =  corr(:,3);data(:,4) = corr(:,1) .* corr(:,4);data(:,5) = corr(:,2) .* corr(:,4);data(:,6) =  corr(:,4);data(:,7) = corr(:,1) ;data(:,8) = corr(:,2) ;

    ----------------(compiled by qianjiang 1/5/2006,20:30)

    %----------1/2/2006  20:20Both the pbMregression and pbMfun function need to call the densityestimate function,

    up to now, the densityestimate and kernel function is based on point calculation rather thanvector.

    It can perhaps affect the computing cost.

    There's a trade-off between simplifying the function style in the input space and reducing the computing cost.

    hpbMregression is the main function, and it call other functions.

    %-----------1/5/2006 16:10In the folder, some functions has already been contained in the M function, which then is called subfuctionthe main M files are(the relation): test_real_hpbm->HPbMRegression->HPbMFun ----------------------------------------------------------------->GetBasin ----------------------------------------------------------------->GetBandwidth----------------------------------------------------------------->AdaptiveMShift'->' stand for calling function.

    GenerateSynData*.m  is used for simulation.

         ~~~~~~~~~<2D & 3D Simulation Topic for pbM with Conjugate Gradient Method>~~~~~~~~~

    %----------------------- 1/8/2006,17:38Now I want to see the performance of pbM with conjugate gradient method by considering the 2D linear model.

    %----------------------- 1/8/2006,20:32In the experiment, I find that under the 2D model, it can get the correct result(only 1 iterativeness). Note that in this case the variance is homoscedastic.            the file folder name: HpbM_2D_Jan.8_20-40

    %-----------1/8/2006 20:39With the experiment of 2D simulation, Now I want to handle the simulation example in the reference HpbM without considering the heteroscedasticity for simplicity, that is sigma=1.But the result disappoint me. Next I want to test the code with the 3D linear model different from the simulation example which is homoscedastic.   --- 21:59 The result is also satisfied(10 iterativeness)---            the file folder name: pbM_3D_Jan.8_20-40

    %-------------------------- 1/10/2006, 22:26Theta2Beta.m   if sin(Beta(dim-1)) < 0   Beta(dim-1)=acos(Theta(2)/s)+pi; ---> Beta(dim-1)= 2*pi - acos(Theta(2)/s); endThis is a critical  problem of  my M code///


    最新回复(0)