Chuck-Chae / RL_Abstraction_MC

0 stars 0 forks source link

TDLAMBDA_main.m #3

Open Chuck-Chae opened 5 months ago

Chuck-Chae commented 5 months ago

clear;

rng(44501)

load('C:\Users\cocjr\Cortese_et_al_2021\RL-modelling\Mydata_Orderblk.mat') numSub = size(Mydata_Orderblk,1); f = fieldnames(Mydata_Orderblk{1,1}); maxB = 20; Nmod = 2; nparm = [3 3]; % 8states와 4states의 파라미터 개수

MF = nan(maxB, numSub, Nmod); NLL = nan(maxB, numSub, Nmod);

for i = 1:Nmod m = zeros(nparm(i),1); v = 6.25; prior_RL(i) = struct('mean',m,'variance',v); Theta{i} = nan(maxB, numSub, nparm(i)); end

fname_FeRL = 'lap_FeRL.mat'; fname_AbRL = 'lap_AbRL.mat';

fcbm_maps = {fname_FeRL fname_AbRL}; models = {@model_RL_8states_v2, @model_RL_4states_v2};

for tr=1:maxB ctr = 1; Data = []; for j = 1:numSub subj = Mydata_Orderblk{j,tr}; if ~isempty(subj) Data{ctr, 1} = subj; ctr = ctr + 1; end end

CBMfrl = cbm_lap(Data, @model_RL_8states_v2, prior_RL(1), fname_FeRL);
CBMarl = cbm_lap(Data, @model_RL_4states_v2, prior_RL(2), fname_AbRL);

fname_hbi_blk = ['hbi_RL_blk_',num2str(tr),'.mat'];

cbm_hbi(Data, models, fcbm_maps, fname_hbi_blk);
load(fname_hbi_blk);

% get indices of subjects for which there was data for this block
subidx = ~cellfun(@isempty, Mydata_Orderblk(:,tr));

MF(tr, subidx, :)       = cbm.output.responsibility;

NLL(tr, subidx, 1)      = -CBMfrl.math.loglik;
Theta{1}(tr, subidx, :) = [CBMfrl.math.theta{:}]';

NLL(tr, subidx, 2)      = -CBMarl.math.loglik;
Theta{2}(tr, subidx, :) = [CBMarl.math.theta{:}]';

end

save('MF.mat', 'MF') save('NLL.mat', 'NLL') save('Theta.mat', 'Theta') delete hbi lap