Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • How to make summarize descriptive statistic with T-Value?

    Dear all,
    I am trying to make table like below. Somoene can help with adquated command to do it.

    Click image for larger version

Name:	table_witt t statistic.png
Views:	1
Size:	139.8 KB
ID:	1728101


    Best regards

  • #2

    Without an example dataset to work with, I assume the rows
    represent variables in your dataset, and the columns identify two
    (not-mutually exclusive) grouping variables. You tagged this post with
    panel data and Time Series, yet do not mention either. I
    will further assume the Test t values are from two-sample
    t test, such as ttest, by().

    The following uses collect features introduced in Stata 17.
    Code:
    * simulate example data
    clear all
    set seed 18
    set obs 1000
    gen g = runiformint(0,1)
    label define g 0 "Non-gleeful" 1 "Gleeful"
    label values g g
    gen h = runiformint(0,1)
    label define h 0 "Non-helpful" 1 "Helpful"
    label values h h
    drawnorm x1-x16
    replace x2 = x2 + 15
    replace x3 = x3 + 4
    replace x4 = x4 + 4
    replace x5 = x5 + 5
    replace x14 = x14 + 5
    replace x16 = x16 + 20
    label var x1 MRISK
    label var x2 ZS
    label var x3 PD
    label var x4 IND
    label var x5 MAS
    label var x6 UA
    label var x7 LTO
    label var x8 OWN1
    label var x9 OWN5
    label var x10 MONITOR
    label var x11 NATHET
    label var x12 GDP
    label var x13 MO
    label var x14 MB
    label var x15 LEV
    label var x16 LNA
    
    * collect results
    foreach x of varlist x* {
        ttest `x', by(g)
        collect get mean=(r(mu_1)), tags(var[`x'] g[0])
        collect get mean=(r(mu_2)), tags(var[`x'] g[1])
        collect get t=(r(t)) p=(r(p)), tags(var[`x'] g[_hide])
        ttest `x', by(h)
        collect get mean=(r(mu_1)), tags(var[`x'] h[0])
        collect get mean=(r(mu_2)), tags(var[`x'] h[1])
        collect get t=(r(t)) p=(r(p)), tags(var[`x'] h[_hide])
    }
    * define the rules for significance labels
    collect stars p .1 "*" .01 "**" .001 "***" , attach(t) dimension
    
    collect layout (var) (g#result#stars h#result#stars)
    
    * select results to show in table
    collect style autolevels result mean t, clear
    * change display order of grouping variables
    collect style autolevels g 1 0 _hide
    collect style autolevels h 1 0 _hide
    * label the test statistic
    collect label levels result t "Test t", modify
    * hide column labels for the mean
    collect style header result[mean], level(hide)
    * left align the stars labels
    collect style cell stars[label], halign(left)
    * other misc style choices
    collect style cell result[mean t], nformat(%9.3f)
    collect style cell border_block[corner row-header], ///
        border(right, pattern(none))
    collect style column, dups(center)
    collect preview
    Here is the final table.
    Code:
    . collect preview
    
    -----------------------------------------------------------------
            Gleeful Non-gleeful  Test t  Helpful Non-helpful  Test t
    -----------------------------------------------------------------
    MRISK    -0.043       0.040  1.329     0.004      -0.008 -0.184
    ZS       15.021      14.950 -1.154    14.983      14.989  0.111
    PD        4.019       3.942 -1.196     4.041       3.924 -1.828 *
    IND       4.028       4.020 -0.131     4.036       4.013 -0.390
    MAS       4.974       4.943 -0.499     4.995       4.924 -1.127
    UA        0.019       0.007 -0.201     0.013       0.013 -0.013
    LTO       0.005      -0.068 -1.137    -0.074       0.010  1.300
    OWN1     -0.136      -0.030  1.683 *  -0.116      -0.052  1.020
    OWN5     -0.004      -0.010 -0.089    -0.011      -0.003  0.133
    MONITOR   0.008      -0.089 -1.516    -0.005      -0.073 -1.056
    NATHET   -0.021       0.003  0.386    -0.037       0.017  0.870
    GDP       0.097       0.076 -0.334     0.123       0.051 -1.151
    MO       -0.009      -0.012 -0.050    -0.036       0.013  0.766
    MB        5.030       4.907 -1.956 *   5.015       4.927 -1.392
    LEV      -0.069       0.026  1.480    -0.066       0.020  1.335
    LNA      20.004      20.070  1.056    20.007      20.065  0.927
    -----------------------------------------------------------------
    You can publish this table to MS Word, MS Excel, PDF, HTML, or LaTeX via
    collect export.

    Comment


    • #3
      Thank, you so much. I will try . Best regards
      Last edited by Jose Tavares; 25 Sep 2023, 09:34.

      Comment


      • #4
        Dear i just following you advise,
        Thank you so much
        label define CATH 0 "Non-Chatolic" 1 "Chatolic"
        label values CATH CATH
        label define PROT 0 "Non-PROT" 1 "PROTEST"
        label values PROT PROT
        drawnorm x1-x18
        label var x1 MCAP
        label var x2 INDEX
        label var x3 PD
        label var x4 IND
        label var x5 MAS
        label var x6 UAI
        label var x7 LTO
        label var x8 CATH
        label var x9 ISLA
        label var x10 PROT
        label var x11 EAST
        label var x12 MO
        label var x13 Value
        label var x14 SAVING
        label var x15 PRIVAT
        label var x16 FDI
        label var x17 LDG
        label var x18 PC1
        * collect results
        foreach x of varlist x* {
        ttest `x', by(CATH)
        collect get mean=(r(mu_1)), tags(var[`x'] CATH[0])
        collect get mean=(r(mu_2)), tags(var[`x'] CATH[1])
        collect get t=(r(t)) p=(r(p)), tags(var[`x'] CATH[_hide])
        ttest `x', by(PROT)
        collect get mean=(r(mu_1)), tags(var[`x'] PROT[0])
        collect get mean=(r(mu_2)), tags(var[`x'] PROT[1])
        collect get t=(r(t)) p=(r(p)), tags(var[`x'] PROT[_hide])
        }
        * define the rules for significance labels
        collect stars p .1 "*" .01 "**" .001 "***" , attach(t) dimension

        collect layout (var) (CATH#result#stars PROT#result#stars)

        * select results to show in table
        collect style autolevels result mean t, clear
        * change display order of grouping variables
        collect style autolevels CATH 1 0 _hide
        collect style autolevels PROT 1 0 _hide
        * label the test statistic
        collect label levels result t "Test t", modify
        * hide column labels for the mean
        collect style header result[mean], level(hide)
        * left align the stars labels
        collect style cell stars[label], halign(left)
        * other misc style choices
        collect style cell result[mean t], nformat(%9.3f)
        collect style cell border_block[corner row-header], ///
        border(right, pattern(none))
        collect style column, dups(center)
        collect preview

        Click image for larger version

Name:	panelBstataforum.jpg
Views:	1
Size:	69.3 KB
ID:	1728219


        is possible to use asdocx to export? how to use command collect export?

        Best regard

        Comment

        Working...
        X