¿Cómo crear una matriz de confusión después de mlogit?

I have a categorical variable n_produttore: A-B-C-D-E-F and the output of multinomial logit (mlogit).

How do I create the confusion matrix?

mlogit n_produttore UVAtevola NUTILIZZODIVOLTE EXPOSTFIORITURA DIMENSIONE DOSI


Iteration 0:   log likelihood = -898.93386  
Iteration 1:   log likelihood = -868.27679  
Iteration 2:   log likelihood = -864.38774  
Iteration 3:   log likelihood = -864.28614  
Iteration 4:   log likelihood = -864.26279  
Iteration 5:   log likelihood = -864.25805  
Iteration 6:   log likelihood = -864.25724  
Iteration 7:   log likelihood = -864.25705  
Iteration 8:   log likelihood = -864.25701  
Iteration 9:   log likelihood =   -864.257  

Multinomial logistic regression                   Number of obs   =        929
                                                  LR chi2(25)     =      69.35
                                                  Prob > chi2     =     0.0000
Log likelihood =   -864.257                       Pseudo R2       =     0.0386

----------------------------------------------------------------------------------
    n_produttore |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-----------------+----------------------------------------------------------------
ALTRO            |  (base outcome)
-----------------+----------------------------------------------------------------
A                |
       UVAtevola |  -.1579633   .3240817    -0.49   0.626    -.7931517    .4772251
NUTILIZZODIVOLTE |  -.2306291   .0957196    -2.41   0.016     -.418236   -.0430221
 EXPOSTFIORITURA |  -.1879822   .2277447    -0.83   0.409    -.6343536    .2583893
      DIMENSIONE |  -.0621528    .022512    -2.76   0.006    -.1062755     -.01803
            DOSI |   .0749472   .0469926     1.59   0.111    -.0171565     .167051
           _cons |  -.9914935   .2967274    -3.34   0.001    -1.573068   -.4099185
-----------------+----------------------------------------------------------------
B                |
       UVAtevola |  -1.125263   .5444485    -2.07   0.039    -2.192362   -.0581633
NUTILIZZODIVOLTE |  -.0667538   .0966905    -0.69   0.490    -.2562637    .1227562
 EXPOSTFIORITURA |   -.769514   .2891922    -2.66   0.008     -1.33632   -.2027077
      DIMENSIONE |  -.0293445    .022586    -1.30   0.194    -.0736122    .0149232
            DOSI |  -.0451004   .1109894    -0.41   0.684    -.2626356    .1724349
           _cons |  -1.361353   .3900545    -3.49   0.000    -2.125846   -.5968602
-----------------+----------------------------------------------------------------
C                |
       UVAtevola |  -1.232848   1.075072    -1.15   0.251     -3.33995    .8742545
NUTILIZZODIVOLTE |  -.1639186   .2256885    -0.73   0.468    -.6062599    .2784227
 EXPOSTFIORITURA |   -.154228   .5543342    -0.28   0.781    -1.240703    .9322469
      DIMENSIONE |  -.0993675   .0590232    -1.68   0.092    -.2150508    .0163159
            DOSI |   .0816812   .1273864     0.64   0.521    -.1679916    .3313541
           _cons |  -2.727106   .7170044    -3.80   0.000    -4.132409   -1.321803
-----------------+----------------------------------------------------------------
D                |
       UVAtevola |  -14.83818   1290.627    -0.01   0.991    -2544.421    2514.745
NUTILIZZODIVOLTE |  -.3792106   .4314916    -0.88   0.379    -1.224919    .4664973
 EXPOSTFIORITURA |  -.4976473   .8798813    -0.57   0.572    -2.222183    1.226888
      DIMENSIONE |  -.0976071   .0905061    -1.08   0.281    -.2749958    .0797817
            DOSI |  -.2036094   .4729157    -0.43   0.667    -1.130507    .7232883
           _cons |  -2.242187   1.425189    -1.57   0.116    -5.035506    .5511316
-----------------+----------------------------------------------------------------
E                |
       UVAtevola |   .7193533   .2948825     2.44   0.015     .1413942    1.297312
NUTILIZZODIVOLTE |  -.1058946   .0921645    -1.15   0.251    -.2865337    .0747446
 EXPOSTFIORITURA |  -.4057074   .2529228    -1.60   0.109     -.901427    .0900122
      DIMENSIONE |  -.0641196    .025192    -2.55   0.011     -.113495   -.0147442
            DOSI |   .0965401   .0441483     2.19   0.029      .010011    .1830692
           _cons |  -1.615742   .3101875    -5.21   0.000    -2.223698   -1.007786
----------------------------------------------------------------------------------



predict prob*
    egen pred_max = rowmax(prob*)
(23 missing values generated)

. 
. 
. 
. g pred_choice = .
(952 missing values generated)

. 
. forvalues i = 1/6 {
  2. 
.  replace pred_choice = `i' if (pred_max == prob`i')
  3. 
. }
(951 real changes made)
(23 real changes made)
(23 real changes made)
(23 real changes made)
(23 real changes made)
(24 real changes made)

. 
. 
. 
. local produttore_lab: value label n_produttore

. 
. label values pred_choice `produttore_lab'

. 
. tab pred_choice n_produttore

pred_choic |                           n_produttore
         e |     ALTRO          A          B          C          D          E |     Total
-----------+------------------------------------------------------------------+----------
     ALTRO |       666         95         67         14          6         80 |       928 
         E |        21          1          0          0          0          2 |        24 
-----------+------------------------------------------------------------------+----------
     Total |       687         96         67         14          6         82 |       952 

where: n_produttore = ALTRO A B C D E

UVAtevola = dummy 0 or 1

NUTILIZZODIVOLTE = 1...15

EXPOSTFIORITURA = dummy 0 or 1

DIMENSIONE = 1....50 kg

DOSI: 1....20

preguntado el 28 de mayo de 14 a las 14:05

1 Respuestas

Your code seems to be taken from an answer by Tzygmund McFarlane in Statalist.org. I reproduce the complete, working example below:

webuse sysdsn1, clear

mlogit insure age male nonwhite i.site

predict prob*
egen pred_max = rowmax(prob*)

g pred_choice = .
forv i=1/3 {
 replace pred_choice = `i' if (pred_max == prob`i')
}

local insure_lab: value label insure
label values pred_choice `insure_lab'
tab pred_choice insure

Like I said, it works. So unless you give more information on the problem you have at hand, people may not be able to help you. There may be an issue with your model specification, with your data structure, a combination, or something else. Your statement

... pero no funciona.

gives nothing for people to work with. Good practice is to post exacto input/output, including errors. Please read the complete Preguntando sección en https://stackoverflow.com/help.

contestado el 23 de mayo de 17 a las 12:05

sorry, model: mlogit n_produttore UVAtevola NUTILIZZODIVOLTE EXPOSTFIORITURA DIMENSIONE DOSI where: n_produttore = ALTRO A B C D E UVAtevola = dummy 0 or 1 NUTILIZZODIVOLTE = 1...15 EXPOSTFIORITURA = dummy 0 or 1 DIMENSIONE = 1....50 kg DOSI: 1....20 - elisa venturi

Elisa, that is still not complete input/output; in fact, you deleted what seemed to be important code from your original post. You still do not describe why the code doesn't work and it seems you don't care about investing time formulating your question. People here try to help other people, just for the love of it. But if you don't help others, help you, then the reasonable outcome is that you won't get help. - Roberto Ferrer

OK now I have understand - elisa venturi

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.