全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
10415 2
2011-07-28
foreach gama of num 0 1 5 10 50 100{

mkmat mean_mm_98_`gama'_R_vw  mean_mm_98_`gama'_R_ew    mean_mm_98_`gama'_R_tbill   mean_mm_98_`gama'_R_ex_vw mean_mm_98_`gama'_R_ex_ew in 1, matrix(X_98_`gama')

matrix S_optimal_98_`gama'=X_98_`gama''*X_98_`gama'

mat list S_optimal_98_`gama'

matrix S_optimal_inv_98_`gama'=inv(X_98_`gama''*X_98_`gama')

}


这个是我编写的一小段程序,现在的问题是:总提示有missing data。
我已经查到了原因,就是X_98_`gama''*X_98_`gama'这个矩阵的计算结果只显示了下对角阵,直接导致无法计算该矩阵的逆矩阵,从而导致无法求解。

但是不知道为何只显示对角阵呢?这样当然没法算逆矩阵了啊。请教版主。谢谢。

我的问题就是如何计算这个逆矩阵?
其实我就是计算inv(A'A)     A=[ -.00016817             .00762252             .01261233             -.0127805            -.00498981]


下面是该程序的一些运行结果:


X_98_0[1,5]
       mean_mm_98_0_R_vw     mean_mm_98_0_R_ew  mean_mm_98_0_R_tbill  mean_mm_98_0_R_ex_vw  mean_mm_98_0_R_ex_ew
r1            -.00016817             .00762252             .01261233             -.0127805            -.00498981

symmetric S_optimal_98_0[5,5]
                         mean_mm_98_0_R_vw     mean_mm_98_0_R_ew  mean_mm_98_0_R_tbill  mean_mm_98_0_R_ex_vw
   mean_mm_98_0_R_vw             2.828e-08
   mean_mm_98_0_R_ew            -1.282e-06              .0000581
mean_mm_98_0_R_tbill            -2.121e-06             .00009614             .00015907
mean_mm_98_0_R_ex_vw             2.149e-06            -.00009742            -.00016119             .00016334
mean_mm_98_0_R_ex_ew             8.391e-07            -.00003803            -.00006293             .00006377

                      mean_mm_98_0_R_ex_ew
mean_mm_98_0_R_ex_ew              .0000249
matrix has missing values
二维码

扫码加我 拉你入群

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

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

全部回复
2011-7-28 19:11:12
杨国超 发表于 2011-7-28 16:40
我已经查到了原因,就是X_98_`gama''*X_98_`gama'这个矩阵的计算结果只显示了下对角阵,直接导致无法计算该矩阵的逆矩阵,从而导致无法求解
但是不知道为何只显示对角阵呢?这样当然没法算逆矩阵了啊。请教版主。谢谢。

我的问题就是如何计算这个逆矩阵?
其实我就是计算inv(A'A)     A=[ -.00016817             .00762252             .01261233             -.0127805            -.00498981]
我不是版主,但总觉得您的说词有点怪怪的,所以忍不住想回答一下,
请注意有颜色标示的字眼。
我不懂,为什么只显示了下对角阵就无法求逆矩阵??????????
只显示下对角阵,是因为A为row vector,而A'*A则一般说来是n by n的对称矩阵阿,所以上对角阵,恰好与之相对,所以没必要多此一举显示,
而这又与无法求逆矩阵有关?我个人觉得这有一点问题。

以下是check您的矩阵例子
matrix  A=(-.00016817, .00762252, .01261233, -.0127805, -.00498981)
matrix A_A=A'*A
matrix inv_AA=inv(A'*A)
mat lis A_A
mat lis inv_AA

我觉得您应当再仔细检视您的资料。【譬如mean_mm_98_`gama'_R_vw  mean_mm_98_`gama'_R_ew    mean_mm_98_`gama'_R_tbill   mean_mm_98_`gama'_R_ex_vw mean_mm_98_`gama'_R_ex_ew 这几个到底里面有没有missing value】
此外,我觉得您的矩阵变数命名都好长,看起来颇伤眼睛。

以下的例子有助于理解您遇到的问题 【我个人怀疑您的determinant为零,这才是逆矩阵未出现而含有missing value的原因】
matrix c = (1,5,9)
matrix cinv = inv(c'*c)
*这时您应当看到matrix has missing values的字眼
matrix list cinv
*这时,cinv这样的逆矩阵也找不到
matrix c_c=c'*c
matrix lis c_c
mat lis c
*c_c矩阵是对称的,只显示下对角矩阵
matrix det_cc=det(c'*c)
matrix lis det_cc
*深信您的数学在我之上,应当看地出到底发生什么事。

祝 顺心
愿 这样的回答,对您有所助益
二维码

扫码加我 拉你入群

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

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

2018-5-15 21:23:48
围观一下!
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群