杨国超 发表于 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
*深信您的数学在我之上,应当看地出到底发生什么事。
祝 顺心
愿 这样的回答,对您有所助益