File restructure #2
This commit is contained in:
.gitignoretélécharger les mises à jour SSC.do
Modules/ado
personal
_
a
b
bidonc
calcscore.adocalcul.adocfa.adocheckfor2.adocheckfor2.hlpcheckvars.adocheckvars.hlpclv.adoclv.sthlpclv212.adoclv214.adoclv215.adoclv216.adoclv27.adoclv29.adocompart.adocompart2.adoconc.adoconvdiv.ado
d
dege.adodelta.adodescitems.adodescscale.adodescscalev1.1.adodescscalev1.adodetect.adodetect.hlpdetect2.adodropmissing.ado
e
files
Pop8204Dep.dtacantons.dtacommpct.dtacommunes.dtacommze.dtadccentre8002.dtadcfrance8002.dtanais8003.dtarpf829099.dtarph829099.dtarphf829099.dta
g
gammasym.adogammasym.hlpgausshermite.adogausshermite.hlpgausshermite1.adogausshermite2.adogausshermite3.adogeekel2d.adogeekel2d.hlpgeekel2d4.adogengroup.adogengroup.hlpgengutt.adogenscore.adogenscore.hlpguttmax.adoguttmax1.ado
grec
h
i
imputeitems - Copie.adoimputeitems v2.4.adoimputeitems.adoimputeitems.hlpimputeitems.txtimputeitems2.adoimputeitems_1.adoimputemok.adoimputemok.hlpimputerasch.adoimputerasch.hlpirtpoly.adoisvar.ado
k
l
loevH7.adoloevH72.adoloevH73.adoloevH73.hlploevHv1.hlploevh - Copie au 17 juin 2017.adoloevh v8.2.adoloevh.adoloevh.hlploevh8-1-3.adoloevh8.adoloevh81.adoloevh812.ziploevh813.adoloevh82.adolstrfun.ado
m
Multirsoort_indicefit.adomatrixlisthtml.adomdreplace.adomi_twoway.adomi_twoway.hlpmmsrm.adommsrm.hlpmmsrm2.adomsp.adomsp.hlpmsp66.adomsp66.hlpmsp82.ado
n
p
pcm - Copie.adopcm 3.4.adopcm 4.0.adopcm 4.1.adopcm 4.2 sauv le 8nov2019.adopcm 4.2.adopcm 5.1.adopcm 5.2.adopcm 5.3.adopcm 5.4.adopcm.adopcm.sthlppcm.zippcm21.adopcm22.adopcm23.adopcm3.2.adopcm3.3.adopcm3.adopcm44.adopcm5.adopcmodel.hlppcmodel.sthlppcmodel22.adopcmodel_v.adopcmodelplus.adopcmold.adopcmtest.adopcmtest.hlppcmtest.sthlppredraschwlm.ado
qualmosta
r
old
raschfit2.adoraschfit31.adoraschpower - Copie version SIM.adoraschpower1.5.adoraschpower1.adoraschpowerpcm.adoraschpowers.hlpraschtest2.adoraschtest82.adoraschtest83.adoraschtestv7732.adoraschtestv7761.adoraschtestv7762.adoraschtestv78 avant COVARIABLES.adoraschtestv782.adoraschtestv785.adoraschtestv7jf.adorsoort.dorsoort1 (2).adorsoort1.ado
raschfit.adoraschfit.hlpraschlong.adoraschlongitudinal2.adoraschpce.adoraschpower.adoraschpower.hlpraschpower33.adoraschpower4.adoraschpower5.adoraschpower51.adoraschpower511.adoraschpower52.adoraschpower53.adoraschpower54.adoraschpower55.adoraschpower56.adoraschpower58.adoraschpower59.adoraschres.adoraschres.hlpraschtest v8.10.1.adoraschtest.adoraschtest.hlpraschtestv7.adoraschtestv7.hlpraschtestv787.adoraschtestv7v8.10.1.adoraschtestv7v8.10.adoraschtestv7v88.adoraschtestv8.10.adoraschtestv86.adorel.adorepet.adorosali.adorosali.sthlprosali22.adorosali22.sthlprosali23.adorsbynpirt.adorsoort.adorsoort.hlprsoort11.ziprsoort12.adorsoort13.adorsoortBP.ados
old
sascfa.adosenspescore.adosf36fr v1.6.adosf36fr v1.7.adosf36fr.adosf36fr.hlpsf36fr.zipsf36fr1.4.adosf36fr1.5.adosf36frv13.adosimirt - Copie.adosimirt v4.1.adosimirt v4.2.adosimirt v4.3.adosimirt v4.4.adosimirt.adosimirt.hlpsimirt.zipt
tcm.adotestclv.adotodate.adotorumm.adotosas.adotraces v4.adotraces v5 avec items numeric ne marche pas - Copie.adotraces.adotraces.hlptraces3.adotraces32.adotraces33.adotri.adotrouve.ado
v
valid.adovalid.dlgvalid.hlpvalidscale.adovalidscale.ado (old)validscale.dlgvalidscale.hlpvalidscale.sthlpvalidscaleXX.ado
w
zip
backrasch2.zipclv214.zipdetect31.zipgammasym.zipgammasym22.zipgausshermite1.zipgeekel2d43.zipgengroup12.ziphcavar32.zipimputeitems.zipimputeitems24.zipimputemok21.zipimputerasch2.ziploevH.ziploevh8.zipmmsrm4.zipmohand.zipmsp.zipmsp81.zipnpirt.zipraschfit4.zipraschpower1.4.zipraschpower1.5.zipraschpower1.zipraschpower2.zipraschpower32.zipraschtest.zipraschtest8.zipraschtest86.zipraschtest87.zipraschtestv7.zipsf36fr13.zipsimirt.zipsimirt34.zipsimirt35.ziptraces33.zip
plus
_
_eststo.ado_eststo.hlp_get_mlogit_bv.ado_get_mlogit_bvecv.ado_peabbv.ado_pebase.ado_pebase.hlp_pecats.ado_pecats.hlp_peciboot.ado_peciboot.hlp_pecidelta.ado_pecidelta.hlp_peciml.ado_pecmdcheck.ado_pecollect.ado_pecollect.hlp_pedum.ado_pedum.hlp_peife.ado_peife.hlp_pemarg.ado_pemarg.hlp_penocon.ado_penocon.hlp_pepred.ado_pepred.hlp_perhs.ado_perhs.hlp_pesum.ado_pesum.hlp_petrap.ado_petrap.hlp_peunvec.ado_peunvec.hlp_pexstring.ado
a
b
bagroup.adobagroup.hlpbamat.adobamat.hlpbaplot.adobaplot.hlpbatplot.adobatplot.hlpbinolist.adobinolist.hlpblandaltman.adobollenstine.adobollenstine.sthlpbothlist.adobothlist.hlpbrant.adobrant.hlp
backup.trkc
caplog.adocaplog.hlpcase2alt.adocase2alt.hlpcfa1.adocfa1.hlpcfa1_lf.adocheckfor2.adocheckfor2.hlpchoplist.adochoplist.hlpcmdchk.adocollist.adocollist.hlpconcord.adoconcord.dlgconcord.hlpconfa.adoconfa.mataconfa.sthlpconfa_estat.adoconfa_estat.sthlpconfa_lf.adoconfa_lfm.adoconfa_p.adoconfirmdir.adoconfirmdir.hlpconvlist.adoconvlist.hlpcountfit.adocountfit.hlpcseplist.adocseplist.hlpcvarlist.adocvarlist.hlp
d
dellist.adodellist.hlpdelta.adodelta.hlpdifflist.adodifflist.hlpdiscrim2.adodiscrim2.hlpdropvars.adodropvars.hlp
e
elapse.adoelapse.hlpeq_g.hlpeqlist.adoeqlist.hlpespoisson.adoespoisson.hlpespoisson_ll.adoespoisson_p.adoestadd.adoestadd.hlpestout.adoestout.hlpestpost.adoestpost.hlpeststo.adoeststo.hlpesttab.adoesttab.hlpexspoisson.adoexspoisson_ll.adoexspoisson_p.ado
f
g
galbr.adogalbr.dlggalbr.hlpghquad.adoghquadm.adoghquadm.hlpgllam_ll.adogllamm.adogllamm.hlpgllapred.adogllapred.hlpgllarob.adogllas_yu.adogllasim.adogllasim.hlp
h
i
i2ci.adoicc23.adoicc23.hlpiccconf.adoiccconf.hlpice.adoice.hlpiclassr.adoiclassr.hlpiclassr2.adoiclassr2.hlpimputeitems.adoimputeitems.hlpinslist.adoinslist.hlpisvar.adoisvar.hlp
j
l
l1way.adol1way.hlplabbe.adolabbe.dlglabbe.hlplclist.adolclist.hlplconfa.mlibleastlikely.adoleastlikely.hlplistblck.adolistblck.hlplistcoef.adolistcoef.hlplistutil.hlplog2html.adolog2html.hlplog2html7.adolog2html7.hlplogout.adologout.hlp
m
maplist.adomaplist.hlpmeta.dlgmeta_dialog.hlpmetabias.adometabias.dlgmetabias.hlpmetacum.dlgmetafunnel.adometafunnel.dlgmetafunnel.hlpmetainf.adometainf.dlgmetainf.hlpmetan.adometan.dlgmetan.hlpmetan7.adometan7.dlgmetan7.hlpmetan_examples.adometaninf.adometaninf.dlgmetaninf.hlpmetannt.adometannt.dlgmetannt.hlpmetap.dlgmetareg.adometareg.dlgmetareg.hlpmetareg_ll.adometareg_p.adometareg_pm.adometatrim.dlgmhplot.adomicombine.adomicombine.hlpmijoin.adomijoin.hlpmisplit.adomisplit.hlpmisschk.adomisschk.sthlpmlogplot.adomlogplot.hlpmlogtest.adomlogtest.sthlpmlogview.adomlogview.hlpmnthlist.adomnthlist.hlpmvtab1.adomvtab1.hlp
n
nct.adonct.hlpnct2.adonct2.hlpnct2inv.adonct2inv.hlpnctinv.adonctinv.hlpnctn.adonctn.hlpnctncp.adonctncp.hlpnctprob.adonctprob.hlpnicenum.adonmlab.adonmlab.hlp
o
p
polych_ll.adopolychoric.adopolychoric.hlppolychoric.zippolychoricpca.adopolychoricpca.hlppolychoricpca.zippolyser_ll.adoposlist.adoposlist.hlppostlist.adopostlist.hlppraccum.adopraccum.hlpprchange.adoprchange.hlpprcounts.adoprcounts.hlpprdc.adoprdc.hlpprelist.adoprelist.hlpprgen.adoprgen.hlpprodlist.adoprodlist.hlpprtab.adoprtab.hlpprvalue.adoprvalue.hlpprwhich.ado
r
remcor.adoreop_ll.adoreopc_ll.adoreoprob.adoreoprob.hlpreplist.adoreplist.hlprevlist.adorevlist.hlprfpr_ll1.adorfprobit.adorfprobit.hlprotlist.adorotlist.hlp
s
sasexe.adosaswrapper.adosaswrapper.hlpsavasas.adosavasas.hlpsavastata.sassdpair.adosdpair.hlpseeout.adoseeout.hlpsellist.adosellist.hlpseqlist.adoseqlist.hlpshellout.adoshellout.hlpshortdir.adoshortdir.hlpsjlatex.adosjlatex.hlpsjlog.adosjlog.hlpsjlog_7.adosortlist.adosortlist.hlpspex.adospex.hlpspost.hlpspost_footer.ihlpspostupdate.adosublist.adosublist.hlpsumlist.adosumlist.hlp
stata.trkt
takelist.adotakelist.hlptmpdir.adotmpdir.hlptorumm.adotorumm.hlptraces.adotraces.hlptraj.adotraj.hlptraj.plugintrajplot.adotrajplot.hlptrnclist.adotrnclist.hlp
u
v
w
x
269
Modules/ado/plus/b/batplot.ado
Normal file
269
Modules/ado/plus/b/batplot.ado
Normal file
@ -0,0 +1,269 @@
|
||||
*! Date : 19 May 2009
|
||||
*! Version : 1.12
|
||||
*! Authors : Adrian Mander
|
||||
*! Email : adrian.mander@mrc-bsu.cam.ac.uk
|
||||
*! Description : Bland-Altman plots with trend adjustment
|
||||
|
||||
/*
|
||||
17/5/06 v1.3 add-in the middle line
|
||||
6/10/06 v1.4 Handle multiple data points at the same point by using frequency option
|
||||
Also add Scatter option just to add options to the scatter part of the plot
|
||||
2/9/07 v1.5 Changed version from 8 to 9.2
|
||||
11/12/07 v1.6 Extended the shaded area
|
||||
14/12/07 v1.7 Add limits of agreement into the info option
|
||||
11/2/08 v1.8 BUGs fixed and extended the shading to the xlimits
|
||||
17/4/08 v1.9 BUG fix.. the info limits were the wrong way round!
|
||||
9/5/08 v1.10 Allowing shading to extend beyond data to any limit you like
|
||||
11/5/08 v1.11 Added the range to be displayed for the averages
|
||||
19/5/2009 v1.12 Changed email address
|
||||
11/6/12 v1.13 Added extra option for titles and number of decimal places in display
|
||||
*/
|
||||
|
||||
prog def batplot, rclass
|
||||
version 9.2
|
||||
syntax varlist (min=2 max=2) [if] [in] [,NOtrend INFO VALabel(varname) MOPTIONS(string asis) XLABel(numlist) SHADING(numlist min=2 max=2) SCatter(string asis) NOGraph DP(int 2) *]
|
||||
local gopt "`options'"
|
||||
|
||||
if "`moptions'"~="" local mopt `"moptions(`moptions')"'
|
||||
|
||||
preserve
|
||||
tempvar touse
|
||||
mark `touse' `if' `in'
|
||||
markout `touse' `m1' `m2'
|
||||
qui keep if `touse'
|
||||
|
||||
if "`xlabel'"~="" {
|
||||
local glab `"xlabel(`xlabel')"'
|
||||
local i 0
|
||||
foreach xv of local xlabel {
|
||||
if `i++'==0 local sxmin "`xv'"
|
||||
local sxmax "`xv'"
|
||||
}
|
||||
local shade "shade(`sxmin' `sxmax')"
|
||||
}
|
||||
|
||||
/* To stop the shading going the whole length of the x-axis */
|
||||
if "`shading'"~="" {
|
||||
local i 0
|
||||
foreach s of local shading {
|
||||
if `i++'==0 local smin "`s'"
|
||||
else local smax "`s'"
|
||||
}
|
||||
if `smin'<`smax' local shade "shade(`smin' `smax')"
|
||||
else local shade "shade(`smax' `smin')"
|
||||
}
|
||||
|
||||
|
||||
/* NOW do the trend version */
|
||||
|
||||
if "`valabel'"~="" local add "val(`valabel')"
|
||||
|
||||
_calctrend `varlist', `gopt' `notrend' `info' `add' `mopt' sc(`scatter') `glab' `shade' `nograph' dp(`dp')
|
||||
|
||||
|
||||
return local mean = "`r(mean)'"
|
||||
return local b0 = "`r(b0)'"
|
||||
return local b1 = "`r(b1)'"
|
||||
return local c0 = "`r(c0)'"
|
||||
return local c1 = "`r(c1)'"
|
||||
return local eqn = "`r(eqn)'"
|
||||
return local upper = "`r(upper)'"
|
||||
return local lower = "`r(lower)'"
|
||||
|
||||
restore
|
||||
end
|
||||
|
||||
|
||||
/* calculate trend and do a BA plot with trend */
|
||||
|
||||
prog def _calctrend,rclass
|
||||
syntax [varlist] [,NOTREND INFO VALabel(varname) MOPTIONS(string asis) SCatter(string asis) shade(numlist) NOGraph DP(int 2) *]
|
||||
local xopt "`options'"
|
||||
|
||||
if "`shade'"~="" {
|
||||
local i 0
|
||||
foreach s of local shade {
|
||||
if `i++'==0 local a "`s'"
|
||||
local b "`s'"
|
||||
}
|
||||
local sxmin = `a'
|
||||
local sxmax = `b'
|
||||
}
|
||||
|
||||
local i 1
|
||||
foreach var of varlist `varlist' {
|
||||
local v`i++' "`var'"
|
||||
}
|
||||
|
||||
tempvar av diff
|
||||
|
||||
qui gen `av' = (`v1' + `v2')/2
|
||||
qui gen `diff' = `v1' - `v2'
|
||||
local ytit "Difference (`v1'-`v2')"
|
||||
local xtit "Average of `v1' and `v2'"
|
||||
|
||||
lab var `diff' "Diff"
|
||||
lab var `av' "Mean"
|
||||
|
||||
if "`notrend'"~="" {
|
||||
qui summ `diff'
|
||||
local xbar = `r(mean)'
|
||||
local sd = `r(Var)'^.5
|
||||
local n = `r(N)'
|
||||
local se = `sd'/`n'^.5
|
||||
local t = invttail(`n'-1, .95)
|
||||
local lrr = `xbar' - invnorm(0.975)*`sd' /* 95% lower limit of agreement */
|
||||
local urr = `xbar' + invnorm(0.975)*`sd' /* 95% upper limit of agreement */
|
||||
local mrr = `xbar' /* 95% mean agreement */
|
||||
|
||||
di "{text}Mean difference = {res}`mrr'"
|
||||
di "{text}Limits of agreement = ({res}`lrr'{text},{res}`urr'{text})"
|
||||
|
||||
local min = `r(min)'
|
||||
local max = `r(max)'
|
||||
local lcb = `xbar' - `t'*`se'
|
||||
local ucb = `xbar' + `t'*`se'
|
||||
qui summ `av'
|
||||
local xmin = `r(min)'
|
||||
local xmax = `r(max)'
|
||||
local a : di %5.3f `xmin'
|
||||
local b : di %5.3f `xmax'
|
||||
local range = "Averages lie between `a' and `b'"
|
||||
di "{text}Averages lie between {res} `a' {text}and {res}`b'"
|
||||
qui corr `av' `diff'
|
||||
local r = `r(rho)'
|
||||
local n = `r(N)'
|
||||
local sig = ttail(`n'-2, `r'*((`n'-2)/(1-`r'^2))^.5)
|
||||
|
||||
tempvar uy ly my
|
||||
|
||||
/* The bit to extend the shade */
|
||||
|
||||
local obs =`c(N)'+2
|
||||
qui set obs `obs'
|
||||
if "`sxmin'"~="" qui replace `av'=`sxmin' in `obs--'
|
||||
if "`sxmax'"~="" qui replace `av'=`sxmax' in `obs'
|
||||
|
||||
qui gen `uy' = `urr'
|
||||
qui gen `ly' = `lrr'
|
||||
qui gen `my' = `mrr'
|
||||
|
||||
sort `av'
|
||||
|
||||
if "`info'"~="" {
|
||||
local te1:di %6.3f `mrr'
|
||||
local te2:di %6.3f `lrr'
|
||||
local te3:di %6.3f `urr'
|
||||
|
||||
qui count if (`diff'>`urr' | `diff'<`lrr' ) & `diff'~=.
|
||||
local nout = `r(N)'
|
||||
qui count if `diff'~=.
|
||||
local n = `r(N)'
|
||||
local pctout : di %6.2f `nout'/`n'*100
|
||||
local xopt `"`xopt' subtitle("`nout'/`n' = `pctout'% outside the limits of agreement" "Mean difference `te1'" "95% limits of agreement (`te2',`te3')" "`range'") "'
|
||||
}
|
||||
if "`valabel'"~="" {
|
||||
tempvar label
|
||||
qui gen `label' = ""
|
||||
cap confirm string variable `valabel'
|
||||
if _rc~=0 qui replace `label' = string(`valabel') if `diff'>`urr' | `diff'<`lrr'
|
||||
else qui replace `label' = `valabel' if `diff'>`urr' | `diff'<`lrr'
|
||||
local scatteropt "mlabel(`label') note(Points outside limits labelled by `valabel')"
|
||||
}
|
||||
|
||||
tempvar freq
|
||||
qui bysort `diff' `av':gen `freq'=_N
|
||||
local fopt "[fw=`freq']"
|
||||
if index("`scatter'","jitter")~=0 local fopt ""
|
||||
|
||||
if "`nograph'"=="" twoway (rarea `uy' `ly' `av', bc(gs13) sort) (scatter `diff' `av' `fopt', m(o) `scatteropt' `scatter' `moptions' ) (line `my' `av',lp(dash) sort ) , ////
|
||||
legend(off) ytitle(`ytit') xtitle(`xtit') xlabel(`xmin' `xmax') `xopt'
|
||||
|
||||
return local lower = `lrr'
|
||||
return local upper = `urr'
|
||||
return local mean = `mrr'
|
||||
}
|
||||
|
||||
else {
|
||||
qui reg `diff' `av'
|
||||
local b1 = _b[`av']
|
||||
local b0 = _b[_cons]
|
||||
local sd = `e(rmse)'
|
||||
qui predict resid , resid
|
||||
qui gen absresid = abs(resid)
|
||||
|
||||
/* Analysis of the residuals */
|
||||
|
||||
qui reg absresid `av'
|
||||
local c0 = _b[_cons]
|
||||
local c1=_b[`av']
|
||||
|
||||
qui su `diff'
|
||||
local max = `r(max)'
|
||||
local min = `r(min)'
|
||||
qui su `av'
|
||||
local xmax = r(max)
|
||||
local xmin = r(min)
|
||||
|
||||
local max: di %5.3f `xmax'
|
||||
local min: di %5.3f `xmin'
|
||||
|
||||
tempvar y uy ly x
|
||||
|
||||
/* The bit to extend the shade */
|
||||
|
||||
local obs =`c(N)'+2
|
||||
qui set obs `obs'
|
||||
if "`sxmin'"~="" qui replace `av'=`sxmin' in `obs--'
|
||||
if "`sxmax'"~="" qui replace `av'=`sxmax' in `obs'
|
||||
|
||||
sort `av'
|
||||
qui gen `y' = `b0'+`b1'*`av'
|
||||
qui gen `uy' = `b0'+`b1'*`av' + 2.46*(`c0'+`c1'*`av')
|
||||
qui gen `ly' = `b0'+`b1'*`av' - 2.46*(`c0'+`c1'*`av')
|
||||
|
||||
if "`info'"~="" {
|
||||
qui count if (`diff'>`uy' | `diff'<`ly') & `diff'~=.
|
||||
local nout = `r(N)'
|
||||
qui count if `diff'~=.
|
||||
local n = `r(N)'
|
||||
local mdp = `dp'+3
|
||||
local mdp1 = `dp'+4
|
||||
|
||||
local pctout : di %`mdp1'.`dp'f `nout'/`n'*100
|
||||
local te0 : di %`mdp'.`dp'f `b0'
|
||||
local te1 : di %`mdp'.`dp'f `b1'
|
||||
local te2 : di %`mdp'.`dp'f `c0'
|
||||
local te3 : di %`mdp'.`dp'f `c1'
|
||||
local xopt `"`xopt' subtitle("`nout'/`n' = `pctout'% outside the limits of agreement" "Mean Diff = `te0'+ `te1'*Average " "Limits +/- 2.46*(`te2' + `te3'*Average) ") "'
|
||||
}
|
||||
if "`valabel'"~="" {
|
||||
tempvar label
|
||||
qui gen `label' = ""
|
||||
cap confirm string variable `valabel'
|
||||
if _rc~=0 qui replace `label' = string(`valabel') if `diff'>`uy' | `diff'<`ly'
|
||||
else qui replace `label' = `valabel' if `diff'>`uy' | `diff'<`ly'
|
||||
local scatteropt "mlabel(`label') note(Points outside limits labelled by `valabel')"
|
||||
}
|
||||
|
||||
tempvar freq
|
||||
qui bysort `diff' `av':gen `freq'=_N
|
||||
local fopt "[fw=`freq']"
|
||||
if index("`scatter'","jitter")~=0 local fopt ""
|
||||
|
||||
if "`nograph'"=="" {
|
||||
twoway (rarea `uy' `ly' `av', bc(gs13) sort)(scatter `diff' `av' `fopt', `scatteropt' `scatter') /*
|
||||
*/(line `y' `av', lp(dash) sort) , legend(off) ytitle(`ytit') xtitle(`xtit') xlabel(`xmin' `xmax') `xopt'
|
||||
}
|
||||
|
||||
return local b0 = `b0'
|
||||
return local b1 = `b1'
|
||||
return local c0 = `c0'
|
||||
return local c1 = `c1'
|
||||
return local eqn = "`b0'+`b1'*av"
|
||||
return local upper = "`b0'+`b1'*Average + 2.46*(`c0'+`c1'*Average)"
|
||||
return local lower = "`b0'+`b1'*Average - 2.46*(`c0'+`c1'*Average)"
|
||||
|
||||
}
|
||||
|
||||
end
|
Reference in New Issue
Block a user