导航:首页 > 程序命令 > stataxtbalance命令

stataxtbalance命令

发布时间:2022-05-07 12:37:39

❶ stata非平衡面板怎么进行logit

目录
1.xtbalance 命令的使用
2.xtbalance 的流程
2.1 生成连续时间的非平衡面板
2.2 不用xtbalance命令的处理成平衡面板的方法
2.3 xtbalance的使用
3.非连续时间的非平衡面板的处理
3.1 生成数据
3.2 处理成平衡面板
3.3 使用 xtbalance
4.非平衡面板非连续时间也没有固定间隔
1.xtbalance 命令的使用
首先,这个命令是stata外部命令,需要先下载安装才能使用。下载安装的命令为ssc install xtbalance,当你下载安装后,你就可以通过使用help xtbalance来查看该命令的帮助文档了解该命令的使用方法。
xtbalance命令的具体用法:xtbalance, range(numlist) [ miss(varlist) ]
请注意,在使用该命令之前你需要设置你的面板数据,你可以通过xtset panelvar timevar或者tsset panelvar timevar来设置你的面板。
当你设置完后,你可以根据你所需要的时间段来处理数据,比如我需要1992-1998年的面板,那么命令就是xtbalance, range(1992 1998)。
缺陷:当你的timevar不是 1991、1992、??2000这样的连续时间时,而是1992、1994、1996??2000这种非连续时间的时候,你使用xtbalance, range(1992 1998)的结果将会删除你的整个样本,你相信么?
当我对我的非连续时间的平衡面板1992(2)2000,进行上述命令的时候,出来的结果如下:
( observations deleted e to out of range)
( observations deleted e to discontinues)
即,该命令首先将不在你选定的时间段内的样本删掉,其次,它在清理每个id的时候,将组内没有1998-1992+1数量的id删掉,但为什么我的平衡面板会被全部删除呢?因为我的不是连续时间,那么我们的时间间隔不一样,每个组内的样本数是不一样的,我的每个id应该只有 1+ (1998-1992)/2 个,它按照连续时间来计算的话会比我多,所以它认为我的组内缺失了样本,不是平衡的,所以会将这些也删掉。结果,我的数据就全被删了。
2.xtbalance 的流程
我们这里就不贴xtbalance命令的源代码,但是我通过自己编写的一个do文件来展示具体操作流程。
2.1 生成连续时间的非平衡面板
我们首先生成一个id为0(1)99,year为1991(1)2000的平衡面板:
clear
set obs 1000
gen id =int(_n/10.000001)
bysort id :gen year =1990+ _n
xtset id year
/*
panel variable: id (strongly balanced)
time variable: year, 1991 to 2000
delta: 1 unit
*/
然后,我们生成均匀分布的随机数,将随机数小于0.2的样本删掉,即每条都有20%的概率被删掉,剩下的样本为非平衡的样本
drop if runiform()<0.2
xtset id year
/*
panel variable: id (unbalanced)
time variable: year, 1991 to 2000, but with gaps
delta: 1 unit
*/
同时,通过tab id我们可以看每个id的样本数(受限于编辑器,这里只列出几行)都不一样
idFreq.PercentCum.091.171.17191.172.34281.043.38370.914.29
注意:这时候,如果在1991(1)2000时间段上是平衡面板的话,每个id应该有2000-1991+1=10条记录
2.2 不用xtbalance命令的处理成平衡面板的方法
实际上,xtbalance命令的操纵是这样的:
删除不在时间段内的样本;
计算每个id的样本数,如果每个id组内缺少样本,则将这个id的样本都删除。
假如,我们需要将上述数据id :0(1)99 year: 1991(1)2000的非平衡面板转为id :0(1)99 year: 1992(1)1998的平衡面板的话,我们需要知道当转为平衡面板后,每个id相对应的只有1998-1992+1=7条记录
drop if year >1998| year <1992
//(228 observations deleted)
bysort id :keep if _N ==7
//(436 observations deleted)
xtset id year
/* panel variable: id (strongly balanced)
time variable: year, 1992 to 1998
delta: 1 unit
*/
2.3 xtbalance的使用
xtbalance ,range(19921998)
/*
(228 observations deleted e to out of range)
(436 observations deleted e to discontinues)
*/
xtset id year
/*
panel variable: id (strongly balanced)
time variable: year, 1992 to 1998
delta: 1 unit
*/
3.非连续时间的非平衡面板的处理
本节将介绍有固定间隔时间的非平衡面板的处理
实际过程中,有许多数据库并不是连续时间的面板,这可能是因为多种原因,比如,某个数据库在调查数据时候,分别在1990、1992、1994每两年调查一次的,其实,这种满好的,因为有固定间隔,然而,当不是固定间隔的时候,处理数据的时候你可能需要多留意。
3.1 生成数据
先生成平衡面板(不是连续时间)
obs : 1000
id :1 (1) 99
year:1991 (2) 2009
/生成非连续时间的平衡面板/
clear
set obs 1000
gen id =int(_n/10.000001)
bysort id :gen year =1990+2*_n -1
xtset id year
/* panel variable: id (strongly balanced)
time variable: year, 1991 to 2009, but with gaps
delta: 1 unit
*/
xtset id year,delta(2)
/*
panel variable: id (strongly balanced)
time variable: year, 1991 to 2009
delta: 2 units
*/
tsset id year,delta(2)
/*
panel variable: id (strongly balanced)
time variable: year, 1991 to 2009
delta: 2 units
*/
tab year
/*
year | Freq. Percent Cum.
------------+-----------------------------------
1991 | 100 10.00 10.00
1993 | 100 10.00 20.00
1995 | 100 10.00 30.00
1997 | 100 10.00 40.00
1999 | 100 10.00 50.00
2001 | 100 10.00 60.00
2003 | 100 10.00 70.00
2005 | 100 10.00 80.00
2007 | 100 10.00 90.00
2009 | 100 10.00 100.00
------------+-----------------------------------
Total | 1,000 100.00
*/
/xtbalance的缺陷/
preserve
count
/*
1000
*/
xtbalance ,range(19932005)
/*
(300 observations deleted e to out of range)
(700 observations deleted e to discontinues)
*/
count
/*
0
*/
restore
注意:
1.xtset id year与tsset id year都可以同时设置面板
2.因为是非连续时间的平衡面板,所以xtset id year命令会提示说你的数据strongly balanced但是时间有gap,如果你的面板time variable是有固定间隔的,那么你可以在xtset id year,delta()的delta()中设置。
3.通过上述xtbalance命令,我们可以看到,我们的非连续时间的平衡面板用xtbalance被清光了23333
再通过随机删除部分样本,使其成为非平衡面板:
drop if runiform()<0.2
/*
(226 observations deleted)
*/
xtset id year,delta(2)
/*
panel variable: id (unbalanced)
time variable: year, 1991 to 2009, but with gaps
delta: 2 units
*/
3.2 处理成平衡面板
我们所需要的样本时间段为1993( 2 ) 2005:
先查看一下数据:
/*
year | Freq. Percent Cum.
------------+-----------------------------------
1991 | 73 9.43 9.43
1993 | 76 9.82 19.25
1995 | 78 10.08 29.33
1997 | 82 10.59 39.92
1999 | 75 9.69 49.61
2001 | 85 10.98 60.59
2003 | 77 9.95 70.54
2005 | 73 9.43 79.97
2007 | 75 9.69 89.66
2009 | 80 10.34 100.00
------------+-----------------------------------
Total | 774 100.00
*/
我们所需要的是1993(2)2005的时间段的话,每个id在1993(2)2005时间段内的样本数应该是1+(2005-1993)/2 = 7,所以,我们的操作流程就是:
1.先只保留1993-2005年的所有样本,不在时间段内的删除掉;
2.计算每个id的样本数,只包括样本数为7的。
drop if year>2005| year <1993
/*(228 observations deleted)*/
bysort id :drop if _N !=7
/*(441 observations deleted)*/
xtset id year,delta(2)
/*
panel variable: id (strongly balanced)
time variable: year, 1993 to 2005
delta: 2 units
*/
3.3 使用 xtbalance
这种情况下,通过对数据进行部分处理,也是可以使用xtbalance的。这个处理主要是将非连续的时间转为连续的时间。
xtset id year,delta(2)
/*
panel variable: id (unbalanced)
time variable: year, 1991 to 2009, but with gaps
delta: 2 units
*/
sum year
gen new_year =1+(year - r(min))/2
那么1993年在new_year中就是2,而2005年就是8 ,然后用新的时间来设置面板,再使用xtbalance,range(2 8)就OK了
xtset id new_year
/*
panel variable: id (unbalanced)
time variable: new_year, 1 to 10, but with gaps
delta: 1 unit
*/
xtbalance,range(28)
/*
(228 observations deleted e to out of range)
(441 observations deleted e to discontinues)
*/
xtset id year,delta(2)
/*
panel variable: id (strongly balanced)
time variable: year, 1993 to 2005
delta: 2 units
*/
注意:除了用gen new_year = 1 + (year - r(min))/2生成新的连续变量外,你还可以通过别的方法来实现,比如说,先将year变量destring成文本变量,然后有encode将其变为数值型也是可以的,这个还加了值标签的。
4.非平衡面板非连续时间也没有固定间隔
实际上,本质都一样

❷ 求助:stata时间序列数据缺失值的处理

用xtbalance命令平衡一下。再回归。否则,你缺失的数据只有补齐,如果不能补齐,当然只有平衡一下了。

❸ 写完xtbalance代码出现varlist not allowed,为什么怎么解决

字段长度太小的原因啊 试试 控制面版找到BDE ADMINISTRATOR 单击打开 先不要管里面是什么啦,按ctrl+N 弹出个对话框 如果是STANDARD 直接点OK,然后在左边找到你创建的STANDARD(左边显示的是STANDARD1)改名字为HeroDB,然后点下他看右边拦

❹ 写完xtbalance代码出现varlist not allowed,为什么怎么解决

应有逗号吧,在xtbalance和range之间。

❺ stata怎么删除缺失值

xtbalance命令平衡一下。再回归。否则,你缺失的数据只有补齐,如果不能补齐,当然只有平衡一下了。

❻ 用STATA可以怎样把面板数据中不平衡的部分找出来并且删掉

这个问题我已答了几次了,呵呵,看来这个命令还很有用啊。
h xtbalance
打开的页面中点第一个网址链接,然后安装。
命令格式:
xtbalance, range(numlist) [ miss(varlist) ]
选项:
range(numlist) specifies sample range to be transfored. numlist must be two integers and specified in ascending order.
miss(varlist) forces to drop the observations if any one of the variable in varlist has missing value

❼ 怎样在stata上安装 xtbalance

可以用下面命令:
ssc install xtbalance

阅读全文

与stataxtbalance命令相关的资料

热点内容
时光相册加密空间密码忘记 浏览:474
华为云为用户提供的服务云服务器 浏览:634
minecraftlinux服务器搭建 浏览:376
linux命令新建文件 浏览:708
长线pdf 浏览:607
程序员电脑支持手写 浏览:414
解压头戴式耳机推荐 浏览:344
纸条app上怎么样看对方主页 浏览:883
编译英语单词怎么写 浏览:249
编译原理和汇编原理的区别 浏览:864
如何给加密的pdf解密 浏览:770
华为盒子时间同步服务器地址 浏览:95
python处理excel乱码 浏览:391
mysql的命令行 浏览:822
jpeg采用什么算法 浏览:701
程序员红轴薄膜 浏览:306
洗脸盆压缩 浏览:780
dpd是什么算法 浏览:157
加密技术中的密钥 浏览:962
qq企业邮箱本地客户端服务器地址 浏览:751