Announcement

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

  • Error in incoporating user-written program to power command

    Hello,
    I have written a simple program to calculate the power for a multilevel dataset. The program works. When I tried to incorporate this program to power command in Stata following these steps specified in this post. It always returns the error message "option power() not allowed". Appreciate advice on how to troubleshoot it.

    Here is the program that works.

    capture program drop simmixed
    program simmixed, rclass
    version 17
    // PARSE INPUT
    syntax, site_group_n(integer) ///
    opp_n(integer) ///
    [ alpha(real 0.05) ///
    intercept(real 67.57) ///
    u0i(real 24.59) ///
    eij(real 31.67) ]


    // COMPUTE POWER
    quietly {
    drop _all
    set obs `site_group_n'
    generate site_group = _n
    *night shift reduces the hours by around 10 except for Wednesday
    generate u_0i = rnormal(0,`u0i')
    expand `opp_n'
    generate night = rbinomial(1,6/14)
    generate treatment=rbinomial(1,0.5)
    generate e_ij = rnormal(0,`eij')

    gen total_hours_actual=`intercept'+5.49*treatment+nigh t*rnormal(-10,5)+ u_0i+e_ij

    reghdfe total_hours_actual i.treatment i.night,absorb(site_group) cluster(site_group)

    local p_value=tden(`site_group_n',e(b)[1,2]/ sqrt(e(V)[2,2]))*2
    local reject=`p_value'<`alpha'
    }
    // RETURN RESULTS
    return scalar reject = `reject'
    end

    * Try whether the program works.
    simulate reject=r(reject), reps(1000) seed(12345): simmixed, site_group_n(21) opp_n(53)
    summarize reject

    The following codes do not work and generate error message "option power() not allowed"

    capture program drop power_cmd_simmixed
    program power_cmd_simmixed, rclass
    version 17
    // PARSE INPUT
    syntax, site_group_n(integer) ///
    opp_n(integer) ///
    [alpha(real 0.05) ///
    intercept(real 67.57) ///
    u0i(real 24.59) ///
    eij(real 31.67) ///
    reps(integer 1000)]

    // COMPUTE POWER
    quietly {
    simulate reject=r(reject), reps(`reps'): ///
    simmixed, site_group_n(`site_group_n') opp_n(`opp_n') alpha(`alpha') intercept(`intercept') ///
    u0i(`u0i') eij(`eij')
    summarize reject
    }
    // RETURN RESULTS
    return scalar power = r(mean)
    return scalar site_group_n = `site_group_n'
    return scalar opp_n = `opp_n'
    return scalar alpha = `alpha'
    return scalar intercept = `intercept'
    return scalar u0i = `u0i'
    return scalar eij = `eij'
    end


    capture program drop power_cmd_simmixed_init
    program power_cmd_simmixed_init, sclass
    version 17
    sreturn clear
    // ADD COLUMNS TO THE OUTPUT TABLE
    sreturn local pss_colnames "site_group_n opp_n intercept u0i eij"
    // ALLOW NUMLISTS FOR ALL PARAMETERS
    sreturn local pss_numopts "site_group_n opp_n intercept u0i eij"
    end

    power simmixed, site_group_n(10) opp_n(50)
Working...
X