亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? probit2.gss

?? gauss 離散型計量估計源代碼,直接下載下來就可以使用
?? GSS
?? 第 1 頁 / 共 2 頁
字號:
/*
************************************************************************
*   (C) Copyright 1999, Peter Lenk. All Rights Reserved.
*	PROBIT2.GSS
*	HB Probit Regression Model.
*-->PROBIT1.GSS has common design matrix for all subjects
*-->PROBIT2.GSS allows different design matrices.
*
*   Uses McCulloch & Rossi's method for handling identification.
*
*		Select one of mvar+1 alternatives.
*
*		Y_{ij} 	= X_{ij}*beta_i + epsilon_{ij} 
*			for i = 1, ..., I and j = 1, ..., n_i
*		Y_{ij} is mvar vector
*		Y_{ijk} is the utility from subject i, choice set j, and alternative k
*		for 	i = 1, ..., nsub
*				j = 1, ..., yrows[i]
*				k = 1, ..., mvar
*
*		Alternative mvar+1 is the base vector.
*		
*		
*		Select alternative k if:
*			Y_{ijk} > max( Y_{ijl} } for l \= k < mvar+1.
*		Select base brand if max(Y) < 0.
*
*		Observe the choices, not the utilities Y_{ij}.
*		Pick_{ij} is a mvar vector of 0/1.  
*
*
*		beta_i is rankx vector
*		epsilon_{ij} is N(0,Sigma)
*       Sigma is full
*       Divide by last element after MCMC to identify coefficients.
*
*
*		X_{ij} is mvar x rankx
*			X will have brand intercepts, 
*			and coefficients for price and advertising relative to the base brand.
*
*
*		beta_i	= Theta'Z_i + delta_i
*		delta_i	is N(0,Lambda)
*			Z1 is ln(income) and z2 = family size.
*	PRIORS
*		Sigma  is Inverted Wishart(sf0,sg0)
*		Theta is maxtrix normal(u0,v0).
*		That is, vec(Theta) is N(vec(u0),v0).
*		vec(theta) stacks the columns of theta.
*		Lambda is Inverted Wishart(f0, g0) 
***********************************************************************
*/
new;
outfile		= "results1.dat";	@ Specify output file for saving results 					@
								@ outfile is a string variable that contains a file name 	@
inxy 		= "xpdata";			@ Name of Gauss file with X, Choice data					@
inz	 		= "zdata";			@ Name of Gauss file with Z data							@
flagtrue	= 1;				@ 1 -> knows true parameters from simulation				@

/*
********************************************************************
*	Initialize parameters for MCMC 
********************************************************************
*/
smcmc		= 200;		@ number of iterations to save for analysis 				@
skip		= 1;		@ Save every skip iterations								@
nblow		= 100;		@ Initial transition iterations 							@
nmcmc		= nblow + skip*smcmc;	@ total number of iterations					@
nygen		= 1;		@ Do nygen generations of Y for each MCMC iteration.		@

/*
********************************************************************
*	Get data
********************************************************************
*/

@ Get dimensions and pointers @
load yrows	= yrows;	@ Number of observations per subject 	@
load lxy	= lxy;		@ xij = xdata[lxy[i,j]:uxy[i,j],.]		@
load uxy	= uxy;
	
nsub	= rows(yrows);					@ number of subjects 					@
mvar	= uxy[1,2] - uxy[1,1];			@ Y_{ij} is a mvar vector. 				@
ntot	= sumc(yrows);

@ Input Gauss files @
open f1 	= ^inxy;					@ Get Gauss file for X, Y data 				@
										@ Opens Gauss file & assigns file handle f1 @
xpdata		= readr(f1,rowsf(f1));		@ "p" for picks								@	
			@ readr reads in Gauss file with file handle f1.			@
			@ rowsf(f1) returns the number of rows in the Gauss file. 	@
			@ readr reads rowsf(f1) rows, which is the entir dataset.	@
ci			= close(f1);
xpnames		= setvars(inxy);			@ Get the variable names that accompnay X, Y data @
ynames		= xpnames[1:mvar];			@ Use names of interceps for names of components of Y @
ynames2		= ynames|" Base ";
rankxp		= cols(xpdata);
rankx		= rankxp - 1;					@ # of X variables (includes intercept) @
xnames		= xpnames[1:rankx];
@ Last row of xpdata is the choice vector. @

open f1		= ^inz;
zdata		= readr(f1,rowsf(f1));		@ First column of zdata is a vector of ones 	@
ci			= close(f1);
znames		= setvars(inz);
rankz		= cols(zdata);					@ # of Z variables (includes intercept) @
thdim		= rankx*rankz;					@ dimension of vec(theta) @

@ Compute some sufficient statistics @
ztz		= zdata'zdata;

/*
********************************************************************
*	Initialize Priors 
********************************************************************
*/


@ Prior for theta is N(u0,v0) @

u0 		= zeros(thdim,1);
v0   	= 100*eye(thdim);		@ thdim = rankx*rankz    @
v0i  	= invpd(v0);    		@ used in updating theta @
v0iu0 	= v0i*u0;          		@ used in updating theta @

@ Prior for sigma is IW(sf0, gs0) @
sf0 	= mvar+2; sfn = sf0 + ntot;
sg0i	= eye(mvar);



@ Lambda^{-1} is W_rankx(f0,g0 ) @
@ f0 = prior df, g0 = prior scale matrix @
f0 		= rankx+2;  f0n = f0 + nsub;
g0i 	= eye(rankx);   @ g0^{-1} @

/*
*******************************************************************
*	Initialize MCMC
******************************************************************
*/
ydata	= xpdata[.,rankxp];		@ latent y variables		@
beta 	= zeros(nsub,rankx);
sigma	= eye(mvar);			
sigmai	= invpd(sigma);

theta	= zeros(rankz,rankx);
lambda	= eye(rankx);
lambdai	= invpd(lambda);

@ Define data structures for saving iterates & computing posterior means & std @
betam	= zeros(nsub,rankx);	@ posterior mean of beta 		@
betas	= zeros(nsub,rankx);	@ posterior std of beta 		@
c		= mvar*(mvar+1)/2;
sigmag	= zeros(smcmc,c);		@ save iterations for sigma 	@
thetag	= zeros(smcmc,thdim);
c		= rankx*(rankx+1)/2;
lambdag = zeros(smcmc,c);		@ save iterations for lambda 	@
ydatam	= zeros(mvar*ntot,1);	@ posterior mean utilities		@
ydatas	= ydatam;				@ posterior std utilities		@



/*
********************************************************************
*	Do MCMC
********************************************************************
*/
etime = hsec;
@ Do the initial transition period @
for i1 (1,nblow,1);	imcmc = i1;
	call getprobit;
	if imcmc == 100*floor(imcmc/100);
		dtime = (hsec -etime)/(60*100);
		print "TP Iteration = " imcmc " D.time = " dtime;
		etime = hsec;
	endif;
endfor;

etime = hsec;
for i1 (1,smcmc,1);	imcmc = i1;		@ Save smcmc iterations 			@
	for i2 (1,skip,1); jmcmc = i2;		@ Save every skip iterations 	@
		call getprobit;
	endfor;
	if imcmc == (100/skip)*floor(skip*imcmc/100);
		dtime 	= (hsec - etime)/(60*100);
		tit		= nblow + skip*imcmc;
		print "Iteration = " tit " D.time = " dtime;
		etime 	= hsec;
	endif;
	@ When saving parameter, divide by sqrt(sigma[mvar,mvar]) or sigma[mvar,mvar] @
	sqrtsiglast     = sqrt(sigma[mvar,mvar]);
	sigmag[imcmc,.]	= vech(sigma/sigma[mvar,mvar])';	
	                                @ vech({1 2 3, 4 5 6, 7 8 9}) = {1, 4 5, 7 8 9} @
									@ xpnd is the inverse operator of vech			@
	thetag[imcmc,.]	= vecr(theta/sqrtsiglast)';
	betam			= betam 	+ beta/sqrtsiglast;
	betas			= betas 	+ (beta/sqrtsiglast)^2;
	lambdag[imcmc,.]= vech(lambda/sigma[mvar,mvar])';
	ydatam			= ydatam + ydata/sqrtsiglast;
	ydatas			= ydatas + (ydata/sqrtsiglast)^2;
endfor;


/*
******************************************************************
*	Compute Posterior Means and STD
******************************************************************
*/


ydatam		= ydatam/smcmc;
betam		= betam/smcmc;
thetam		= reshape(meanc(thetag),rankz,rankx);
sigmam		= xpnd(meanc(sigmag));		@ xpnd reconstructs symmetric matrix @
lambdam		= xpnd(meanc(lambdag));

ydatas		= sqrt( abs(ydatas 	- smcmc*ydatam^2)/smcmc);
betas		= sqrt( abs(betas 	- smcmc*betam^2)/smcmc);
thetas		= reshape(stdc(thetag),rankz,rankx);
sigmas		= xpnd(stdc(sigmag));
lambdas		= xpnd(stdc(lambdag));

if flagtrue == 1;			@ Did a simulation, so we have the true utilities. 	@
	@ Get true parameters if simulation @

	load ydatat		= ydatat;
	load betat 		= betat;
	load sigmat		= sigmat;
	load thetat		= thetat;
	load lambdat	= lambdat;



	@ Pick out each dimension of Y_{ij} and compute fit statistics @
	multir	= zeros(mvar,1);
	rsquare	= zeros(mvar,1);
	stderr	= zeros(mvar,1);
	for fm (1,mvar,1); m = fm;
		b 		= zeros(mvar,1); b[m] = 1;
		bn 		= ones(ntot,1).*.b;
		ym		= selif(ydatat,bn);
		yhatm	= selif(ydatam, bn);
		cm		= corrx(ym~yhatm);
		multir[m]	= cm[1,2];
		rsquare[m]	= cm[1,2]^2;
		resid		= ym - yhatm;
		stderr[m]	= sqrt(resid'resid/ntot);
	endfor;
endif;
	

/*
****************************************************************
*	Do some output
****************************************************************
*/
call outputanal;


@ Plot saved iterations against iterations number @
t 	= seqa(nblow+skip,skip,smcmc);		@ saved iteration number @
title("Latent Error Cov vs Iteration");
xy(t,sigmag);
title("Theta vs Iteration");
xy(t,thetag);
title("Lambda vs Iteration");
xy(t,lambdag);
graphset;

end;

/*
****************************************************************
* GETPROBIT
*	Does one iteration of the HB regression model.
*	INPUT
*		Global Variables
*	OUTPUT
*		Global Variables
****************************************************************
*/
PROC (0) = getprobit;
local zbl, bi, vibn, vibn12, ebin, yhat, sse, sn, resid, gni, gn, gn12, w, sum1, sum2, 
i0, i, fj, j, xij, yij, sgni, sgn, sgn12, muij, cij, ic, 
v, sig11, sig11i, smigni, signi;


	/*
	*******************************************************************
	* Compute quantities used in conditional normal distribution.
	* Need to run cndcov(sigma) before generating the random utilities.
	********************************************************************
	*/
	{smigni, signi} = cndcov(sigma);
	/*
	*******************************************************************
	* smigni is a mvar x (mvar-1) matrix and 
	* used in the conditional mean of Y_{i} given Y_{not i}:  
	* smigni[i,.] = sigma_{i, not i}*sigma_{not i, not i)^{-1}
	* signi is a mvar matrix and
	* signi[i] = STD(Y_{i}| Y_{not i}) 
	*          = sqrt(sigma_{ii} - sigma_{i,not i}*sigma_{not i, not i}^{-1} sigma_{not i,i})
	******************************************************************
	*/



	/*
	********************************************************************
	* Generate Y_{ij}, the utility.
	*
	* If alternative k (k = 1, .., mvar) was selected, then
	* Y_{ij} is N(X_{ij}*beta_i, Sigma) and Y_{ij}[k] >= max(Y_{ij})
	**********************************************************************
	*/
	@ Do multiple loops of generating the Utilities for each MCMC Iteration @

	for i0 (1, nsub, 1); i = i0;
		for fj (1,yrows[i],1); j = fj;
			xij		= xpdata[lxy[i,j]:uxy[i,j],1:rankx];
			cij		= xpdata[lxy[i,j]:uxy[i,j],rankxp];		@ Choice vector		@
			yij		= ydata[lxy[i,j]:uxy[i,j]];
			muij	= xij*(beta[i,.]');						@ Mean for y_{ij} 	@

			if maxc(cij) == 0;		@ selected base brand mvar + 1@
				ic = mvar+1;
			else;				@ selected one of brand 1 to mvar @
				ic = maxindc(cij);
			endif;
			yij	= rndnigtj(yij, ic, muij, smigni, signi, nygen);
			ydata[lxy[i,j]:uxy[i,j]] = yij;					@ store the utility				@
		endfor;
	endfor;

	/*
	***********************************************************
	* Generate beta
	* beta_i is N(mbin, vbn)
	* vbn 	= ( sum_{j=1}^{n_i} X_{ij}'Sigma^{-1} X_{ij} + Lambda^{-1} }^{-1}
	* mbin	= vbn*( sum_{j=1}^{n_i} X_{ij}'Sigma^{-1}Y_{ij} + Lambda^{-1}*Theta*Z_i)
	**********************************************************
	*/
	zbl		= zdata*theta*lambdai;
	for i0 (1, nsub,1); i = i0;
		sum1	= 0;
		sum2	= 0;
		for fj (1,yrows[i],1); j = fj;
			xij		= xpdata[lxy[i,j]:uxy[i,j],1:rankx];
			yij		= ydata[lxy[i,j]:uxy[i,j]];
			sum1	= sum1 + xij'sigmai*xij;
			sum2	= sum2 + xij'sigmai*yij;
		endfor;
		vibn		= sum1 + lambdai;
		vibn12		= chol(vibn);
		ebin		= sum2 + zbl[i,.]';
		bi			= cholsol(ebin + vibn12'rndn(rankx,1), vibn12);
		beta[i,.] 	= bi';

	endfor;

	/*
	***************************************************************
	* Generate sigma
	****************************************************************
	*/
	@ Compute SSE		@
	sse	= zeros(mvar,mvar);
	for i0 (1, nsub,1); i = i0;
		for fj (1,yrows[i],1); j = fj;
			xij		= xpdata[lxy[i,j]:uxy[i,j],1:rankx];
			yij		= ydata[lxy[i,j]:uxy[i,j]];
			resid	= yij - xij*(beta[i,.]');
			sse		= sse + resid*resid';
		endfor;
	endfor;
	sgni				= sg0i + sse;
	sgn					= invpd(sgni);
	{sigmai, sigma}    = wishart(mvar,sfn,sgn);


   
	/*
	***********************************************************
	* Generate Theta and Lambda from multivariate model:
	*	B = Z*Theta + N(0,Lambda)
	************************************************************
	*/
	{theta, lambda, lambdai} = 
	getmulreg(beta,zdata,ztz,theta,lambda,lambdai,v0i,v0iu0,f0n,g0i);

endp;


/*
****************************************************************
* GETMULREG
*	Generate multivariate regression parameters.
*		Yd		= Xd*parmat + epsilon
*	
*	INPUT
*		yd		= dependent variables
*		xd		= independet variables
*		xdtxd		= xd'xd
*		
*		parmat	= current value of coefficient matrix
*		var		= current value of covariance matrix
*		vari		= its inverse
*		v0i		= prior precisions for bmat
*		v0iu0		= prior precision*prior mean for bmat
*		f0n		= posterior df for sigma
*		g0i		= prior scaling matrix inverse for sigma

*		
*	OUTPUT
*		parmat	= updated rankx x mvar coefficient matrix
*		var		= updated variance
*		vari		= updated inverse of sigma
*
*	Calling Statement:
{parmat, var, vari} = getmulreg(yd,xd,xdtxd,parmat,var,vari,v0i,v0iu0,f0n,g0i);
****************************************************************

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕综合网| 成人爱爱电影网址| 福利一区二区在线| 在线精品亚洲一区二区不卡| 久久久亚洲国产美女国产盗摄| 一区二区三区在线看| 国产精品1区2区| 欧美一区二区三区四区在线观看| 亚洲天堂精品在线观看| 国产一区在线观看视频| 在线播放欧美女士性生活| 亚洲欧洲www| 处破女av一区二区| 精品久久久久久久久久久院品网 | 99久久99精品久久久久久| 日韩欧美一级精品久久| 亚洲国产精品视频| 在线这里只有精品| 一区二区三区免费网站| 99re在线视频这里只有精品| 久久久www免费人成精品| 六月丁香婷婷久久| 精品理论电影在线| 精东粉嫩av免费一区二区三区| 欧美一区二区三区免费观看视频| 亚洲国产毛片aaaaa无费看| 欧美在线免费播放| 亚洲一区二区视频| 欧美久久一区二区| 五月激情综合网| 日韩一区二区在线看| 日日摸夜夜添夜夜添国产精品 | 性感美女久久精品| 欧美怡红院视频| 午夜久久久久久电影| 91精品国产综合久久久久久久 | 97久久人人超碰| 中文字幕一区免费在线观看| 成人免费不卡视频| 亚洲免费观看高清在线观看| 色欧美88888久久久久久影院| 亚洲精品伦理在线| 欧美在线观看一二区| 日韩国产高清在线| 精品少妇一区二区三区日产乱码| 久久精品国产色蜜蜜麻豆| 久久影院电视剧免费观看| 国产成人免费视频一区| 亚洲视频资源在线| 欧美日韩不卡一区二区| 免费成人你懂的| 国产精品私人影院| 在线精品视频一区二区三四| 亚洲18女电影在线观看| 精品国产乱码久久久久久1区2区| 国产精品系列在线观看| 亚洲人成在线观看一区二区| 欧美熟乱第一页| 精品亚洲国内自在自线福利| 欧美国产日韩一二三区| 色噜噜狠狠色综合中国| 日本不卡一区二区三区| 欧美国产精品中文字幕| 在线观看成人免费视频| 国产在线视频精品一区| 亚洲激情一二三区| 精品毛片乱码1区2区3区| 成人av电影在线| 日韩av电影天堂| 亚洲三级电影网站| 日韩一级片网站| 91污在线观看| 99久久婷婷国产综合精品电影| 一区二区高清免费观看影视大全 | 中文字幕视频一区| 欧美顶级少妇做爰| 成人18视频日本| 热久久免费视频| 一区二区三区免费看视频| 精品1区2区在线观看| 欧美在线不卡一区| 国产99久久久国产精品免费看 | 日韩一区二区三区免费看 | 亚洲国产精品久久久男人的天堂| 欧美精品一区二区三区视频| 欧美在线看片a免费观看| 丁香一区二区三区| 男女性色大片免费观看一区二区| 综合网在线视频| 国产午夜一区二区三区| 4438x亚洲最大成人网| 色先锋久久av资源部| 国产高清亚洲一区| 麻豆91在线播放| 99re热这里只有精品视频| 精品一区二区综合| 日韩成人av影视| 五月天中文字幕一区二区| 亚洲日本一区二区三区| 国产精品情趣视频| 久久久久免费观看| 精品久久免费看| 日韩午夜精品视频| 欧美一区二区三区不卡| 欧美日韩三级一区二区| 欧美日韩一区中文字幕| 91啪亚洲精品| 99视频一区二区| 丁香激情综合五月| 国产精品1区2区3区在线观看| 激情久久五月天| 韩国一区二区三区| 国产一区91精品张津瑜| 国产综合色精品一区二区三区| 日本va欧美va欧美va精品| 日韩av电影免费观看高清完整版 | jlzzjlzz亚洲女人18| 国产精品自在欧美一区| 韩国v欧美v亚洲v日本v| 国内外精品视频| 国产电影一区在线| 成人精品一区二区三区四区 | 91麻豆精品国产91久久久久| 欧美日韩一区二区三区在线看 | 99re6这里只有精品视频在线观看| 成人av网站大全| 91免费精品国自产拍在线不卡| 91香蕉国产在线观看软件| 一本久久a久久精品亚洲| 色播五月激情综合网| 欧美午夜精品电影| 欧美一区二区黄色| 久久久久久久久久久99999| 国产性色一区二区| 一区二区三区加勒比av| 日日夜夜精品视频免费| 国产精品资源在线观看| 国产91清纯白嫩初高中在线观看 | av中文字幕一区| 欧美自拍偷拍一区| 日韩视频在线一区二区| 国产午夜精品美女毛片视频| 中文字幕字幕中文在线中不卡视频| 亚洲国产欧美在线人成| 久草在线在线精品观看| 99久久免费精品高清特色大片| 欧美性色欧美a在线播放| 日韩欧美一级片| 中文字幕中文字幕一区| 婷婷综合另类小说色区| 国产成人精品亚洲777人妖| 色综合天天综合网国产成人综合天 | 欧美日韩精品系列| 国产偷v国产偷v亚洲高清| 亚洲午夜一区二区三区| 国产九色sp调教91| 欧美日韩你懂得| 中文字幕欧美区| 日韩国产欧美一区二区三区| 国产成人精品免费网站| 欧美久久久久久蜜桃| 中文字幕精品一区二区精品绿巨人 | 色婷婷亚洲婷婷| 精品国产91久久久久久久妲己| 亚洲视频小说图片| 国产成人无遮挡在线视频| 在线播放中文一区| 亚洲一区二区偷拍精品| 成人一级片网址| 久久新电视剧免费观看| 午夜精品视频在线观看| 91在线国产福利| 国产女人水真多18毛片18精品视频| 奇米影视在线99精品| 日本道在线观看一区二区| 日本一区二区三区电影| 国内久久精品视频| 日韩视频免费观看高清在线视频| 亚洲图片欧美一区| 在线观看中文字幕不卡| 中文字幕一区二区三区乱码在线 | 日本午夜一区二区| 欧美性感一区二区三区| 亚洲激情综合网| 91老师国产黑色丝袜在线| 国产精品人成在线观看免费| 国产精品正在播放| 精品对白一区国产伦| 久久国产精品第一页| 日韩视频国产视频| 毛片av一区二区| 欧美一区二区精品久久911| 日本特黄久久久高潮| 制服丝袜成人动漫| 奇米在线7777在线精品| 在线综合视频播放| 日韩高清不卡一区二区| 欧美电影影音先锋| 视频一区在线播放| 日韩一级免费观看|