1 Star 2 Fork 0

连享会 / moremata

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
mf_mm_unorder2.hlp 3.10 KB
一键复制 编辑 原始数据 按行查看 历史
benjann 提交于 2019-01-31 15:33 . latest SSC version
{smcl}
{* 22may2006}{...}
{cmd:help mata mm_unorder2()}
{hline}
{title:Title}
{p 4 8 2}
{bf:mm_unorder2() -- Stable unorder}
{title:Syntax}
{p 8 16 2}
{it:real colvector}{bind: }
{cmd:mm_unorder2(}{it:real scalar n}{cmd:)}
{p 8 16 2}
{it:transmorphic matrix}{bind: }
{cmd:mm_jumble2(}{it:transmorphic matrix X}{cmd:)}
{p 8 16 2}
{it:void}{bind: }
{cmd:mm__jumble2(}{it:transmorphic matrix X}{cmd:)}
{p 4 8 2}
where {it:X} may not be a pointer matrix.
{title:Description}
{pstd}
The results from official Stata's {cmd:unorder()} are not
reproducible if {it:n} is large. That is, differing
results may be obtained from {cmd:unorder()}, although the
random-number seed has been set beforehand (see help for
{helpb mf_uniform:[M-5]{space 1}uniform()}). {cmd:mm_unorder2()} is an
improved version of official {cmd:unorder()} that produces stable
results.
{pstd}{cmd:mm_jumble2()} and {cmd:mm__jumble2()} are stable versions
of official {cmd:jumble()} and
{cmd:_jumble()}.
{pstd}For descriptions of {cmd:unorder()}, {cmd:jumble()}, and
{cmd:_jumble()} see help for {helpb mf_sort:[M-5]{space 1}sort()}.
{title:Remarks}
{pstd}The following example illustrates the problem:
{com}: for (i=1;i<=10;i++) {
> uniformseed(3)
> p1 = unorder(100000)
> uniformseed(3)
> p2 = unorder(100000)
> if (p1!=p2) {
> printf("round %g: unequal results\n", i)
> break
> }
> }
{res}round 2: unequal results{txt}
{pstd}Explanation: {helpb mf_uniform:uniform()} may return
duplicate pseudo random numbers due to computer precision constraints. Example:
{com}: uniformseed(3)
{res}
{com}: rows(uniqrows(uniform(100000,1)))
{res} 99999{txt}
{pstd}Since the results from {cmd:unorder()} rely on the sort order of
uniform pseudo random numbers and since the sort order of duplicate values
is randomized independently from the usual random-number seed,
results from {cmd:unorder()} may differ.
{pstd}{cmd:mm_unorder2()} solves the problem by using two pseudo
random-number sequences instead of one.
{title:Conformability}
{p 4 4 2}
{cmd:mm_unorder2(}{it:n}{cmd:)}:
{p_end}
{it:n}: 1 {it:x} 1
{it:result}: {it:n x} 1
{p 4 4 2}
{cmd:mm_jumble2(}{it:X}{cmd:)}:
{p_end}
{it:X}: {it:r1 x c1}
{it:result}: {it:r1 x c1}
{p 4 4 2}
{cmd:mm__jumble2(}{it:X}{cmd:)}:
{p_end}
{it:X}: {it:r1 x c1}
{it:result}: {it:void}; {it:X} row order modified
{title:Diagnostics}
{pstd}
See help for {helpb mf_sort:[M-5] sort()}.
{title:Source code}
{pstd}
{help moremata_source##mm_unorder2:mm_unorder2.mata},
{help moremata_source##mm_jumble2:mm_jumble2.mata},
{help moremata_source##mm__jumble2:mm__jumble2.mata}.
{title:Author}
{pstd}
Ben Jann, University of Bern, jann@soz.unibe.ch
{title:Also see}
{psee}
Manual: {hi:[M-5] sort()}
{psee}
Online: help for
{helpb mf_sort:[M-5] sort()};
{helpb moremata}
{p_end}
1
https://gitee.com/arlionn/moremata.git
git@gitee.com:arlionn/moremata.git
arlionn
moremata
moremata
master

搜索帮助