stata如何保留满足一定条件的部分stata 样本外预测

苹果/安卓/wp
积分 1348, 距离下一级还需 27 积分
权限: 自定义头衔, 签名中使用图片, 隐身
道具: 涂鸦板, 彩虹炫, 雷达卡, 热点灯, 显身卡, 匿名卡, 金钱卡, 抢沙发下一级可获得
权限: 设置帖子权限道具: 变色卡, 提升卡
购买后可立即获得
权限: 隐身
道具: 金钱卡, 变色卡, 彩虹炫, 雷达卡, 热点灯, 涂鸦板
我从数据库中下载了所有A股样本的相关数据,但我只需要从中选择一部分已经设定好的样本数据,如何在STATA中实现呢?比如总样本包括:A,B,C,D,E,F,G,H,I,J,K,这11只股票的相关数据,但我只需要从中选择C,D,H,I,J五只股票的相关数据,这个我如何实现呢?希望各位大侠帮助哦。
观点有启发
总评分:&经验 + 80&
学术水平 + 1&
对的用if语句,reg y x if
多谢上面的兄弟的答案,我需要的是从全部A股中选择其中已经选择好的400多只股票的相关交易或财务数据啊。还没到reg这一步啊。
用keep&&和&&if
可能是我的意思没有表达清楚,比如说,我需要400个已经确定好的股票数据,但我从数据库中下载的是所有A股的相关数据,我怎么才能把这400个股票的数据从所有A股中一个个的挑出来呢?
keep C D H I J
多谢楼上的帮助
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
如有投资本站或合作意向,请联系(010-);
邮箱:service@pinggu.org
投诉或不良信息处理:(010-)
论坛法律顾问:王进律师苹果/安卓/wp
积分 2322, 距离下一级还需 1278 积分
权限: 自定义头衔, 签名中使用图片, 隐身, 设置帖子权限, 设置回复可见
道具: 涂鸦板, 彩虹炫, 雷达卡, 热点灯, 显身卡, 匿名卡, 金钱卡, 抢沙发, 变色卡, 提升卡, 沉默卡下一级可获得
道具: 千斤顶
购买后可立即获得
权限: 隐身
道具: 金钱卡, 变色卡, 彩虹炫, 雷达卡, 热点灯, 涂鸦板
无聊签到天数: 469 天连续签到: 1 天[LV.9]以坛为家II
本帖最后由 ly7634499 于
09:42 编辑
各位大哥大姐,小弟在用stata转换数据时被一个问题卡住了,我希望保留4位数字的前两位,请问一下用stata什么命令能够实现呢?跪谢
例:&&现有数据& & 希望得到X1& && && && && & X2& &&&X3
& && && && &3869& && && && && && && &38& && && && && & 86& &&&869
& && && && &4135& && && && && && && &41& && && && && & 13& &&&135
& && && && &0913& && && && && && && &09& && && && && & 91& & 913
先改成string数据,然后使用substr函数generate新变量,再转回num数据
分析的有道理
总评分:&学术水平 + 1&
热心指数 + 1&
信用等级 + 1&
楼上讲的非常好!
我觉得这问题一点点麻烦是在像09这样的字符串设定。
为演练,请参考
tostring x,g(xx) format(%04.0f)
g x1=substr(xx,1,2)
g x2=substr(xx,2,2)
g x3=substr(xx,2,3)
至于x1变量要不要转回num数据,看楼主自己了! 问题出在像09…
转回num数据,请楼主自行参考指令destring
分析的有道理
总评分:&学术水平 + 1&
热心指数 + 1&
信用等级 + 1&
太感谢啦,端午节快乐
初级热心勋章
初级热心勋章
中级热心勋章
中级热心勋章
初级信用勋章
初级信用勋章
中级信用勋章
中级信用勋章
高级热心勋章
高级热心勋章
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
如有投资本站或合作意向,请联系(010-);
邮箱:service@pinggu.org
投诉或不良信息处理:(010-)
论坛法律顾问:王进律师同一个模型两组不同样本下,回归系数间的差异性检验??( 非虚拟变量,stata方法) - 知乎有问题,上知乎。知乎作为中文互联网最大的知识分享平台,以「知识连接一切」为愿景,致力于构建一个人人都可以便捷接入的知识分享网络,让人们便捷地与世界分享知识、经验和见解,发现更大的世界。135被浏览<strong class="NumberBoard-itemValue" title="2分享邀请回答1729 条评论分享收藏感谢收起4611 条评论分享收藏感谢收起苹果/安卓/wp
积分 26, 距离下一级还需 19 积分
道具: 涂鸦板, 彩虹炫, 雷达卡, 热点灯下一级可获得
道具: 显身卡, 匿名卡, 金钱卡
购买后可立即获得
权限: 隐身
道具: 金钱卡, 变色卡, 彩虹炫, 雷达卡, 热点灯, 涂鸦板
本帖最后由 woshizhu99 于
09:51 编辑
先谢过各位!
目前在研究 不同人群的潜在结婚对象问题。 例如,年龄为a的样本,其潜在对象为年龄a+-5的异性;教育程度为大学本科的样本,其潜在对象为教育程度初中—博士的异性。
假设有数据如下:_n&&age&&educ&&sex
1& &&&20& &3高中& &1
2& &&&25& &4大学& &2&&
3& &&&40& &4大学& &1&&
4& &&&30& &1小学& &1
5& &&&28& &4大学& &1
6& &&&25& &3高中& &2
7& &&&40& &3高中& &2
现在要建立一个新变量 _c,表示潜在结婚对象的人数。
以样本编号为2的女性为例,在该样本中,其潜在对象为样本编号 1 和 5,其余人均因不同原因不满足要求。所以,_c=2
以样本编号为3的男性为例,在该样本中,其潜在对象为样本编号 7& && & ,其余人均因不同原因不满足要求。所以,_c=1
这个问题让我很困扰,不知如何下手。
我的思路是,先建立一串虚拟变量,如 for_age25 和 for_age40,用来指明从年龄上看满足要求的样本。再建立一串,如for_educ4,用来指示满足教育要求的对象。建立完成后,数据如下:
_n&&age&&educ&&sex&&for_age25&&for_age40& & for_educ4&&
1& &&&20& &3高中& &1& && &&&1& && && && && & 0& && && && && & 1
2& &&&25& &2初中& &2& && &&&1& && && && && & 0& && && && && & 1
3& &&&40& &4大学& &1& && &&&0& && && && && & 1& && && && && & 1
4& &&&35& &2初中& &1& && &&&0& && && && && & 1& && && && && & 1
5& &&&28& &4大学& &1& && &&&1& && && && && & 0& && && && && & 1
6& &&&25& &2小学& &2& && &&&1& && && && && & 0& && && && && & 0
7& &&&40& &3高中& &2& && &&&0& && && && && & 1& && && && && & 1
于是,_c等于若干虚拟变量均为1的观测值的数量。
求一段代码求 _c
(目前在想能不能用 egen anycount 来处理)
小桥流水人家
forvalues i=1/7 {
forvalues j=1/7 {
if (abs(age(`i')-age(`j'))&=5 & sex(`i')!=sex(`j')) {
replace _c=_c+1 in `i'
热心帮助其他会员
总评分:&论坛币 + 12&
学术水平 + 1&
热心指数 + 1&
ermutuxia 发表于
forvalues i=1/7 {谢谢,你的代码确实能解决问题。
不过,我现在手头数据观测值有100万以上,这样对每一个样本逐一累加,运行起来会不会很慢?
小桥流水人家
woshizhu99 发表于
谢谢,你的代码确实能解决问题。
不过,我现在手头数据观测值有100万以上,这样对每一个样本逐一累加,运 ...没关系,你最好使用配置比较高的电脑运行程序
ermutuxia 发表于
没关系,你最好使用配置比较高的电脑运行程序直接按照这个算法来,I7笔记本大概要跑半个月。。。
不过依旧按照你的思路,改良了下算法,已经达成目的。不过还是算了十几个小时。
不知道有没有更高效的算法来进行计数。
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
如有投资本站或合作意向,请联系(010-);
邮箱:service@pinggu.org
投诉或不良信息处理:(010-)
论坛法律顾问:王进律师苹果/安卓/wp
积分 443, 距离下一级还需 7 积分
权限: 自定义头衔, 签名中使用图片
道具: 涂鸦板, 彩虹炫, 雷达卡, 热点灯, 显身卡, 匿名卡, 金钱卡, 变色卡下一级可获得
道具: 抢沙发
购买后可立即获得
权限: 隐身
道具: 金钱卡, 变色卡, 彩虹炫, 雷达卡, 热点灯, 涂鸦板
餐具签到天数: 19 天连续签到: 1 天[LV.4]偶尔看看III
本帖最后由 evarei2 于
00:56 编辑
问题见下表主体名 变量1变量2 a 7 . b 1 。 c 5 。 d 3 。 e 9 。 f 0 。 g 12 。& && & 如何编程可以达到以下目的:当变量1出现数字1时,删除整行数据,并且开始依次删除后面的数据,直到变量1为0时停止.以上面表为例,删除后变成下表。
主体名 变量1变量2 a 7 .g12 。& && &&&PS:1.需要处理的数据集一共有54万行,存在上述需要删除的地方有几千处,请不要说自己观察然后逐行删除。
& && && && && & 2.真实的处理要求,是当变量1满足某一特定值时开始执行删除命令,遇到另一个特定值时停止,上面的例子为简单起见,以0和1代替。
& && &&&希望各位高手能不吝赐教,万分感谢
*The following example will drop all values between 1 and 0 of var1 (include 1 and 0) and
should be what you want.
input id var1
gen var2=var1 if inlist(var1,1,0)
replace var2=var2[_n-1] if var2==.
drop if var1==0 | var2==1
本帖最后由 hplcdadong 于
09:14 编辑
*The following example will drop all values between 1 and 0 of var1 (include 1 and 0) and&&should be what you want.
input id var1& && &&&
gen var2=var1 if inlist(var1,1,0)
replace var2=var2[_n-1] if var2==.
drop if var1==0 | var2==1
热心帮助其他会员
观点有启发
热心帮助其他会员
热心帮助其他会员
总评分:&论坛币 + 20&
学术水平 + 5&
热心指数 + 5&
信用等级 + 3&
本人才疏学浅,记忆中stata貌似没有终止命令,只能介绍你删除命令
命令:drop in range if var==1
变量说明:
1. range指的是你处理数据的行数,譬如你处理的数据有54万行,那你range就是1/540000,这里&/&是“-”的意思。
2. var便是你数据中的变量名称,var==1表示你的变量恒等于数据1。
命令说明:
假如你有54万行数据,当变量1(var1)出现数据1时,删除整行数据,直到遇到0为止。那么命令可以使:
drop in 1/540000 if var1==1
热心帮助其他会员
总评分:&论坛币 + 20&
学术水平 + 1&
热心指数 + 1&
hplcdadong 发表于
*The following example will drop all values between 1 and 0 of var1 (include 1 and 0) and&&should be ...我问了几个人都搞不定,我还以为实现不了这个问题,没想到这么简单就实现了,佩服
gjpig55 发表于
本人才疏学浅,记忆中stata貌似没有终止命令,只能介绍你删除命令
命令:drop in range if var==1你好,可能我讲的不是很清楚,你这个命令貌似只能删除变量为1的那一行,1和0之间夹着的所有行无法删除,不过还是感谢
本帖最后由 hiderm 于
10:43 编辑 hplcdadong 发表于
*The following example will drop all values between 1 and 0 of var1 (include 1 and 0) and&&should be ...smart idea!cool!
我来试着解释一下二楼的思路,有不对的地方请各位坛友指出
1. 楼主的问题是希望当var1满足某一特定值时开始执行删除命令(含该obs),直到遇到另一个特定值时停止(含该obs)
在简例中,第一个值是1,第二个值是0。要删除var1等于这两个特定值的obs,无疑是简单的。难点在于,如何删除上述两种情形之间的那些obs。
坛友以他的视角将这个问题加以简化,以简例来说,要删除的是var1从1开始,到等于0结束以及这之间的所有obs,【但是】不能删除(或者说 保留)var1等于0之后的obs,直到再次出现var1的值等于1时为止(不保留该obs)。再简单的说,就是删除var1等于1到0之间的obs(含首尾的obs),但不能删除var1等于0到1之间的obs(不含首尾的obs)。
如果我们按照var1的取值对54万行的obs加以分类的话,A类是var1的取值为1或0的obs,对A类再细分的话,A1是var1的取值为1的obs,A2是var1的取值为0的obs;B类是var1的取值为其它值的obs。在B类中,又可以细分为两个子类:B1类是var1的取值在1到0之间的obs;B2是var2的取值在0到1之间的obs。
如果我们按照楼主的目标对54万行的obs加以分类的话,可以划分为两类:需要删除的obs,设为C1,需要保留的obs,设为C2
经过上述分类,我们不难发现,要删除的是{C1}={A1, A2, B1},需要保留的是 {C2}={B2}
10:42:06 上传
现在来看二楼的
坛友的命令:
gen var2=var1 if inlist(var1,1,0)& && &
// 这句命令的思路就是把所有的obs划分为A、B两类:在var2的取值上就是,如果var1等于1或0,那么var2的取值就复制该取值,满足inlist条件的obs,就是所谓的A类。
// 而如果var1的取值不是0或1,那么var2就将其全部变为missing value,也就是说,var2的取值为missing value的obs,都是B类
replace var2=var2[_n-1] if var2==.
// 这句命令的思路就是把B类再细分为需要删除的B1类,和需要删除的B2类
也就是对于var2等于missing value的所有obs,如果该obs的var2的取值在1之后,那么将其missing取值更替为1,这就是所谓的B1类,即需要删除的obs类型中的一种,即此时var2等1的obs实际上包括两个分类:原本就取值为1的obs(复制自var1),这是需要删除的A1类,以及取值由missing值更替为1的obs,这就是需要删除的B1类;如果该obs的var2的取值在0之后,那么将其missing取值更替为0,这就是所谓的B2类,即需要保留的obs;【但要注意的是】实施上述更替后,var2的取值为0的obs实际上包括两类(A2类和B2类),即原本就取值为0的obs(复制自var1),这是需要删除的A2类,以及取值由missing值更替为0的obs,这就是需要保留的C2类,也即B2类。
drop if var1==0 | var2==1
// 【关键的删除时刻来到了】经过上述操作以及俺的分析,我们现在知道,要删除的A2类就是 满足if条件中的 var1==0 的obs,以及需要删除的A1类和B1类就是 满足if条件中的 var2==1的obs。
OK,任务完成了。
【最后,对不起各位,我嘴太笨!】
热心帮助其他会员
总评分:&论坛币 + 5&
学术水平 + 3&
热心指数 + 3&
信用等级 + 2&
很清晰的思路,我之前也是这么干的
gjpig55 发表于
本人才疏学浅,记忆中stata貌似没有终止命令,只能介绍你删除命令
命令:drop in range if var==1试了,可以做到,谢谢~
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
如有投资本站或合作意向,请联系(010-);
邮箱:service@pinggu.org
投诉或不良信息处理:(010-)
论坛法律顾问:王进律师

我要回帖

更多关于 stata 样本量 加权 的文章

 

随机推荐