全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
2343 4
2021-11-30
     各位老师好,最近我遇到一个问题,就是不知道如何用stata实现组合算法。具体来说,比如有一个集合{a,b,c},我想让stata列出这个集合所有的子集{},{a},{b},{c},{a,b,c},{a,b}{b,c}{a,c}。扩展一下,一个集合里有m个元素,我要列出这个集合的所有子集。
    我想编程这个算法的初衷是自己在做回归的时候每次增加减少控制变量都显得很麻烦,所以想编写一个程序可以列出所有的控制变量组合,而不用一个个去跑回归。对于固定数量元素的集合,我可以通过不停使用for循环来实现。但我想扩展一下,可以让这个程序对任意数目的集合都能列出其所有子集。在这过程中我在python语言里看到可以利用列表来轻易的实现组合算法,但是换到stata里,我没看到有列表这个数据格式。
   目前我已经解决了对输入变量个数的识别,对特定数目的控制变量也可以编程找出其所有可能的组合,但是我想进一步实现对不特定数目的控制变量也可以找出其所有可能的组合。目前查询到的网上关于获取集合的子集的算法在这个链接,https://zhuanlan.zhihu.com/p/62027511。大概内容是     
复制代码
     综合来说,我有两个问题:一是stata有没有类似列表之类的储存格式。二是如果没有的话,有没有其他办法来实现我列出一个集合所有子集的想法?我有尝试过用矩阵来实现,但是发现stata的矩阵元素好像只能是数字,不能是字符串。
  我把资料放在附件里,希望各位老师能够指点一二。附件中1.do是我编写的对6个控制变量的遍历。
附件列表

1.do

大小:1.26 KB

 马上下载

二维码

扫码加我 拉你入群

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

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

全部回复
2021-11-30 15:18:50
haodestiny 发表于 2021-11-30 14:50
各位老师好,最近我遇到一个问题,就是不知道如何用stata实现组合算法。具体来说,比如有一个集合{a, ...
https://bbs.pinggu.org/thread-10795595-1-1.html
二维码

扫码加我 拉你入群

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

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

2021-11-30 15:28:35
qianchen 发表于 2021-11-30 15:18
https://bbs.pinggu.org/thread-10795595-1-1.html
是宝气老师吗?幸会幸会。我其实就是看到你的这个程序后才自己尝试复现一下的。但我的目的是提高一下自己的stata编程水平,而不是单纯想要这个结果。方便的话能请问一下您的编程思路是什么吗?目前其他地方我都有办法解决,就是这个组合的问题不懂。当然这是您的个人知识专利,有冒犯的地方还请见谅~~~
二维码

扫码加我 拉你入群

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

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

2021-11-30 15:36:58
qianchen 发表于 2021-11-30 15:18
https://bbs.pinggu.org/thread-10795595-1-1.html
我目前想到的是根据变量数目生成对应数目的宏,tokenize分隔后,用plural()函数对这些宏进行一个个添加,用这一系列宏来模拟列表结构,从而实现算法。
二维码

扫码加我 拉你入群

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

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

2021-11-30 19:44:26
haodestiny 发表于 2021-11-30 14:50
各位老师好,最近我遇到一个问题,就是不知道如何用stata实现组合算法。具体来说,比如有一个集合{a, ...
我不是
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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