57043 147

[MATLAB] MATLAB实现:moran'I值、moran'I值检验、moran散点图   [推广有奖]

  • 4关注
  • 15粉丝

讲师

9%

还不是VIP/贵宾

-

威望
0
论坛币
46435 个
通用积分
28.1169
学术水平
52 点
热心指数
49 点
信用等级
45 点
经验
6249 点
帖子
171
精华
0
在线时间
594 小时
注册时间
2014-5-20
最后登录
2023-12-27

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
一、用MATLAB计算moran'I值



1、权重矩阵(W)未标准化后的moran'I值
   计算公式: 权重矩阵未标准化后的moran'I值计算公式

函数头:
function moranI=moranI1(X,W)
%%X为列向量,W为权重矩阵
相应MATLAB代码: moranI1.rar (297 Bytes, 需要: 5 个论坛币) 本附件包括:
  • moranI1.m


2、权重矩阵(W)标准化后的moran'I值
a、权重矩阵标准化方法:W每行的值都除以该行的和即可。

b、计算公式: 权重矩阵标准化后的moran'I值计算公式
     注:权重标准化后,moran'I可确保在[-1,1]之间,否则不敢保证。
函数头:
function moranI_standard = moranI2(X,W)
%%X为列向量,W为权重矩阵

相应MATLAB代码: moranI2.rar (311 Bytes, 需要: 5 个论坛币) 本附件包括:
  • moranI2.m


二、moran'I值的检验



函数头:
function [Z_I,Z_alpha] = moran_test(I,W,alpha)
%%I为计算出来的moran'I值
%W为计算相应moran'I值的权重矩阵

%alpha为显著性水平
相应MATLAB代码: moran_test.rar (356 Bytes, 需要: 5 个论坛币) 本附件包括:
  • moran_test.m








三、moran散点图






函数头:
function  result = moranScatterPlot(X,WX)
    %%X为列向量,W为权重矩阵
    %WX是W与X的乘积
    %X,W根据个人需要选择性的标准化
    %X标准化方法:(X-X_mean)/X_std

    %result为回归结果
相应MATLAB代码: moranScatterPlot.rar (319 Bytes, 需要: 5 个论坛币) 本附件包括:
  • moranScatterPlot.m





四、总文件和例子演示



    moran文件中包含了上述所有的程序和一篇理论性文档指导,文档中有详细的例子说明,在此,仅将例子作为演示,演示如下。

    moran总文件程序: moran.rar (298.86 KB, 需要: 25 个论坛币) 本附件包括:
  • www.uni-kassel.de_~rkosfeld_lehre_spatial_SpatialEconometrics2.pdf
  • moran.m
  • moranScatterPlot.m
  • moran_test.m


    实例演示截图:


实例演示1


实例演示2



实例演示3
                          moran散点图


    说明:上述MATLAB程序中的理论性知识都是根据moran文件中包含的pdf文档。除了代码中的bug之外,其它情况本人概不负责。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:matlab实现 moran散点图 MATLAB moran matla MATLAB moran散点图 moran值 moran值检验

moran.rar

1.29 KB

需要: 20 个论坛币  [购买]

本附件包括:

  • moran.m
  • moranScatterPlot.m
  • moran_test.m

已有 4 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
youdele100fen + 1 + 1 精彩帖子
xiongty + 1 精彩帖子
niuniuyiwan + 60 + 60 + 5 + 5 + 5 精彩帖子
xddlovejiao1314 + 30 + 10 + 1 + 1 + 1 精彩帖子,谢谢分享

总评分: 经验 + 90  论坛币 + 70  学术水平 + 8  热心指数 + 7  信用等级 + 6   查看全部评分

本帖被以下文库推荐

沙发
changjiang11 发表于 2015-2-6 20:51:54 |只看作者 |坛友微信交流群
elhorst的网站有源代码 你还这么贵!!!!
已有 1 人评分论坛币 收起 理由
xddlovejiao1314 + 5 鼓励积极发帖讨论

总评分: 论坛币 + 5   查看全部评分

使用道具

藤椅
joan宝宝 发表于 2015-3-4 13:47:49 |只看作者 |坛友微信交流群
你好 moran散点图里面的  result = myls(X,WX)  ,myls函数是什么
已有 1 人评分论坛币 收起 理由
xddlovejiao1314 + 5 鼓励积极发帖讨论

总评分: 论坛币 + 5   查看全部评分

使用道具

板凳
天外来客2013 学生认证  发表于 2015-3-4 16:29:06 |只看作者 |坛友微信交流群
joan宝宝 发表于 2015-3-4 13:47
你好 moran散点图里面的  result = myls(X,WX)  ,myls函数是什么
这个是用最小二乘求回归系数的。
源码是这样的:
function result = myls(X,Y)
%X,Y均为列向量
%y = ax + b
n = length(X);
A = [X,ones(n,1)];
result = inv(A'*A)*A'*Y;
已有 1 人评分论坛币 收起 理由
xddlovejiao1314 + 5 鼓励积极发帖讨论

总评分: 论坛币 + 5   查看全部评分

使用道具

报纸
sunnycelia 发表于 2015-3-16 17:13:56 |只看作者 |坛友微信交流群
楼主运行Z_I = moran_test(I_standard,W_standard);
Z_alpha = norminv(1-alpha,0,1);
出现错误Undefined command/function 'moran_test'.
为什么啊?
已有 1 人评分论坛币 收起 理由
xddlovejiao1314 + 5 鼓励积极发帖讨论

总评分: 论坛币 + 5   查看全部评分

使用道具

地板
sunnycelia 发表于 2015-3-16 17:21:21 |只看作者 |坛友微信交流群
sunnycelia 发表于 2015-3-16 17:13
楼主运行Z_I = moran_test(I_standard,W_standard);
Z_alpha = norminv(1-alpha,0,1);
出现错误Undefined ...
之前我忘记放在工作夹里了,但放进去后就出现这样错误了,求解答
Z_I = moran_test(I_standard,W_standard)
??? Input argument "alpha" is undefined.

Error in ==> moran_test at 11
Z_alpha = norminv(1-alpha,0,1);
>> Z_alpha = norminv(1-alpha,0,1)
??? Error using ==> alpha
Too many output arguments.
已有 1 人评分论坛币 收起 理由
xddlovejiao1314 + 5 鼓励积极发帖讨论

总评分: 论坛币 + 5   查看全部评分

使用道具

7
天外来客2013 学生认证  发表于 2015-3-16 23:51:53 |只看作者 |坛友微信交流群
sunnycelia 发表于 2015-3-16 17:21
之前我忘记放在工作夹里了,但放进去后就出现这样错误了,求解答
Z_I = moran_test(I_standard,W_standar ...
明天早上给你解答啊,亲~
已有 1 人评分论坛币 收起 理由
xddlovejiao1314 + 5 鼓励积极发帖讨论

总评分: 论坛币 + 5   查看全部评分

使用道具

8
天外来客2013 学生认证  发表于 2015-3-17 08:36:26 |只看作者 |坛友微信交流群
天外来客2013 发表于 2015-3-16 23:51
明天早上给你解答啊,亲~
Z_I = moran_test(I_standard,W_standard)
??? Input argument "alpha" is undefined.
这是因为moran_test函数中少了alpha这个参数,如下所示改就行了:
把你moran.m文件中的:
Z_I = moran_test(I_standard,W_standard);
改为:
Z_I = moran_test(I_standard,W_standard,alpha);
已有 1 人评分论坛币 收起 理由
xddlovejiao1314 + 5 鼓励积极发帖讨论

总评分: 论坛币 + 5   查看全部评分

使用道具

9
天外来客2013 学生认证  发表于 2015-3-17 08:45:30 |只看作者 |坛友微信交流群
大家好:
       针对上述朋友问的两个问题,在此做个总结:
       问题1:
      “Z_I = moran_test(I_standard,W_standard)
       ??? Input argument "alpha" is undefined.”
       改正:
              把moran.m文件中的:
              Z_I = moran_test(I_standard,W_standard);(大概是第19行左右)
              改为:
              Z_I = moran_test(I_standard,W_standard,alpha);(大概是第19行左右)
       问题2:
        “??? Undefined function or method 'myls' for input
        arguments of type 'double'.”
        改正:
        新建myls.m文档,把如下代码粘贴进去:
        function result = myls(X,Y)
        %X,Y均为列向量
        %y = ax + b
        n = length(X);
        A = [X,ones(n,1)];
        result = inv(A'*A)*A'*Y;
已有 1 人评分论坛币 收起 理由
xddlovejiao1314 + 5 鼓励积极发帖讨论

总评分: 论坛币 + 5   查看全部评分

使用道具

10
天外来客2013 学生认证  发表于 2015-3-17 08:51:19 |只看作者 |坛友微信交流群
天外来客2013 发表于 2015-3-17 08:36
Z_I = moran_test(I_standard,W_standard)
??? Input argument "alpha" is undefined.
这是因为moran_t ...
那个alpha是假设检验时的显著性水平,一般为0.05。
已有 1 人评分论坛币 收起 理由
xddlovejiao1314 + 5 鼓励积极发帖讨论

总评分: 论坛币 + 5   查看全部评分

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-25 21:29