Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Stata_b[]中用于分类变量的后估计命令_Stata - Fatal编程技术网

Stata_b[]中用于分类变量的后估计命令

Stata_b[]中用于分类变量的后估计命令,stata,Stata,编辑:下面提供了一个工作示例 原始:后估计命令可用于预测因变量的值。这里是一个示例,您可以键入_b[_cons]+_b[x1]*1+_b[x2]以获得Y的实际值。对于Stata上的大多数在线示例,这些值要么是虚拟值,要么是连续值。如果我有一个分类变量很难手动转换成多个假人(比如52周),该怎么办?我是否可以保留所有分类变量,并通过告诉Stata选择正确的值来运行类似于下面的后估计命令 regress write female read Source | SS

编辑:下面提供了一个工作示例

原始:后估计命令可用于预测因变量的值。这里是一个示例,您可以键入_b[_cons]+_b[x1]*1+_b[x2]以获得Y的实际值。对于Stata上的大多数在线示例,这些值要么是虚拟值,要么是连续值。如果我有一个分类变量很难手动转换成多个假人(比如52周),该怎么办?我是否可以保留所有分类变量,并通过告诉Stata选择正确的值来运行类似于下面的后估计命令

regress write female read

      Source |       SS       df       MS              Number of obs =     200
-------------+------------------------------           F(  2,   197) =   77.21
       Model |  7856.32118     2  3928.16059           Prob > F      =  0.0000
    Residual |  10022.5538   197  50.8759077           R-squared     =  0.4394
-------------+------------------------------           Adj R-squared =  0.4337
       Total |   17878.875   199   89.843593           Root MSE      =  7.1327

------------------------------------------------------------------------------
       write |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
      female |   5.486894   1.014261     5.41   0.000      3.48669    7.487098
        read |   .5658869   .0493849    11.46   0.000      .468496    .6632778
       _cons |   20.22837   2.713756     7.45   0.000     14.87663    25.58011
------------------------------------------------------------------------------
and then ask

gen _b[_cons] + _b[female]*1 + _b[read]*52   

display _b[_cons] + _b[female]*1 + _b[read]*52
55.141383
工作示例:为了说明我的观点,这里有一个小数据示例,其中包含一个分类变量(
pack
),一个连续变量(
price
),以及一个二分指标(
type
)。运行回归后,我想运行一个后估计命令(如
predict
或一个简单的
gen
),该命令可以生成预测值。为此,到目前为止,我发现的唯一Stata代码只能使用连续变量和二进制变量预测y,而不能使用分类变量。您是否知道有一种代码可以解决在不将
pack
转换为多个二进制变量的情况下包含
pack
的问题

clear
input  units price pack type
32 4 6 1
2 20 18 1
34 5 6 1
32 8 6 0
29 5 6 0
5 10 12 0
7 10 12 0
1 10 18 0

end

reg units price type i.pack
predict yhat
*OR
gen yhat=_b[_cons]+_b[_type]+....??pack??

您所说的“正确”值的含义尚不清楚
predict
使用当前数据中的任何值,并将其乘以相应的系数(假设您使用了因子变量表示法)

但是,
margins
有一个半文档化的
generate()
选项,可以在灵活选择的协变量值上进行单独预测。它很可能会给你你内心想要的一切

以下是使用您的数据的示例:

clear
input  units price pack type
32 4 6 1
2 20 18 1
34 5 6 1
32 8 6 0
29 5 6 0
5 10 12 0
7 10 12 0
1 10 18 0
end

reg units price type i.pack, coefl
predict double yhat1
margins, predict(xb) gen(yhat2) // match predict #1
margins, predict(xb) gen(yhat3) at((asobserved) price type pack) // match predict #2
gen double yhat4=_b[_cons] + _b[price]*price + _b[type]*type + _b[12.pack]*12.pack + _b[18.pack]*18.pack //match predict #3
margins, predict(xb) gen(yhat5) at(price = 5 type=1 pack=6) // choose some values
gen double yhat6=_b[_cons] + _b[price]*5 + _b[type]*1 + _b[12.pack]*0 + _b[18.pack]*0 // yhat5 by hand 
list yhat*, clean noobs
前四种方法的预测都是相同的;第五个和第六个变量将不同于前四个变量,并且都是相同的,因为我们将所有协变量固定在特定的值上:

. list yhat*, clean noobs

        yhat1      yhat21      yhat31       yhat4      yhat51       yhat6  
    32.773585   32.773585   32.773585   32.773585   32.764151   32.764151  
    2.4622642   2.4622642   2.4622642   2.4622642   32.764151   32.764151  
    32.764151   32.764151   32.764151   32.764151   32.764151   32.764151  
    30.716981   30.716981   30.716981   30.716981   32.764151   32.764151  
    30.745283   30.745283   30.745283   30.745283   32.764151   32.764151  
            6           6           6           6   32.764151   32.764151  
            6           6           6           6   32.764151   32.764151  
    .53773585   .53773585   .53773585   .53773585   32.764151   32.764151  

有关详细信息,请参见
帮助页边距生成
帮助未记录

请注意,您的
生成
语句不是合法代码。这是一个关于基础知识的广泛问题:
帮助评估
是一个起点。你好,尼克。我很难找到可以选择适当分类值的后评估命令。它只适用于假人和连续变量。有什么建议我可以去哪里找吗?对不起;我完全不明白。我不知道除了通过一组指标,你怎么能有一个分类预测。像你这样更广泛的讨论性问题在Statalist上更受欢迎,但基于数据和代码的精确示例在任何论坛上都更有可能得到好的答案。我不明白为什么您觉得
predict
在您的示例中不起作用。您似乎期望有一个术语来表示包含三个或更多类的分类预测器。但是没有。是的,谢谢,这大概就是我要找的。@Olga你可以在()选项中混合各种边距,还有很多我没有在这里讨论过的。Dimitry,我发现了一段额外的代码,可以与
边距一起使用,在这里你可以将特定变量设置为零,类似这样的
(x1=0 x2=0 x3=0)