本站分享大数据、数据分析、数据挖掘、数据库、商业智能(BI)、数据分析师、培训课程考试认证等相关信息!【广告合作】在线联系联系我们数据分析QQ交流群:331864445

如何一次定义与多个虚拟变量的交互项_Stata12做回归如何建立交互项

stata培训 cdadata 38℃ 0评论

我现在有30个虚拟变量,我想定义另一个解释变量与这30个虚拟变量的交互项,也就是30个交互项,不知怎么一次生成,请教高手。


你可以试一下使用stata自带的自动生成交叉变量的命令,Interaction expansion,或者是使用 Data > Create or change data > Other variable-creation commands > Interaction expansion 来生成交叉变量


如果是时间虚拟变量的话,回归命令:reg y x1  c.x1#i.year

这样做肯定不行,交互项不是简单的相乘,比如0,1和另一组也是0,1,按照交互原则,应该是有四个组合的,但这里相乘的话只有0,1两种结果;又比如1,2和1,2,3,这里应该是有6种情况,但如果相乘的话,就只有1,2,3,4,6五种情况了,肯定是不行的


Stata12做回归如何建立交互项

比如说 X、Y两个自变量,若要在stata12中进行回归时建立交互项,那么交互项该如何表示

建立新变量

gen z=x*y

Title

    [U] 11.4.3 Factor variables

Description

    Factor variables are extensions of varlists of existing variables.  When a command allows factor variables, in
    addition to typing variable names from your data, you can type factor variables, which might look like

        i.varname

        i.varname#i.varname

        i.varname#i.varname#i.varname

        i.varname##i.varname

        i.varname##i.varname##i.varname

    Factor variables create indicator variables from categorical variables, interactions of indicators of categorical
    variables, interactions of categorical and continuous variables, and interactions of continuous variables
    (polynomials).  They are allowed with most estimation and postestimation commands, along with a few other
    commands.

    There are four factor-variable operators:

         Operator  Description
         ————————————————————————————————————-
         i.        unary operator to specify indicators
         c.        unary operator to treat as continuous
         #         binary operator to specify interactions
         ##        binary operator to specify factorial interactions
         ————————————————————————————————————-

    The indicators and interactions created by factor-variable operators are referred to as virtual variables.  They
    act like variables in varlists but do not exist in the dataset.

    Categorical variables to which factor-variable operators are applied must contain nonnegative integers with values
    in the range 0 to 32,740, inclusive.

    Factor variables may be combined with the L. and F. time-series operators.

Remarks

    Remarks are presented under the following headings:

        Basic examples
        Base levels
        Selecting levels
        Applying operators to a group of variables

Basic examples

    Here are some examples of use of the operators:

         Factor            
         specification     Result
         ————————————————————————————————————-
         i.group           indicators for levels of group

         i.group#i.sex     indicators for each combination of levels of group and sex, a two-way interaction

         group#sex         same as i.group#i.sex

         group#sex#arm     indicators for each combination of levels of group, sex, and arm, a three-way interaction

         group##sex        same as i.group i.sex group#sex

         group##sex##arm   same as i.group i.sex i.arm group#sex group#arm sex#arm group#sex#arm

         sex#c.age         two variables — age for males and 0 elsewhere, and age for females and 0 elsewhere; if age
                             is also in the model, one of the two virtual variables will be treated as a base

         sex##c.age        same as i.sex age sex#c.age

         c.age             same as age

         c.age#c.age       age squared

         c.age#c.age#c.age age cubed
         ————————————————————————————————————-

Base levels

    You can specify the base level of a factor variable by using the ib. operator.  The syntax is

           Base         
           operator(*)    Description
           ———————————————————————————————————–
           ib#.           use # as base, #=value of variable
           ib(##).        use the #th ordered value as base (**)
           ib(first).     use smallest value as base (the default)
           ib(last).      use largest value as base
           ib(freq).      use most frequent value as base
           ibn.           no base level
           ———————————————————————————————————–
            (*) The i may be omitted.  For instance, you may type ib2.group or b2.group.
           (**) For example, ib(#2). means to use the second value as the base.

    If you want to use group==3 as the base in a regression, you can type,

        . regress y  i.sex ib3.group

    You can also permanently set the base levels of categorical variables by using the fvset command.

我觉得做交互项最好的方式还是先乘起来,再进入模型


anova wage children married children#married c.education
你用的周广肃的教材吧?他用stata10.0做的,你当然运行不了。没看提示嘛,那个命令只适合于11.0以下版本

转载请注明:数据分析 » 如何一次定义与多个虚拟变量的交互项_Stata12做回归如何建立交互项

喜欢 (1)or分享 (0)

您必须 登录 才能发表评论!