☰
Stata莫兰指数计算:命令安装、权重配置与spatgsa/spatlsa避坑
2026/11/3 4:28:03 网站建设 项目流程

简介:这份文档面向需要开展空间自相关分析的 Stata 用户与相关专业学生,围绕莫兰指数(Moran's I)的计算流程提供一套可直接参照的操作指引,适合在区域经济、地理与社会经济数据研究中快速完成空间权重处理与指标测算。压缩包共1个 docx 文件,约14KB,篇幅精简,内容以命令与注释结合的方式组织,便于边看边在软件中复现。文档覆盖程序包安装、权重文件读取与命名、数据载入及权重标准化,并进一步说明全局莫兰指数、局部莫兰指数与莫兰散点图的实现方式,其中包含多变量批量计算和带汉字标识散点图的处理思路,可帮助读者理解结果含义并排查常见路径、变量名与权重设置问题。已有1971人学习下载,适合具备 Stata 基础、希望系统掌握空间自相关分析流程的读者参考。

1. 莫兰指数安装现场:findit spmat 装完仍报错的起点

某开发者把权重文件W.dta和数据文件data.dta放在D:/program,打开 Stata 就敲spatgsa rho2015, weights(W) moran,结果第一行就报command spatgsa is unrecognized。他回头执行findit spmat装了包,以为莫兰指数就能算,接着又卡在W not found、weights() not allowed、spmat summarize W, links输出全零。Stata 计算莫兰指数不是装一个包就结束,而是findit spmat、权重文件整理、spatwmat标准化、spatgsa/spatlsa调用四段路要接上。装不好时,命令能跑但权重错位,Moran's I 看着有数,解释却完全反了。这篇适合刚拿到W.dta和data.dta、准备在 Stata 里复现全局与局部莫兰指数的人,也适合被weight和weights单复数坑过的熟手。

2. Stata 计算莫兰指数的环境清单:findit spmat 与四个命令包

2.1 Stata 本体与工作目录:先固定路径再谈安装

Stata 计算莫兰指数的第一步不是急着装包,而是把工作目录和文件路径固定下来。项目正文里权重文件是D:\program\W.dta,数据文件是D:\program\data.dta,这两个文件必须在同一个可读目录里,否则后面spatwmat using会报找不到文件。Stata 对 Windows 路径的斜杠方向不敏感,但中文目录、空格目录和过长路径容易在 do-file 里翻车,我一般统一写成正斜杠D:/program/W.dta,do-file 开头先cd到工作目录。这样后面所有use和spatwmat using都能少写一长串盘符,也方便把整套命令迁移到另一台机器。

// 查看当前工作目录 pwd // 切换到权重文件和数据文件所在目录 cd "D:/program" // 列出目录下的 dta 文件,确认 W.dta 和 data.dta 都在 dir *.dta

这段代码的逻辑是先把 Stata 的当前目录切到资源所在位置,再用dir *.dta做一次文件存在性检查。pwd不带参数,只回显当前路径;cd后面必须跟完整目录,路径里有空格时要用英文双引号包住;dir *.dta的通配符只列出 dta 文件,避免把无关文件混进视线。参数上没有什么玄学,关键是路径要和你实际存放位置一致,不要照抄D:/program却忘了改成自己的目录。常见做法是把这三行放在 do-file 最前面,后面所有命令都用相对路径,例如use "W.dta", clear,这样换机器时只改一行cd。

环境清单里还要确认 Stata 能正常识别命令包。项目正文只写了findit spmat,但莫兰指数这条链路里还会用到spatwmat、spatgsa、spatlsa,它们不一定随spmat一次装全。装完后不要凭感觉,直接用which逐个查。which返回命令路径说明已安装,返回command not found就继续findit对应命令。这个检查比反复重启 Stata 更直接,也是我装完任何 Stata 外部命令后的固定动作。

// 逐个确认莫兰指数相关命令是否已经装好 which spmat which spatwmat which spatgsa which spatlsa

which的参数就是命令名,不带选项。逻辑说明:spmat负责把 dta 里的变量整理成空间权重对象,spatwmat负责从权重文件读入并标准化权重,spatgsa算全局莫兰指数,spatlsa算局部莫兰指数和散点图。四个命令缺一个,后面就会在对应步骤断掉。参数上不用改,但要注意命令名大小写,Stata 命令一般小写;如果which spatgsa提示找不到,不要继续硬跑spatgsa,先回findit spatgsa安装。安装时保持网络可用,安装完成后用which再验一遍,别把“窗口里出现过安装链接”当成装好了。

2.2 findit spmat 找包与安装:命令包不是装一次就万事大吉

项目正文第一步写的是findit spmat,这行命令的作用是让 Stata 在本地和可访问的资源里搜索spmat相关包。执行后结果窗口会出现若干条目,常见做法是点进标题里带spmat的条目,按提示点击安装链接。这里不要只看第一屏就关掉,安装完成后回命令窗口敲which spmat,确认命令真的落地。findit本身不安装,它只负责找;真正的安装动作在结果窗口的链接里。装完spmat后再用同样方式补spatwmat、spatgsa、spatlsa,不要假设它们会自动跟着来。

// 搜索 spmat 程序包,按结果窗口提示安装 findit spmat // 搜索全局和局部莫兰指数相关命令 findit spatwmat findit spatgsa findit spatlsa

这段代码没有复杂参数,findit后面跟关键词即可。逻辑上先找spmat,再找另外三个命令,是因为项目正文的安装入口是findit spmat,但实际计算链路需要后三个命令。参数说明:findit支持模糊搜索,关键词不要加引号;如果搜索结果太多,可以在结果窗口里按标题筛选。安装时注意看结果窗口的提示,有些包会提示依赖项,按顺序装完再重启 Stata。常见坑是只装了spmat就去跑spatgsa,报command not found后又以为 Stata 版本不对,其实只是包没装全。

安装完成后,建议把命令包检查写进 do-file 开头,作为一次性的环境自检。这样以后换电脑或重装 Stata,跑一遍就知道缺什么。下面这段不是安装命令,而是安装后的确认清单,返回结果里每个命令都有路径才算齐。

// 安装后的命令自检:四个命令都要有返回路径 which spmat which spatwmat which spatgsa which spatlsa

逻辑说明:which查的是命令解析路径,不是版本号,所以不要拿它判断版本新旧。参数上无需额外选项。如果某个命令返回command not found,回到上一步findit对应命令重新安装;如果返回的是built-in或某个 ado 文件路径,说明命令可用。安装过程中不要同时开多个 Stata 实例改同一份 ado 目录,容易留下半装状态;装完重启一次 Stata,再跑which,能少掉很多“明明装了却找不到”的黑匣子问题。

2.3 权重文件 W.dta 和数据 data.dta 的结构检查

装完命令只是环境就绪,真正决定莫兰指数能不能算对的是两个 dta 文件的结构。W.dta是空间权重文件,data.dta是分析数据文件,项目正文后面用spmat dta W var*, replace和spatwmat using D:\program\W.dta, name(W) standardize分别处理它们。安装前先分别打开看一眼,确认变量名、行数和 ID 能对上。常见的翻车不是命令写错,而是权重文件里的变量前缀不是var,或者数据文件里的rho2015实际叫Rho2015,命令跑下去才报变量不存在。先describe再list in 1/5,比事后猜省时间。

// 打开权重文件,检查变量名和前三行 use "D:/program/W.dta", clear describe list in 1/5

逻辑说明:use把权重文件读进内存,clear清掉之前的数据,避免旧数据干扰;describe看变量名、存储类型和标签;list in 1/5看前五行实际值。参数上clear很重要,尤其是你刚打开过data.dta又忘了清内存时,权重文件会读不进来。检查重点:权重变量是否以var开头,行数是否与数据文件一致,是否存在全零行。如果变量名不是var前缀,后面spmat dta W var*就要改成实际前缀,不能照抄。

// 打开数据文件,检查 rho 变量和 DMUname 是否存在 use "D:/program/data.dta", clear describe list in 1/5 count

逻辑说明:describe确认rho2011到rho2015这些变量名,list看前五行,count看总行数。参数上count不带条件时返回观测数,这个数和权重文件的行数要能对上。常见做法是先把两个文件的行数记下来,如果data.dta有 30 行而W.dta只有 29 行,后面莫兰指数会错位,散点图也会缺一个点。ID 对齐也要看,项目正文后面用id(DMUname)做汉字标识,所以data.dta里要有DMUname,权重文件里的顺序也要能对应。对不上时先别跑spatgsa,先把 ID 和行顺序整理好。

3. 权重文件配置:spmat dta 到 spatwmat standardize 的落地顺序

3.1 打开权重文件:use W.dta 的路径与 clear

第三步之前的权重配置从use "D:/program/W.dta", clear开始。项目正文写的是use "D:\program\W.dta", clear,在 Stata 里反斜杠通常也能识别,但在 do-file 里容易和转义符混在一起,我一般改成正斜杠。clear不能省,因为上一步可能刚打开过数据文件,内存里还有旧数据,直接use会报no; data in memory would be lost。如果你习惯在同一个 do-file 里来回切换权重文件和数据文件,每次use都带clear,这是最省心的习惯。

// 打开权重文件,清空内存中的旧数据 use "D:/program/W.dta", clear // 确认当前数据集就是权重文件 describe

逻辑说明:use读取 dta,clear允许覆盖内存;describe再次确认变量结构。参数上路径必须指向实际权重文件,不要用data.dta代替。常见误用是先把data.dta打开,然后直接spmat dta W var*,结果把数据变量当成权重变量,spmat summarize出来一堆无意义链接。正确顺序是先在W.dta上做权重对象整理,再回到data.dta上读权重并算莫兰指数。这个顺序乱了,后面W not found就会反复出现。

3.2 spmat dta 整理变量前缀:var* 通配和 replace 的取舍

项目正文第二步的核心命令是spmat dta W var*, replace。这条命令把当前数据集里以var开头的变量收进名为W的空间权重对象,replace表示如果内存里已经有同名W对象就覆盖。这里最容易错的是var*这个通配符:它要求权重文件里的变量名确实以var开头,如果你的权重变量叫w1 w2 w3,这行命令会找不到匹配变量,或者只匹配到空集合。执行前先用describe看变量名,前缀不对就改成实际前缀,例如w*,不要硬套原文。

// 将当前权重文件中以 var 开头的变量整理成空间权重对象 W spmat dta W var*, replace // 查看权重对象的基本信息 spmat summarize W, links

逻辑说明:spmat dta从当前内存数据集读取变量,W是生成的空间权重对象名,var*是变量前缀通配,replace覆盖同名对象。参数上replace要谨慎:如果你前面已经调好一个W对象,后面又跑一次不同前缀的spmat dta W ... , replace,旧对象会被覆盖。常见做法是先用spmat summarize W, links看链接数,再决定要不要replace。links选项会输出链接统计,重点看非零链接数是否合理;如果links为 0,说明变量前缀选错、权重列全零,或者当前数据集根本不是权重文件。这个检查是后面spatwmat之前的一道闸门,别跳过。

3.3 spmat summarize 检查 links:权重有没有断链

spmat summarize W, links是权重配置里最值得多看一眼的命令。项目正文把它放在spmat dta后面,目的就是确认权重对象W的链接情况。links会给出链接数、非零元素等信息,你可以据此判断权重文件是不是被正确读成矩阵。如果链接数明显小于观测数,或者某些行完全没有链接,后面全局莫兰指数可能仍然能出数,但局部莫兰指数和散点图会暴露问题。我一般会把spmat summarize W, links的输出和count的行数对一下,至少确认权重矩阵不是空的。

// 统计权重 W 的链接信息 spmat summarize W, links // 对照数据文件行数,确认权重矩阵规模 use "D:/program/data.dta", clear count

逻辑说明:spmat summarize的第一个参数是权重对象名,links是选项,不是变量。参数上不要把W写成w,Stata 对对象名大小写敏感;也不要在spmat summarize后面加逗号再写links以外的无关选项。常见坑是links输出正常但行数对不上,这通常是权重文件和数据文件的观测顺序不一致,不是命令语法问题。遇到这种情况,先回到两个 dta 文件里检查 ID 和排序,不要急着改spatgsa的变量列表。

3.4 在数据文件里读权重:spatwmat standardize 参数

权重对象整理完,回到数据文件算莫兰指数之前,还要用spatwmat把磁盘上的W.dta读成计算用的权重,并做标准化。项目正文第三步写的是spatwmat using D:\program\W.dta,name(W) standardize。这条命令的using指向权重文件,name(W)指定内存中的权重名,standardize做行标准化。注意它读的是磁盘文件,不是上一步spmat dta生成的对象;如果你在上一步改过变量名但没有把结果写回W.dta,这里读到的仍是原文件。常见做法是确保W.dta就是最终权重文件,再执行这行。

// 打开数据文件 use "D:/program/data.dta", clear // 从磁盘读取权重文件 W.dta,命名为 W,并做行标准化 spatwmat using "D:/program/W.dta", name(W) standardize

逻辑说明:use先切换到分析数据,spatwmat using读取权重文件,name(W)让后面的spatgsa和spatlsa用weights(W)或weight(W)调用,standardize对权重矩阵按行标准化。参数上using后面必须跟完整路径或当前目录下的文件名;name(W)的W要和后面命令里的权重名一致;standardize不加也能算,但行标准化后权重解释更直观,散点图也更常用。常见误用是把name(W)写成name(w),后面调用weights(W)就找不到对象。路径里如果含空格,记得用英文双引号包住。

4. 莫兰指数计算配置:spatgsa 全局与 spatlsa 局部的参数取舍

4.1 全局莫兰指数:spatgsa 单变量与批量变量

全局莫兰指数用spatgsa,项目正文第四步写的是spatgsa rho2015, weights(W) moran。这里的rho2015是分析变量,weights(W)是权重选项,moran指定计算 Moran's I。spatgsa的权重选项是复数weights(),不是weight(),这是和局部命令最容易混的地方。默认情况下项目正文提到“此命令默认单尾”,实际输出里重点看 Moran's I、期望值、标准差、z 值和 p 值。单变量跑通后再批量,不要一上来就把 2011 到 2015 全塞进去,否则变量名错一个,整行都报错。

// 计算 rho2015 的全局莫兰指数 spatgsa rho2015, weights(W) moran // 批量计算 2011 至 2015 年的全局莫兰指数 spatgsa rho2011 rho2012 rho2013 rho2014 rho2015, weights(W) moran

逻辑说明:spatgsa后面跟一个或多个变量名,逗号后weights(W)指定权重对象,moran指定统计量。参数上变量名必须与data.dta里的实际变量一致,大小写也要一致;weights(W)里的W必须与spatwmat的name(W)对应。批量写法只是把变量名并列,命令结构不变。常见坑是逗号写成中文逗号,或者weights少写 s,Stata 会直接报选项不允许。跑完单变量后先看 p 值是否在合理范围,再跑批量;如果单变量就报variable rho2015 not found,先回describe查变量名,不要怀疑权重。

4.2 局部莫兰指数:spatlsa 的变量选择与权重名

局部莫兰指数用spatlsa,项目正文第五步写的是spatlsa rho2015,weights(W) moran。这里要注意,原文第五步用的是复数weights(W),但第六步散点图用的是单数weight(W)。在常见 Stata 语法里,spatlsa的权重选项通常是单数weight(),spatgsa才是复数weights()。如果你照第五步跑出option weights() not allowed,把weights(W)改成weight(W)即可。这个单复数问题很典型,不是权重对象坏了,也不是 Stata 版本问题,纯粹是选项名没对上。

// 计算 rho2015 的局部莫兰指数 spatlsa rho2015, weight(W) moran

逻辑说明:spatlsa的第一个参数是分析变量,weight(W)指定权重对象,moran指定局部 Moran's I。参数上weight是单数,W要与spatwmat的name(W)一致;变量rho2015要在当前数据文件中存在。常见做法是先跑单变量局部指数,确认输出里有每个观测的局部值,再画散点图。如果命令报weights() not allowed,说明你用了全局命令的复数选项;如果报W not found,说明spatwmat还没执行或权重名不一致。局部指数依赖权重对象,顺序不能颠倒。

4.3 莫兰散点图:graph(moran) 与 symbol(id) 的标识

莫兰散点图还是用spatlsa,项目正文第六步写的是spatlsa rho2015 ,weight(W) moran graph (moran) symbol(n)。graph(moran)指定画莫兰散点图,symbol(n)用观测编号作为点符号。带汉字标识的版本是spatlsa rho2015 ,weight(W) moran id(DMUname) graph (moran) symbol(id),其中id(DMUname)用DMUname作为标签,symbol(id)让点符号跟随 ID。画图前确认DMUname是字符变量且没有大量缺失,否则图上会出现空白标签。导出图片用graph export,路径写清楚,replace覆盖旧图。

// 画莫兰散点图,点符号使用观测编号 spatlsa rho2015, weight(W) moran graph(moran) symbol(n) // 带汉字标识的莫兰散点图 spatlsa rho2015, weight(W) moran id(DMUname) graph(moran) symbol(id) // 将当前图形导出为 PNG graph export "D:/program/moran_rho2015.png", replace

逻辑说明:graph(moran)是画图选项,symbol(n)和symbol(id)控制点符号,id(DMUname)控制标签变量。参数上graph和括号之间不要多写空格也可以,但graph(moran)里的moran不要拼错;symbol(id)依赖id(DMUname)的标签,两个选项要配套。graph export的replace表示同名文件覆盖,路径必须存在。常见坑是图上标签重叠严重,这时可以先用symbol(n)看整体分布,再用symbol(id)出带汉字的版本;如果中文字体显示异常,检查 Stata 图形字体设置,不要急着改命令。散点图不是装饰,它能看到局部莫兰指数的异常点,跑完全局和局部后用它做一次目视检查很值。

5. 排查与避坑:Stata 莫兰指数命令报错的 5 条血泪记录

5.1 报错 command spatgsa is unrecognized:只装了 spmat

现象:执行findit spmat并安装后,跑spatgsa rho2015, weights(W) moran仍然报command spatgsa is unrecognized。原因:findit spmat只解决spmat相关命令,spatgsa、spatlsa、spatwmat是另外的命令包,不会因为装了spmat就自动齐全。解决:分别用findit spatgsa、findit spatlsa、findit spatwmat搜索安装,装完用which逐个确认。不要只重启 Stata,重启解决不了缺包。

// 缺什么搜什么,装完再用 which 验证 findit spatgsa findit spatlsa findit spatwmat which spatgsa which spatlsa which spatwmat

逻辑说明:findit负责搜索,安装动作在结果窗口完成;which负责验证。参数上命令名不要加引号,安装完成后如果which仍找不到,检查 Stata 的 ado 路径是否被改动,或者是否装到了另一个 Stata 版本目录。常见做法是装完一组命令后重启一次 Stata,再跑which,这样能排除缓存影响。

5.2 报错 option weights() not allowed:spatlsa 用了复数

现象:spatlsa rho2015, weights(W) moran报option weights() not allowed,但同样的weights(W)在spatgsa里能跑。原因:全局命令spatgsa用复数weights(),局部命令spatlsa用单数weight(),项目正文第五步和第六步也正好体现了这个差异。解决:局部命令改成weight(W),全局命令保留weights(W)。这不是权重对象的问题,改一个字母就能过。

// 全局莫兰指数:weights 复数 spatgsa rho2015, weights(W) moran // 局部莫兰指数:weight 单数 spatlsa rho2015, weight(W) moran

逻辑说明:两条命令的变量和权重名相同,只有选项单复数不同。参数上不要为了省事把全局命令也改成单数,spatgsa不认;也不要把局部命令写成复数,spatlsa不认。常见坑是复制粘贴时只改命令名没改选项,报错后误以为权重矩阵坏了。

5.3 报错 W not found:spatwmat 没跑或名字不一致

现象:spatgsa rho2015, weights(W) moran报W not found或matrix W not found。原因:在跑全局莫兰指数前没有执行spatwmat using ... name(W) standardize,或者name()里的名字和weights()里的名字不一致,比如一个写W一个写w。解决:先打开数据文件,再跑spatwmat,确认输出里出现权重对象W,然后立刻跑spatgsa。不要中间又use另一个文件把内存清掉。

// 先读数据,再读权重,顺序不要反 use "D:/program/data.dta", clear spatwmat using "D:/program/W.dta", name(W) standardize spatgsa rho2015, weights(W) moran

逻辑说明:spatwmat把权重对象放进内存,spatgsa才能调用;name(W)和weights(W)必须大小写一致。参数上using指向磁盘上的W.dta,不是data.dta。常见做法是这三行连着跑,不要在中途插入其他use命令。如果仍报W not found,用spatwmat的输出确认对象名,再检查weights()里有没有多空格。

5.4 报错 variable rho2015 not found:变量名或数据文件不对

现象:spatgsa rho2015, weights(W) moran报variable rho2015 not found。原因:当前内存里的数据文件不是data.dta,或者变量名实际是Rho2015、rho_2015、moran2015之类。解决:先describe看变量列表,再用ds rho*或describe rho*模糊查找;确认变量名后改命令。不要用rename硬改,除非你清楚后续批量变量都要跟着改。

// 查看 rho 开头的变量 describe rho* // 确认当前数据文件 describe using "D:/program/data.dta"

逻辑说明:describe rho*在当前内存数据集里按通配符查变量;describe using直接看磁盘文件结构,不把数据读进内存。参数上通配符*可以匹配任意后缀,rho*能列出rho2011到rho2015。常见坑是变量名里有空格或大小写不一致,Stata 变量名区分大小写,rho2015和Rho2015不是同一个。改命令前先确认数据文件路径,别在W.dta里找rho2015。

5.5 结果异常或散点图空白:links 异常、行数不一致或权重没标准化

现象:spatgsa能出数,但 Moran's I 明显不合理,或者spatlsa散点图空白、点数量不对。原因:spmat dta W var*的变量前缀选错,spmat summarize W, links输出链接数异常;或者W.dta与data.dta行数不一致,权重和数据错位;也可能是spatwmat忘了standardize。解决:回到权重文件跑spmat summarize W, links,对照data.dta的count;检查两个文件的 ID 顺序;在spatwmat后加standardize重新读权重。

// 检查权重链接 use "D:/program/W.dta", clear spmat dta W var*, replace spmat summarize W, links // 检查数据行数 use "D:/program/data.dta", clear count // 重新读权重并标准化 spatwmat using "D:/program/W.dta", name(W) standardize

逻辑说明:前两段分别检查权重链接和数据行数,最后一段重新建立标准化权重。参数上links是spmat summarize的选项,standardize是spatwmat的选项,不要混用。常见做法是先把links输出里的非零链接数和count行数记下来,如果差距很大,先整理权重文件,不要硬跑莫兰指数。权重错位时结果可能看起来“有数”,但解释方向会反,这种坑比报错更难发现。

6. 装完怎么验证:rho2015 从全局到散点图的最小闭环

装完命令包、配好权重后,不要直接批量跑 2011 到 2015。我一般先用一个变量rho2015做最小闭环:全局莫兰指数、局部莫兰指数、莫兰散点图三步都出结果,再扩大变量列表。验证时重点看三处:全局输出的 Moran's I 和 p 值是否合理,局部输出是否有每个观测的局部值,散点图是否有点且标签不空。下面这段顺序可以直接抄,路径按自己的目录改。

// 最小闭环:rho2015 的全局、局部和散点图 use "D:/program/data.dta", clear spatwmat using "D:/program/W.dta", name(W) standardize // 全局莫兰指数 spatgsa rho2015, weights(W) moran // 局部莫兰指数 spatlsa rho2015, weight(W) moran // 莫兰散点图,先看整体点分布 spatlsa rho2015, weight(W) moran graph(moran) symbol(n) // 带汉字标识的散点图 spatlsa rho2015, weight(W) moran id(DMUname) graph(moran) symbol(id)

这段代码的逻辑是先建立权重对象,再按全局、局部、散点图的顺序调用。参数上spatgsa用weights(W),spatlsa用weight(W),这是验证时最值得盯的差异;symbol(n)和symbol(id)是两种点符号,先跑symbol(n)看整体,再跑symbol(id)看标签。验证时如果全局能出数、局部报错,优先查单复数;如果局部能出数、散点图空白,查DMUname是否有缺失或图形窗口是否被遮挡。

验证点命令看什么
权重对象spatwmat using "D:/program/W.dta", name(W) standardize是否成功建立W,路径是否指向权重文件
全局莫兰指数spatgsa rho2015, weights(W) moranMoran's I、z 值、p 值是否合理
局部莫兰指数spatlsa rho2015, weight(W) moran是否输出每个观测的局部值,有无缺失
散点图spatlsa rho2015, weight(W) moran graph(moran) symbol(n)点是否出现,分布是否明显异常
汉字标识spatlsa rho2015, weight(W) moran id(DMUname) graph(moran) symbol(id)标签是否为空、是否重叠严重

这张表不用背,验证时按行跑一遍就行。全局和局部都通过后,再把spatgsa rho2011 rho2012 rho2013 rho2014 rho2015, weights(W) moran放进去批量算,最后用graph export "D:/program/moran_rho2015.png", replace把图导出来。从那以后我每次装完 Stata 莫兰指数环境,都强制先跑rho2015这一条最小闭环,再碰批量变量;权重文件换一次、路径改一次,也先走一遍spmat summarize W, links和spatwmat standardize。这套 do-file 顺序和权重检查表我整理在资源包里,需要复现时直接取用。希望帮到你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询