Skip to content

Instantly share code, notes, and snippets.

@ymattu
Last active January 31, 2016 12:54
Show Gist options
  • Save ymattu/2ff57bc333f1622e3781 to your computer and use it in GitHub Desktop.
Save ymattu/2ff57bc333f1622e3781 to your computer and use it in GitHub Desktop.
mitaron
/*推定用データ*/
proc import out = modelsample
datafile = "C:\Users\User\Desktop\三田論\mitaron_conditional_probit1115_suitei.csv"
dbms=csv REPLACE;
getnames=yes;
datarow=2;
run;
proc print data=modelsample(obs=30);
run:
data model(keep=id week year month day /*brand*/ uicp sicp qicp kicp picp price cm sns price_rihanari cm_rihanari sns_rihanari choice chosen demo_icp age sex marry income1 income2 );
/*切片*/
array uicps[5] uicp1 uicp2 uicp3 uicp4 uicp5;
array sicps[5] sicp1 sicp2 sicp3 sicp4 sicp5;
array qicps[5] qicp1 qicp2 qicp3 qicp4 qicp5;
array kicps[5] kicp1 kicp2 kicp3 kicp4 kicp5;
array picps[5] picp1 picp2 picp3 picp4 picp5;
/*離反なし*/
array prices[5] uprice sprice qprice kprice pprice;
array cms[5] ucm scm qcm kcm pcm;
array snss[5] usns ssns qsns ksns psns;
/*離反あり*/
array prices_rihanari[5] uprice_rihanari sprice_rihanari qprice_rihanari kprice_rihanari pprice_rihanari;
array cms_rihanari[5] ucm_rihanari scm_rihanari qcm_rihanari kcm_rihanari pcm_rihanari;
array snss_rihanari[5] usns_rihanari ssns_rihanari qsns_rihanari ksns_rihanari psns_rihanari;
/**/
array allbrands[5] $ _temporary_ ('uni' 'shiseido' 'qu' 'kaou' 'pg');
set modelsample;
do i = 1 to 5;
brand = allbrands[i];
uicp = uicps[i];
sicp = sicps[i];
qicp = qicps[i];
kicp = kicps[i];
picp = picps[i];
price = prices[i];
cm = cms[i];
sns = snss[i];
price_rihanari = prices_rihanari[i];
cm_rihanari = cms_rihanari[i];
sns_rihanari = snss_rihanari[i];
choice = (chosen eq brand);
output;
end;
run;
proc print data=model(obs=30);
run;
proc export
data=model
dbms=xlsx
outfile="mprobit_suitei.xlsx"
replace;
run;
/*検証用データ*/
proc import out = kenshodata
datafile = "C:\Users\User\Desktop\三田論\mitaron_conditional_probit1115_kensho.csv"
dbms=csv REPLACE;
getnames=yes;
datarow=2;
run;
data k_data(keep=id week year month day /*brand*/ uicp sicp qicp kicp /*picp*/ price cm sns price_rihanari cm_rihanari sns_rihanari /*choice*/ /*chosen*/ demo_icp age sex marry income1 income2 );
/*切片*/
array uicps[5] uicp1 uicp2 uicp3 uicp4 uicp5;
array sicps[5] sicp1 sicp2 sicp3 sicp4 sicp5;
array qicps[5] qicp1 qicp2 qicp3 qicp4 qicp5;
array kicps[5] kicp1 kicp2 kicp3 kicp4 kicp5;
array picps[5] picp1 picp2 picp3 picp4 picp5;
/*離反なし*/
array prices[5] uprice sprice qprice kprice pprice;
array cms[5] ucm scm qcm kcm pcm;
array snss[5] usns ssns qsns ksns psns;
/*離反あり*/
array prices_rihanari[5] uprice_rihanari sprice_rihanari qprice_rihanari kprice_rihanari pprice_rihanari;
array cms_rihanari[5] ucm_rihanari scm_rihanari qcm_rihanari kcm_rihanari pcm_rihanari;
array snss_rihanari[5] usns_rihanari ssns_rihanari qsns_rihanari ksns_rihanari psns_rihanari;
/**/
array allbrands[5] $ _temporary_ ('uni' 'shiseido' 'qu' 'kaou' 'pg');
set kenshodata;
do i = 1 to 5;
brand = allbrands[i];
uicp = uicps[i];
sicp = sicps[i];
qicp = qicps[i];
kicp = kicps[i];
picp = picps[i];
price = prices[i];
cm = cms[i];
sns = snss[i];
price_rihanari = prices_rihanari[i];
cm_rihanari = cms_rihanari[i];
sns_rihanari = snss_rihanari[i];
choice = (chosen eq brand);
output;
end;
run;
proc print data=k_data(obs=30);
run;
proc export
data=k_data
dbms=xlsx
outfile="mprobit_kensho.xlsx"
replace;
run;
/*BCHOICE*/
/*ods html body='ttest.htm' style=HTMLBlue file="C:\Users\User\Desktop\三田論\mitaron_conditional_probit_teian.html";*/
ods graphics on;
ods pdf file="C:\Users\User\Desktop\三田論\mitaron_conditional_probit1115_suitei.pdf";
proc bchoice
data=model
outpost=mitaron
seed=725
nthreads=8
nbi=30
nmc=10
thin=1
hitprob
diag= all
PLOTS=all
stats=all;
class id week year month day chosen / param=ref order=data;
model choice = uicp sicp qicp kicp /choiceset=(id week year month day chosen ) cprior=normal(var=10000) covprior=iwishart(df=10 scale=100) type=probit;
preddist outpred=Predout /*covariates=k_data*/ nalter=5;
random price cm sns price_rihanari cm_rihanari sns_rihanari / sub=id remean=(demo_icp age sex marry income1 income2 /*switch*/) covprior=iwishart(df=10 scale=100) type=un;
run;
%postsum(data=predout)
ods pdf close;
/*ods html close;*/
ods graphics off;
proc export
data=mitaron
dbms=csv
outfile="mitaron_postsamplefinal2.csv"
replace;
run;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment