我正在尝试创建一个回归,其中包含year
的{{1}}的多项式(假设为二阶),并且在year
的某个时间间隔(例如1到70)和一些虚拟对象year
的某些值(比如45到60之间的每year
个)。
如果我没有对傻瓜的限制,我相信命令会是:
gen year2=year^2
regress y year year2 i.year if inrange(year,1,70)
我不能手动制作假人,最后会有超过15个)。请问有人帮帮我吗?
如果我想在没有傻瓜的情况下绘制估计的功能,为什么这两个会带来不同的东西?
twoway function _b[_cons] +_b[year]*x + _b[year2]*x^2, range(1 70)
twoway function _b[_cons] +_b[year]*year + _b[year2]*year^2, range(1 70)
我理解它的方式,_b[_cons]
,_b[year]
和_b[year2]
调用先前为相应自变量计算的系数,然后将它们与它们相乘。如果在这种情况下x
应与year
相同,为什么它会带来不同的结果?
答案 0 :(得分:-1)
我不确定为什么Pearly会给你这么难的时间,我想这可能就是你想要的,但是如果它有所不同,请告诉我:
有一点需要注意,我正在使用预先加载Stata的数据集,这通常是制作像Nick这样的MVCE的好方法。
clear
sysuse gnp96
/* variables: gnp, date (quarterly) */
gen year = year(dofq(date)) // get yearly variable
gen year2=year^2 // get the square of the yearly variable
tab year if inrange(year,1970,1975), gen(yr) // generate dummy variables
// the dummy varibales generated have null values for years not
// in the specified range, so we're going to fill those in
foreach v of varlist yr* {
replace `v' = 0 if `v' == .
}
// here's your regression
regress gnp year year2 yr* if inrange(year,1967,1990)
现在,yr *是你的虚拟变量,*是一个通配符,调用所有名为yr [something]的变量
这为您提供虚拟变量的范围和年变量的范围。
关于使用x vs year的问题,我只是假设,但我认为当你使用x时它是连续的,因为Stata没有查看你的变量,而只是在x轴而你的年变量是离散的(一堆整数)所以它看起来更像是一个阶梯函数。可以使用命令help twoway function