Announcement

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

  • Create categorial variables and make dot graphs

    Hi there,

    I am having a tough time in translating the following table into a dot graph that includes the mean of the bid for the different reserve prices (r) (different symbols showing the mean bid for each reserve price) in each one of the different categories of private values (V), as shown in the following table. The reason is that each one of the different categories of private values shown in the upper horizontal axis are not mutually exclusive, but rather each one of the different ranges of private values includes observations of the previous ones and I cannot make a new categorial variable for each of the different categories of private values. An example of the data set is shown.
    Click image for larger version

Name:	A.PNG
Views:	1
Size:	31.6 KB
ID:	1656009




    Code:
    * Example generated by -dataex-. For more info, type help dataex
    clear
    input byte(reserveprice privatevalue bid)
    60   9  .
     0  89 80
    10  64 60
    30  66 60
     0  44 40
    30  46 40
    60  88 80
    60   1  .
    50  62 55
     0  30 25
    50  48  .
    30   5  .
     0  15 12
     0  78 68
    50  92 83
    10  92 80
    30  11  .
    10  34 25
    50  46  .
    30  53 45
    50  68 60
    50  60 55
     0  36 30
    10  44 35
    60  71 63
    10  26 24
     0  31 25
     0  37 32
     0  61 52
    10  64 50
     0  81 71
    10  41 35
    60  58  .
    50  46  .
    10  91 81
    30  75 67
    60  17  .
    50  58 55
    50  88 78
    60  38  .
    30  22  .
    30  85 75
     0  55 40
    10  94 80
    10  18 17
    50  68 60
     0  88 78
    50  24  .
     0  57 50
    50  43  .
    30  35 33
    60  91 83
    50  83 70
    50  18  .
    10  71 60
    60  37  .
    30  71 60
    50  79 70
    30  89 78
    60  98 90
     0  68 50
     0  22 21
    50  36  .
    10  85 73
     0  89 74
     0  74 65
    10  23 20
     0  67 60
    50  96 84
     0  97 85
    50  43  .
    50  37  .
    50  52 51
    10 100 90
    60  75 69
     0  19 15
    30  92 79
    50  59 56
    60  52  .
    30  73 60
     0  85 74
    60  55  .
    30  35 33
    10  59 55
    10  76 68
    60  16  .
    60  44  .
     0  92 76
    10  57 49
    30   6  .
    60  39  .
    30  88 75
     0  87 77
     0  74 69
    10  95 83
     0  67 60
    30  52 45
    10  79 70
     0  40 37
    30  19  .
    end
    label values reserveprice RP
    label def RP 0 "RP=0", modify
    label def RP 10 "RP=10", modify
    label def RP 30 "RP=30", modify
    label def RP 50 "RP=50", modify
    label def RP 60 "RP=60", modify
    Last edited by Koula Lysi; 24 Mar 2022, 05:02.

  • #2
    I found a solution to this problem by creating sepscatter plots for the different categories of private values (ssc install sepscatter) and then combining them. Any other suggestions would be really appreciated!

    Code:
    generate graphrange1=1 if privatevalue>=0 & reserveprice==0
    bysort reserveprice: egen valuerange1=mean(bid) if privatevalue>=0
    sepscatter valuerange1 graphrange1, seperate(reserveprice) ylabel(0(20)100, angle(oh)) ytitle(Average observed bids) xlabel(0 " " 1 "PV>=0" 2 " ", valuelabel notick)  xtitle("") name(graphrange1, replace)
    generate graphrange2=1 if privatevalue>=10 & (reserveprice==0 | reserveprice==10)
    bysort reserveprice: egen valuerange2=mean(bid) if privatevalue>=10
    sepscatter valuerange2 graphrange2, seperate(reserveprice) ylabel(0(20)100) yscale(off) xlabel(0 " " 1 "PV>=10" 2 " ", valuelabel notick) xtitle("") legend(off) name(graphrange2, replace)
    generate graphrange3=1 if privatevalue>=30 & (reserveprice==0 | reserveprice==10 | reserveprice==30)
    bysort reserveprice: egen valuerange3=mean(bid) if privatevalue>=30
    sepscatter valuerange3 graphrange3, seperate(reserveprice) ylabel(0(20)100) yscale(off) xlabel(0 " " 1 "PV>=30" 2 " ", valuelabel notick) xtitle("") legend(off) name(graphrange3, replace)
    generate graphrange4=1 if privatevalue>=50 & (reserveprice==0 | reserveprice==10 | reserveprice==30 | reserveprice==50)
    bysort reserveprice: egen valuerange4=mean(bid) if privatevalue>=50
    sepscatter valuerange4 graphrange4, seperate(reserveprice) ylabel(0(20)100) yscale(off) xlabel(0 " " 1 "PV>=50" 2 " ", valuelabel notick) xtitle("") legend(off) name(graphrange4, replace)
    generate graphrange5=1 if privatevalue>=60 & (reserveprice==0 | reserveprice==10 | reserveprice==30 | privatevalue==50 | privatevalue==60)
    bysort reserveprice: egen valuerange5=mean(bid) if privatevalue>=60
    sepscatter valuerange5 graphrange5, seperate(reserveprice) ylabel(0(20)100) yscale(off) xlabel(0 " " 1 "PV>=60" 2 " ", valuelabel notick) xtitle("") name(graphrange5, replace)
    graph combine graphrange1 graphrange2 graphrange3 graphrange4 graphrange5, imargin(vsmall) ycommon rows(1)
    Last edited by Koula Lysi; 24 Mar 2022, 15:29.

    Comment

    Working...
    X