Announcement

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

  • Mean comparative categorical variable

    Hello everyone,

    I am performing a mean value comparison using linear simple regression. I would like to do the same for another variable "income". I would like to use income as a discretized categorical variable in three groups, "lower", "middle" and "upper" income groups. Now I don't know exactly how to do this. Should I use dummies for the variable or rather an ANCOVA analysis.

    Here is my explanation for my first variable (binary)





    local j = 1 // running variable for column count
    foreach D of varlist Übergewichtig {
    * create spreadsheet
    putexcel set "mean_comparisons.xlsx", modify sheet("`D'", replace)

    putexcel B1 = "`D'"
    putexcel B2 = "No"
    putexcel C2= "Yes"

    putexcel B3= "Est."
    putexcel C3= "Est."
    putexcel D3= "SE"
    putexcel E3= "p-Value"

    local z = 3 // running variable for row index

    * t-tests
    * binary and continuous variables
    local q = 0
    foreach C of local continuous_binary_vars {

    local q = `q' + 1
    local z = `z' + 1

    local vlab: word `q' of `continuous_binary_labels'
    quietly: putexcel A`z' = "`vlab'"

    di "`z': `vlab'"

    quietly: regress `C' `D', cluster(idpers)

    local beta0 = _b[_cons]
    quietly: putexcel B`z' = `beta0', nformat(number_d2)

    local beta1 = _b[`D']
    quietly: putexcel C`z' = `beta1', nformat(number_d2)

    local se = _se[`D']
    quietly: putexcel D`z' = `se'

    local pval = 2*normal(-abs(_b[`D']/_se[`D']))
    quietly: putexcel E`z' = `pval', nformat(number_d2)
    }


    * categorical variables
    local q = 0
    foreach v of local categorical_vars {

    local q = `q' + 1
    local vlab: word `q' of `categorical_labels'

    local z = `z' + 1
    quietly: putexcel A`z' = "`vlab'"
    di "`z': `vlab'"

    quietly: tab `v', gen(`v'__) // create one dummy for each level of categorical variable

    foreach dummy of varlist `v'__* {
    quietly: replace `dummy' = . if missing(`v')

    local z = `z' + 1

    quietly: regress `dummy' `D', cluster(idpers)
    local beta0 = _b[_cons]
    quietly: putexcel B`z' = `beta0', nformat(number_d2)

    local beta1 = _b[`D']
    quietly: putexcel C`z' = `beta1', nformat(number_d2)

    local se = _se[`D']
    quietly: putexcel D`z' = `se', nformat(number_d2)

    local pval = 2*normal(-abs(_b[`D']/_se[`D']))
    quietly: putexcel E`z' = `pval', nformat(number_d2)

    * use value label as variable description
    local lbl: variable label `dummy'
    local lbl: subinstr local lbl "`v'==" ""
    local lbl = strproper("`lbl'")
    quietly: putexcel A`z' = "`lbl'"
    di "`z': `lbl'"
    }

    drop `v'__*

    }

    putexcel close
    }

    Thanks for your help.
Working...
X