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

📄 casetti.m

📁 计量工具箱
💻 M
字号:
function results=casetti(y,x,xc,yc,option)% PURPOSE: computes Casetti's spatial expansion regression%---------------------------------------------------% USAGE: results = casetti(y,x,xc,yc,option)% where:       y = dependent variable vector%              x = independent variables matrix%             xc = latittude (or longitude) coordinate%             yc = longitude (or latittude) coordinate%        option  = a structure variable containing options%        option.exp  = 0 for x-y expansion (default)%                    = 1 for distance from ctr expansion%        option.ctr  = central point observation # for distance expansion%        option.norm = 1 for isotropic x-y normalization (default=0)%---------------------------------------------------% RETURNS:%        results.meth   = 'casetti'%        results.b0     = bhat (underlying b0x, b0y)%        results.t0     = t-stats (associated with b0x, b0y)%        results.beta   = spatially expanded estimates (nobs x nvar)%        results.yhat   = yhat%        results.resid  = residuals%        results.sige   = e'*e/(n-k)%        results.rsqr   = rsquared%        results.rbar   = rbar-squared%        results.nobs   = nobs%        results.nvar   = # of variables in x%        results.y      = y data vector%        results.xc     = xc%        results.yc     = yc%        results.ctr    = ctr (if input)%        results.dist   = distance vector (if ctr used)%        results.exp    = exp input option%        results.norm   = norm input option% --------------------------------------------------% NOTE: assumes x(:,1) contains a constant term% --------------------------------------------------% SEE ALSO: prt, plt, prt_spat()%---------------------------------------------------% REFERENCES: Casetti, E., (1972) 'Generating Models by the Expansion Method: % Applications to Geographic Research', Geographical Analysis, Vol. 4, pp. 81-91.% Casetti, E., (1992) 'Bayesian Regression and the Expansion Method',% Geographical Analysis, Vol. 24, pp. 58-74.% Casetti, E., and J.P. Jones, III (1987) 'Spatial Applications of the% Expansion Method Paradigm' in Quantitative Analysis in Geography,% edited by C. Dufournaud and D. Dudycha, pp. 121-36. University of Waterloo,%---------------------------------------------------% written by:% James P. LeSage, Dept of Economics% University of Toledo% 2801 W. Bancroft St,% Toledo, OH 43606% jlesage@spatial-econometrics.comnflag = 0;if nargin == 5 % user options if ~isstruct(option)    error('casetti: must supply the option argument as a structure variable'); else fields = fieldnames(option); nf = length(fields); % set defaults exp = 0; ctr = 0; nflag = 0;  for i=1:nf    if strcmp(fields{i},'exp')        exp = option.exp;     elseif strcmp(fields{i},'ctr')        ctr = option.ctr;    elseif strcmp(fields{i},'norm')      nflag = option.norm;    end;  end; % end of for i end; % end of if elseelseif nargin == 4  % x-y expansionexp = 0;option.exp = 0;elseerror('Wrong # of arguments to casetti');end;if exp == 1 if ctr == 0   error('casetti: must enter option.ctr for option.exp = 1'); end;end;[nobs nvar] = size(x);if x(:,1) ~= ones(nobs,1) error('casetti: first column in x-matrix must be a constant vector');end;if nflag == 1[xc yc] = normxy(xc,yc);end;results.meth = 'casetti';results.y = y;results.nobs = nobs;results.nvar = nvar;results.xc = xc;results.yc = yc;results.option = option;results.exp = exp;results.norm = nflag;switch expcase {0} % x-y expansionxt = x(:,2:nvar);xx = matmul(xt,xc);xy = matmul(xt,yc);xmat = [x xx xy];b0 = xmat\y;xpxi = inv(xmat'*xmat);results.b0 = b0;                      % bhat'sbeta = zeros(nobs,2*(nvar-1));yhat = zeros(nobs,1);xx = matmul(ones(nobs,nvar-1),xc);xy = matmul(ones(nobs,nvar-1),yc);xxxy = [x xx xy];tvar = length(b0);    yhat(:,1) = xmat(:,1:nvar)*b0(1:nvar,1);    for j=nvar+1:tvar    beta(:,j-nvar) = xxxy(:,j)*b0(j,1);    yhat(:,1) = yhat(:,1)  + xmat(:,j)*b0(j,1);    end;results.beta = beta;     % expansion estimatesresults.yhat = yhat;     % yhate = results.y - results.yhat;results.resid = e;       % residualssigu = e'*e;results.sige = sigu/(nobs-tvar);tmp2 = results.sige*(diag(xpxi));results.t0 = results.b0./(sqrt(tmp2));ym = y - mean(y);rsqr1 = sigu;rsqr2 = ym'*ym;results.rsqr = 1.0 - rsqr1/rsqr2; % r-squaredrsqr1 = rsqr1/(nobs-nvar-2*(nvar-1));rsqr2 = rsqr2/(nobs-1.0);results.rbar = 1 - (rsqr1/rsqr2); % rbar-squaredcase{1} % distance from the center expansion% compute distance from central pointxi = xc(ctr);yi = yc(ctr);% calculate distance weighting functiond = sqrt((xc-xi).*(xc-xi) + (yc-yi).*(yc-yi));dvec = d;results.dist= dvec;% transform x-variables using distance vectorxt = x(:,2:nvar);xx = matmul(xt,dvec);xmat = [x xx];b0 = xmat\y;xpxi = inv(xmat'*xmat);results.b0 = b0;                      % bhat'sbeta = zeros(nobs,(nvar-1));yhat = zeros(nobs,1);xx = matmul(ones(nobs,nvar-1),dvec);xxxy = [x xx];tvar = length(b0);    yhat(:,1) = xmat(:,1:nvar)*b0(1:nvar,1);    for j=nvar+1:tvar    beta(:,j-nvar) = xxxy(:,j)*b0(j,1);    yhat(:,1) = yhat(:,1)  + xmat(:,j)*b0(j,1);    end;results.beta = beta;results.yhat = yhat;results.b0 = b0;results.nvar = nvar;results.ctr = ctr;results.resid = y - results.yhat;sigu = results.resid'*results.resid;results.sige = sigu/(nobs-tvar);xpxi = inv(xmat'*xmat);    tmp = results.sige*(diag(xpxi));    results.t0 = results.b0./(sqrt(tmp));ym = y - mean(y);rsqr1 = sigu;rsqr2 = ym'*ym;results.rsqr = 1.0 - rsqr1/rsqr2; % r-squaredrsqr1 = rsqr1/(nobs-2*nvar);rsqr2 = rsqr2/(nobs-1.0);results.rbar = 1 - (rsqr1/rsqr2); % rbar-squaredotherwiseerror('casetti: check option input argument');end;

⌨️ 快捷键说明

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