我晕:从用Mata以来从没注意到既然会有如此令我不解的问题
今天我用Stata11中的mata进行矩阵运算时,无意间发现用st_data( )定义两个不同的矩阵x和x1时,既然这两个矩阵是一样的,我认为可能我的Stata11有问题,于是用Stata10和Stata9进行验证,结果与Stata11有同样的问题。不知各位的Stata是否有这一问题?我把我的do文件的内容附在下面:
sysuse auto,clear
keep  mpg price  headroom
gen c=1
quie reg  price mpg headroom
predict r,resid
mata
y=st_data(.,2)
x=st_data(.,(1,3,4))
x1=st_data(.,(1,3,5))
x
x1
end
从这do文件中可以看出,矩阵x和x1是不相同的,x由变量price、headroom和c组成,而x1由变量price、headroom和r组成,但这个执行这个do文件的结果是矩阵x和x1是一样的。不解啊!!!!!
do文件运行结果如下:
. sysuse auto,clear
(1978 Automobile Data)
. keep  mpg price  headroom
. gen c=1
. quie reg mpg  price headroom
. predict r,resid
. mata
------------------------------------------------- mata (type end to exit) -------------
: y=st_data(.,2)
: x=st_data(.,(1,3,4))
: x1=st_data(.,(1,3,5))
: x
            1       2       3
     +-------------------------+
   1 |   4099     2.5       1  |
   2 |   4749       3       1  |
   3 |   3799       3       1  |
   4 |   4816     4.5       1  |
   5 |   7827       4       1  |
   6 |   5788       4       1  |
   7 |   4453       3       1  |
   8 |   5189       2       1  |
   9 |  10372     3.5       1  |
  10 |   4082     3.5       1  |
      (略)
: x1
            1       2       3
     +-------------------------+
   1 |   4099     2.5       1  |
   2 |   4749       3       1  |
   3 |   3799       3       1  |
   4 |   4816     4.5       1  |
   5 |   7827       4       1  |
   6 |   5788       4       1  |
   7 |   4453       3       1  |
   8 |   5189       2       1  |
   9 |  10372     3.5       1  |
  10 |   4082     3.5       1  |
      (略)
: end