楼主: guoyongrui
4266 7

[问答] 求问matlab计算空间杜宾模型时出现的问题 [推广有奖]

  • 1关注
  • 4粉丝

已卖:162份资源

教授

25%

还不是VIP/贵宾

-

威望
0
论坛币
535 个
通用积分
0.3000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
45134 点
帖子
551
精华
0
在线时间
477 小时
注册时间
2010-3-16
最后登录
2017-4-26

楼主
guoyongrui 发表于 2014-4-27 21:04:21 |AI写论文
20论坛币
各位好,我用运用LeSage的空间计量工具包Jplv7用matlab计算空间杜宾模型时遇到了问题,谁能指点下。
这是源代码
clear all;

% load Anselin (1988) Columbus neighborhood crime data
load anselin.dat;
% 5 columns:
% column1 = crime
% column2 = household income
% column3 = house values
% column4 = latitude coordinate
% column5 = longitude coordinate

n = length(anselin);
y = anselin(:,1);
x = [ones(n,1) anselin(:,2:3)];
latt = anselin(:,4);
long = anselin(:,5);
vnames = strvcat('crime','constant','income','hvalue');

W = make_neighborsw(latt,long,6);
我输入我自己的数据,原数据中好像使用坐标转换的矩阵(上述红的部分);由于我自己做好了空间矩阵,我就把上面的代码换成了:
load Rujing.dat;   %换成了我的数据
load juzhen.dat;   %换成了我的数据


n = length(Rujing);
y = Rujing(:,1);
x = [ones(n,1) Rujing(:,2:8)];
vnames = strvcat('lnI','constant','lnrail','lnroad','lnpop','lnpcgdp','lnFDI','lnhotel','lnresource');


W = juzhen;   %换成了我的矩阵

但是计算时出现如下错误:
??? Error using ==> mtimes
Inner matrix dimensions must agree.


Error in ==> sdm at 97
xsdm = [x W*x(:,2:end)];


Error in ==> sdm_d at 30
results = sdm(y,x,W,info);



谁能帮我一下,非常感谢!

关键词:MATLAB 空间杜宾模型 atlab matla 杜宾模型 杜宾 空间 模型 household 源代码

本帖被以下文库推荐

努力

沙发
zhangibt 发表于 2014-4-27 21:11:38
没用过这个包, 看代码应该是矩阵的大小不匹配。   楼主看看你的juzhen. dat和原作者那个W是否一致?

藤椅
guoyongrui 发表于 2014-4-27 21:13:27
zhangibt 发表于 2014-4-27 21:11
没用过这个包, 看代码应该是矩阵的大小不匹配。   楼主看看你的juzhen. dat和原作者那个W是否一致?
我更换了我自己的数据,矩阵应该不一样了啊
努力

板凳
zhangibt 发表于 2014-4-27 21:19:19
guoyongrui 发表于 2014-4-27 21:13
我更换了我自己的数据,矩阵应该不一样了啊
我感觉是矩阵相乘的时候不对, 可能是矩阵大小问题吧。   不妨明白地写个m*n的矩阵乘法算式, 看看是不是这里的问题。

报纸
274980314 发表于 2014-5-6 17:14:40
我也遇到同样的问题,不知道那位高手能帮我们解答一下,谢谢

地板
syslon 发表于 2014-5-7 09:54:42
xsdm = [x W*x(:,2:end)];
从错误提示上看,应该是矩阵相乘时,维数不匹配
矩阵相乘时,需满足 前一个矩阵的列数与后一个矩阵的行数相等,
对于上式,首先 x为n*(end -2+1),因此W应为 n列
因为不知道w的详细情况,建议将w transpose
xsdm = [x  W'*x(:,2:end)];

不一定管用,但希望对楼主有所帮助

7
mwy 发表于 2014-7-10 10:17:46
原程序生成的W是以数据对的形式出现的,我们自己的W是一个普通的矩阵,我在运行的时候也出现了错误,不知道如何解决

8
matlab-007 发表于 2015-2-26 22:23:16
错误原因:  元素相乘

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 23:33