⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 generate_hmm_data.m

📁 The BNL toolbox is a set of Matlab functions for defining and estimating the parameters of a Bayesi
💻 M
字号:
function gen_data=generate_hmm_data(N,sCPT,latklasprobs,percent_missing)
if nargin==3 percent_missing =0, end;
[S,M]=size(latklasprobs);
T=length(sCPT);
latdata=zeros(T,N,S);

gen_data=cell(T,1);
%simulate latent data
latdata(1,:,1)=binornd(1,sCPT{1}(1)*ones(1,N));
for i=2:S-1
  latdata(1,:,i)=squeeze((1-sum(latdata(1,:,:),3))).*binornd(1,(sCPT{1}(i)*ones(1,N))/sum(sCPT{1}(i:end)));
end
latdata(1,:,S)=1-sum(latdata(1,:,:),3);
for i=2:length(sCPT)
  latdata(i,:,1)=binornd(1,squeeze(latdata(i-1,:,:))*sCPT{i}(:,1));
  for j=2:S-1
      latdata(i,:,j)=squeeze((1-sum(latdata(i,:,:),3))).*binornd(1,squeeze(latdata(i-1,:,:))*sCPT{i}(:,j)/sum(sCPT{i}(:,j:end)));
  end
  latdata(i,:,S)=1-sum(latdata(i,:,:),3);
end

latdata=reshape(kron(latdata,ones(M,1)),[T*M N S]);

%simulate observed data
data=zeros(size(latdata));
for i=1:S
    data(:,:,i)=binornd(1,repmat(latklasprobs(i,:)',T,N));
end
data=sum(data.*latdata,3);

for i=1:T
    gen_data{i}=data((i-1)*M+1:i*M,:);
end
    
%include missingness
if percent_missing>0
    for i=1:T
        missing=binornd(1,percent_missing,[M N]);
        m=find(missing==1);
        gen_data{i}(m)=-1;
    end
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -