-
Notifications
You must be signed in to change notification settings - Fork 0
/
dcof.ado
136 lines (92 loc) · 2.99 KB
/
dcof.ado
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
* Código de Identificación de Variables Discriminatorias *
* creado por: Franco A. Mansilla Ibañez, Chile.
* website: www.francomansilla.com
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
program define dcof, rclass
version 17
args var_y var_xs lvl_conf sample sort
syntax varlist, var_y(string) lvl_conf(integer) sample(string) sort(integer)
quietly return local varname `varlist'
quietly local num : word count `varlist'
quietly ssc install matsort
quietly ssc install unique
* CON TODA LA MUESTRA *
if "`sample'" == "all_sample" {
quietly matrix A = J(`num', 5, .)
quietly matrix rowname A = `varlist'
quietly matrix colname A = "Media Grp A" "Media Grp B" t-Student pval_t pval_fisher
local f = 1
foreach i in `varlist' {
quietly unique `i'
quietly global unique = r(unique)
if $unique >= 5 {
quietly sdtest `i', by(`var_y') level(`lvl_conf')
quietly matrix A[`f',5] = round(r(p), 0.001)
if r(p) <= (1- (`lvl_conf')/100) {
quietly ttest `i', by(`var_y') level(`lvl_conf') unequal
quietly matrix A[`f',1] = r(mu_1)
quietly matrix A[`f',2] = r(mu_2)
quietly matrix A[`f',3] = abs(r(t))
quietly matrix A[`f',4] = round(r(p), 0.001)
}
else {
quietly ttest `i', by(`var_y') level(`lvl_conf')
quietly matrix A[`f',1] = r(mu_1)
quietly matrix A[`f',2] = r(mu_2)
quietly matrix A[`f',3] = abs(r(t))
quietly matrix A[`f',4] = round(r(p), 0.001)
}
quietly local ++f
}
}
}
* MUESTRA ESPECIFICA
if "`sample'" != "all_sample" {
quietly matrix A = J(`num', 5, .)
quietly matrix rowname A = `varlist'
quietly matrix colname A = "Media Grp A" "Media Grp B" t-Student pval_t pval_fisher
quietly local f = 1
foreach i in `varlist' {
quietly unique `i'
quietly global unique = r(unique)
if $unique >= 5 {
quietly sdtest `i' if `sample' == 1, by(`var_y') level(`lvl_conf')
quietly matrix A[`f',5] = round(r(p), 0.001)
if r(p) <= (1- (`lvl_conf')/100){
quietly ttest `i' if `sample' == 1, by(`var_y') level(`lvl_conf') unequal
quietly matrix A[`f',1] = r(mu_1)
quietly matrix A[`f',2] = r(mu_2)
quietly matrix A[`f',3] = abs(r(t))
quietly matrix A[`f',4] = round(r(p), 0.001)
}
else {
quietly ttest `i' if `sample' == 1, by(`var_y') level(`lvl_conf')
quietly matrix A[`f',1] = r(mu_1)
quietly matrix A[`f',2] = r(mu_2)
quietly matrix A[`f',3] = abs(r(t))
quietly matrix A[`f',4] = round(r(p), 0.001)
}
quietly local ++f
}
}
}
display " "
display "* ~~~~~~~~~~~~~~~~~~~~~ *"
display "* Información Utilizada *"
display "* ~~~~~~~~~~~~~~~~~~~~~ *"
display " "
display "~> Variable grupo: `var_y' "
display "~> Nivel de Confianza: " `lvl_conf' "%"
display "~> Variable(s): `varlist'"
display " "
display "~> Resultado:"
if `sort' == 1 {
quietly matsort A 3 "down"
matrix list A
}
if `sort' == 0 {
matrix list A
}
end
exit