Statistics 如何根据分类变量生成具有统计信息的表?

Statistics 如何根据分类变量生成具有统计信息的表?,statistics,output,stata,Statistics,Output,Stata,我有很多变量,我需要描述性统计方法。但是,作为列,我希望使用分类变量AlcCons1的值 为此,我使用了以下代码: tabstat年龄25_29年龄30_34。。。烟雾释放,统计平均值为1 我得到的结果如下: Alcons1 | 25 | 29 | 30 | 34 | 35 | 39 | 40 | 44 | 45 | 49 | 50 | 54 | 55 | 59 -----+----------------------------------- 1 | .0987326 .0936242

我有很多变量,我需要描述性统计方法。但是,作为列,我希望使用分类变量AlcCons1的值

为此,我使用了以下代码:

tabstat年龄25_29年龄30_34。。。烟雾释放,统计平均值为1 我得到的结果如下:

Alcons1 | 25 | 29 | 30 | 34 | 35 | 39 | 40 | 44 | 45 | 49 | 50 | 54 | 55 | 59 -----+----------------------------------- 1 | .0987326 .0936242 .1243994 .1668614 .1579665 .1481626 .1258278 2 | .1037879 .11853 .1451863 .1415631 .1317288 .1231884 .1387164 3 | .0905679 .1151016 .1405161 .1624963 .1506231 .137278 .123246 4 | .0649853 .0716117 .1094201 .1606857 .1786286 .1630888 .1401794 -----+----------------------------------- 总计|.091001.0986022.1286311.1617972.156643.144962.1289952 ---------------


如何交换列和行?原则上,答案是cstatistics。对于这种例子,这是合法的,它产生了一种换位,但结果不是一种精确的换位。这里有一种方法可以做得更好

在这个问题上没有可复制的例子,所以我们需要找到一个

使用手段是偶然的。任何其他统计数据都会出现同样的问题

这是我们可能需要转换的表类型

. sysuse census, clear
(1980 Census data by state)

. tabstat poplt5-pop65p , s(p50) by(region)

Summary statistics: p50
  by categories of: region (Census region)

 region |    poplt5   pop5_17    pop18p    pop65p
--------+----------------------------------------
     NE |    185188    637731   2284657    364864
N Cntrl |  327094.5    936449   3126055  521880.5
  South |  289571.5    880546   2803536  407053.5
   West |    114731    303176    884987    109220
--------+----------------------------------------
  Total |  227467.5    629654   2175130    370495
-------------------------------------------------
技巧1:通过获得一个只包含我们想要制表的数据集来简化问题

. collapse (p50) poplt5-pop65p, by(region)

. l

     +---------------------------------------------------------+
     | region       poplt5   pop5_17        pop18p      pop65p |
     |---------------------------------------------------------|
  1. | NE          185,188   637,731     2,284,657     364,864 |
  2. | N Cntrl   327,094.5   936,449   3,126,054.5   521,880.5 |
  3. | South     289,571.5   880,546     2,803,536   407,053.5 |
  4. | West        114,731   303,176       884,987     109,220 |
     +---------------------------------------------------------+
技巧2:使用重塑将不同类别的不同变量映射到单个类别变量

. reshape long pop, i(region) j(age) string
(note: j = 18p 5_17 65p lt5)

Data                               wide   ->   long
-----------------------------------------------------------------------------
Number of obs.                        4   ->      16
Number of variables                   5   ->       3
j variable (4 values)                     ->   age
xij variables:
              pop18p pop5_17 ... poplt5   ->   pop
-----------------------------------------------------------------------------

. l, sepby(region)

     +------------------------------+
     | region     age           pop |
     |------------------------------|
  1. | NE         18p     2,284,657 |
  2. | NE        5_17       637,731 |
  3. | NE         65p       364,864 |
  4. | NE         lt5       185,188 |
     |------------------------------|
  5. | N Cntrl    18p   3,126,054.5 |
  6. | N Cntrl   5_17       936,449 |
  7. | N Cntrl    65p     521,880.5 |
  8. | N Cntrl    lt5     327,094.5 |
     |------------------------------|
  9. | South      18p     2,803,536 |
 10. | South     5_17       880,546 |
 11. | South      65p     407,053.5 |
 12. | South      lt5     289,571.5 |
     |------------------------------|
 13. | West       18p       884,987 |
 14. | West      5_17       303,176 |
 15. | West       65p       109,220 |
 16. | West       lt5       114,731 |
     +------------------------------+
技巧3:直接使用tabdisp

. tabdisp age region, c(pop)

--------------------------------------------------------------
          |                   Census region                   
      age |          NE      N Cntrl        South         West
----------+---------------------------------------------------
      18p |   2,284,657  3,126,054.5    2,803,536      884,987
     5_17 |     637,731      936,449      880,546      303,176
      65p |     364,864    521,880.5    407,053.5      109,220
      lt5 |     185,188    327,094.5    289,571.5      114,731
--------------------------------------------------------------
技巧4:可能需要一些清理

. label def age 1 lt5 2 5_17 3 18p 4 65p

. encode age , gen(ageclass) label(age)

. tab ageclass

   ageclass |      Freq.     Percent        Cum.
------------+-----------------------------------
        lt5 |          4       25.00       25.00
       5_17 |          4       25.00       50.00
        18p |          4       25.00       75.00
        65p |          4       25.00      100.00
------------+-----------------------------------
      Total |         16      100.00

. label def age 1 "<5" 2 "5-17" 3 "18-64" 4 "65+", modify

. tabdisp ageclass region, c(pop)

--------------------------------------------------------------
          |                   Census region                   
 ageclass |          NE      N Cntrl        South         West
----------+---------------------------------------------------
       <5 |     185,188    327,094.5    289,571.5      114,731
     5-17 |     637,731      936,449      880,546      303,176
    18-64 |   2,284,657  3,126,054.5    2,803,536      884,987
      65+ |     364,864    521,880.5    407,053.5      109,220
--------------------------------------------------------------

我在下面的链接中找到了答案: 我尝试转置表格,因此安装了以下命令:

ssc安装tabstatmat,更换

tabstat Age25_29 Age30_34 CurntSmokeY Religanty,byAlcCons1 statmean colstat长格式%9.2f保存

塔布斯塔特酒店

矩阵B=B'

矩阵列表B,f%9.2f

我得到了我所需要的:

B[41,5] 1:2:3:4:总计: 中庸

年龄25_29 0.10 0.10 0.09 0.06 0.09

年龄30_34 0.09 0.12 0.12 0.07 0.10

年龄35_39 0.12 0.15 0.14 0.11 0.13

年龄40_44 0.17 0.14 0.16 0.16 0.16


现在的问题是如何让它看起来更好删除平均值,用单词更改1,2,3,4,然后使用putexcel命令?

文档选项:columnsstatistics。请务必查看帮助。代码为:tabstat Age25_29 Age30_34。。。religanty,byalcons1 columns统计数据意味着我得到的表格是这样的:alcons1 | mean------+----1 |.0987326 |.0936242 1243994这是一个比乍一看更有趣、更具挑战性的问题!具有讽刺意味的是,我是tabstatmat的原始作者,但我不会为此特别推荐它。我认为,你需要把统计数据从矩阵中提取出来,转化为变量,这就是我的解决方案直接做的。您最初的问题没有提到将结果放入MS Excel的动机。编辑以修复链接。