You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.6 KiB
Plaintext
54 lines
1.6 KiB
Plaintext
*! version 1.1.1 STB-35 sg65
|
|
program define iclassr
|
|
version 4.0
|
|
local varlist "req ex min(2) max(2)"
|
|
local if "opt"
|
|
local in "opt"
|
|
local weight "aweight"
|
|
local options "Center(string) Ems NOIsily"
|
|
parse "`*'"
|
|
parse "`varlist'", parse(" ")
|
|
local weight "[`weight'`exp']"
|
|
local wt : word 2 of `exp'
|
|
|
|
tempvar use
|
|
quietly {
|
|
mark `use' `if' `in'
|
|
markout `use' `varlist' `wt'
|
|
}
|
|
tempname gr df fm
|
|
if "`ems'" != "" {
|
|
preserve
|
|
qui keep if `use'
|
|
sort `2'
|
|
if "`wt'" == "" {
|
|
tempvar Wt
|
|
qui gen byte `Wt' = 1
|
|
local wt "`Wt'"
|
|
}
|
|
tempvar sw
|
|
qui by `2': gen double `sw' = sum(`wt')
|
|
qui summ `sw' if `2' < `2'[_n+1]
|
|
scalar `df' = _result(1) - 1
|
|
scalar `gr' = _result(1) * _result(3)
|
|
scalar `gr' = (`gr' - _result(3) - _result(4)*`df'/`gr')/`df'
|
|
capture `noisily' oneway `1' `2' `weight'
|
|
}
|
|
else {
|
|
capture `noisily' oneway `1' `2' `weight' if `use'
|
|
scalar `gr' = _result(1)/ (_result(3) + 1)
|
|
}
|
|
if _rc == 134 { error(134) }
|
|
scalar `df' = 1
|
|
if "`center'" == "mean" { scalar `df' = _result(5)/(_result(5)-2) }
|
|
else if "`center'" == "med" {
|
|
scalar `df' = invfprob(_result(3), _result(5), 0.5)
|
|
}
|
|
scalar `fm' = max(_result(6) - `df', 0)
|
|
global S_1 = `fm' / (`fm' + `df'* `gr')
|
|
global S_2 = `fm' / (`fm' + `df')
|
|
di _new in gr "Intra-`2' r =" in ye %7.4f $S_1 _new in gr /*
|
|
*/ "Estimated reliability of a `2' mean (n=" in ye %3.2f `gr' in gr /*
|
|
*/ ") =" in ye %7.4f $S_2
|
|
end
|