// This do file contains all the examples from the spmat suite clear all set more off mata mata mlib index // spreg capture spmat drop cobj use pollute spmat use cobj using pollute.spmat spreg ml pollution factories area, id(id) dlmat(cobj) elmat(cobj) spreg gs2sls pollution factories area, id(id) dlmat(cobj) elmat(cobj) // spreg postestimation capture spmat drop cobj use pollute spmat use cobj using pollute.spmat spreg ml pollution factories area, id(id) dlmat(cobj) elmat(cobj) predict y0 replace factories = factories+1 in 50 predict y1 gen deltay = abs(y1-y0) count if deltay!=0 // spivreg capture spmat drop cobj clear use pollute spmat use cobj using pollute.spmat spivreg pollution area (factories = penalties), id(id) dlmat(cobj) elmat(cobj) // spivreg postestimation capture spmat drop cobj use pollute spmat use cobj using pollute.spmat spivreg pollution area (factories = penalties), id(id) dlmat(cobj) elmat(cobj) predict yhat // spmat contiguity clear all use pollute spmat contiguity cobj using pollutexy, id(id) normalize(minmax) *spmat eigenvalues cobj *spmat save cobj using pollute.spmat, replace // spmat idistance use pollute spmat idistance dobj longitude latitude, id(id) dfunction(dhaversine) // spmat summarize capture spmat drop cobj spmat use cobj using pollute.spmat spmat summarize cobj, links // spmat note capture spmat drop cobj spmat use cobj using pollute.spmat spmat note cobj: "Simulated data for spmat" spmat note cobj spmat note cobj: "- queen contiguity" spmat note cobj spmat note cobj: `"Is this "queen" contiguity?"', replace spmat note cobj spmat note cobj drop // spmat graph capture spmat drop cobj spmat use cobj using pollute.spmat spmat graph cobj, blocks(5) name(cobj) // spmat lag capture spmat drop cobj clear use pollute spmat use cobj using pollute.spmat spmat lag double pollution_w cobj pollution // spmat eigenvalues capture spmat drop cobj clear spmat use cobj using pollute.spmat spmat eigenvalues cobj // spmat drop capture spmat drop cobj spmat use cobj using pollute.spmat spmat drop cobj // spmat save clear all capture erase cobj.spmat use pollute spmat contiguity cobj using pollutexy, id(id) normalize(minmax) spmat save cobj using cobj.spmat erase cobj.spmat // spmat export capture spmat drop cobj capture erase cobj.txt spmat use cobj using pollute.spmat spmat export cobj using cobj.txt erase cobj.txt // spmat getmatrix capture spmat drop cobj spmat use cobj using pollute.spmat spmat getmatrix cobj mymat spmat getmatrix cobj, eig(myeig) // spmat use clear all capture erase cobj.spmat use pollute spmat contiguity cobj using pollutexy, id(id) normalize(minmax) spmat save cobj using cobj.spmat spmat drop cobj spmat use cobj using cobj.spmat erase cobj.spmat // spmat import capture spmat drop cobj capture erase cobj.txt clear all use pollute spmat contiguity cobj using pollutexy, id(id) normalize(minmax) spmat export cobj using cobj.txt spmat drop cobj spmat import cobj using cobj.txt erase cobj.txt // spmat dta capture spmat drop cobj capture erase cobj.txt clear spmat use cobj using pollute.spmat spmat export cobj using cobj.txt spmat drop cobj insheet using cobj.txt, delimiter(" ") clear rename v1 id spmat dta cobj v*, id(id) replace erase cobj.txt // spmat putmatrix capture spmat drop cobj spmat use cobj using pollute.spmat spmat getmatrix cobj mymat, id(myid) spmat drop cobj spmat putmatrix cobj mymat, id(myid) // spmat permute clear use pollute capture spmat drop cobj spmat use cobj using pollute.spmat spmat summarize cobj gen p = _n sort longitude latitude gen dist = sqrt( (longitude-longitude[1])^2 + (latitude-latitude[1])^2 ) sort dist spmat permute cobj p spmat summarize cobj, banded if `r(canband)'==1 spmat tobanded cobj, dtr(`r(lband)' `r(uband)') replace spmat summarize cobj // spmat tobanded capture spmat drop cobj clear use pollute sort longitude latitude spmat contiguity cobj using pollutexy, id(id) norm(minmax) spmat summarize cobj, links spmat tobanded cobj, replace spmat summarize cobj, links clear all