内容发布更新时间 : 2024/11/3 3:40:49星期一 下面是文章的全部内容请认真阅读。
十五、检验两组均值的显著性差异,在t检验的后面数值上面加星号 可以用 ttest 命令执行检验,它会直接报告星号。
亦可采用外部命令 meantab 执行检验,自己根据 t 值大小标注星号。 help meantab //这个最好用 sysuse nlsw88, clear
meantab collgrad wage hours ttl_exp tenure, /// over(union) tstat diff noncells
另有一个李春涛老师编写的命令,可以直接标注星号: findit ttable //多变量,两组差异
十六、删除有缺失值的样本 egen mis = rowmiss(_all) drop if mis
条件语句:cond
例如:cond(missing(x), ., cond(x>2,50,70)) returns . if x is missing, returns 50 if x > 2, and returns 70 if x<2
十七、中心化处理与标准化处理 1、安装命令:findit center 2、中心化:
center varlist (注:生成的新变量默认加前置”c_”,可一次对多个变量进行处理)
或:center var, g (newvar) (注:只能对一个变量进行中心化,并生成给定名称的新变量) 3、标准化:
center varlist, prefix(z_) standardize (注:生成的新变量加前置”z_”,可多个,可更改)
十八、恢复数据命令
preserve (处理数据前使用该命令,否则没有数据可恢复) drop var1-var100 (处理数据) restore (恢复数据)
十九、genicv产生交叉项 【问题】
有时候,想生成很多交叉项,但是又不愿意一个一个写。 有时候,想看一个交叉项,但是又不愿意生成。 【方法】
genicv可以一键生成很多交叉项 ##可以直接表示交叉项。 【例子】
ssc install genicv sysuse auto,clear
genicv length weight foreign //会生成4个交叉项,所有可能情况,并且有label reg price length weight length_weight *如果不愿意生成,直接用
reg price c.length##c.weight \\\\\\和上面回归一样一样的
二十、用stata统计变量的个数,但是要去掉重复的部分 bys id:g n=_n count if n==1
二十一、stata中的主成分分析法
1、首先,需要对变量进行哪些检验?KMO?还有什么?KMO检验结果符合什么条件才能继续进行主成分分析?
答:首先使用KMO检验和SMC检验。
KMO的判断为,Using the Kaiser (1974) characterization of KMO values, 0.00 to 0.49 unacceptable 0.50 to 0.59 miserable 0.60 to 0.69 mediocre 0.70 to 0.79 middling 0.80 to 0.89 meritorious 0.90 to 1.00 marvelous
SMC即一个变量与其他所有变量的复相关系数的平方,也就是复回归方程的可决系数。SMC比较高表明变量的线性关系越强,共性越强,主成分分析就越合适。
命令是 estat kmo estat smc
确定是否需要进行主成分分析。如果有些KMO或者SMC值太小,则要考虑要不要将它们放入主成分中。
然后进行主成分回归。 使用命令为:
pca varlist (不清楚就 help pca) 2、例如,对Y的5各指标执行了命令 pca y1 y2 y3 y4 y5 得出结果方差贡献率(proportion)就是权重吗?
答: 不是。假如设定方差贡献率为95%,那么,累积方差超过95%的那几个特征值、所对应的特征变量,就是权重。
3、看有的帖子上回复说,需要接着执行predict y1 y2 y3 y4 y5,score,这是为了得到每个指标的主成分得分吗?为什么我执行了一下,只生成了一个y1, 别y2、y3、y4、y5都没生成呢 答:直接“predict y1-y4”就可以。生成的四个就是得分。
4、不知道你要问什么?
总之,主成分的步骤为
1、先通过KMO检验和SMC检验确定是否需要主成分分析
2、进行主成分分析,通过累计贡献率确定需要的哪几个主成分 3、根据情况看是否需要rotate
4、通过predict进行得分。或者通过scoreplot看得分分布图。
二十二、将一般的数据转化为面板数据
原数据的形式(excel中)是:2008一张sheet,2009一张sheet。。。。。即:
然后改成这样的数据形式是:
粘贴在stata里就是这样的形式(注意:变量名字一定要改):其中Y为因变量,可以是很多个,X1、X2为自变量,也可以是很多个,stata中的变量名依次为:id、Y2008、Y2009、Y2010、X12008、X12009、X12010、X22008、X22009、X22010
在stata中输入命令:
reshape long Y X1 X2,i(id) j(year)回车即可,变为:
二十三、关于数值型转换为字符型的问题
1、股票代码导入STATA后都变成数值型,现想用tostring命令变回字符型,但长度小于6位的代码,在变回字符型后在前面补够不足6位的0。
方法:format variable s
这只是在显示上补充了0,没有在值上补充。以下可以改变x的值: replace x=substr(\
2、将一个12位的数值转换为字符,再从字符里提取前五个字符。转成字符后以科学计数法显示,提取前五位数是提取的科学计数法的前五位,如将110102002016转成字符后显示为1.10e+11,提取时提的是“1.10e”而不是我想要的“11010” g y=substr(string(x,\
3、将字符型转化为数值型命令为:destring var,replace (转换后替换原来的值)
若字符型中含其他符号并要生成新变量则用:destring varlist, gen(newvarlist) ignore(“$ ,%”)
二十四、分组
均分四组:sort var
xtile prop=var, nq(x) (括号中的x 代表分成的group数)
例如:
sort insto_ma
xtile prop=insto_ma, nq(4)// 以insto_ma的四分位点分成四组 sort prop insto_msd
egen stdI=xtile(insto_msd),by(prop) nq(4)//按prop,以insto_msd的四分位点分成四组
二十五、估计残差
做完回归后,使用命令predict e ,r
22排列组合计算C3?3,C4?6:di comb(3,2),di comb(4,2)
取整:
1.ceil(x),returns the unique integer n such that n-1 < x <=n. returns x (not “.”) if x is missing, meaning that ceil(.a) = .a
2.floor(x),returns the unique integer n such that n<= x < n + 1, returns x (not “.”) if x is missing, meaning that floor(.a) = .a
3.int(x), returns the integer obtained by truncating x toward 0; thus, int(5.2) = 5,int(-5.8) =-5,returns x (not “.”) if x is missing, meaning that int(.a) = .a。One way to obtain the closest integer to x is int(x+sign(x)/2), which simplifies to int(x+0.5) for x 0. However, use of the round() function is preferred