Надеюсь, я ошибаюсь, но основная идея кажется ошибочной. Единственным преимуществом использования указанного начального числа является обеспечение воспроизводимости подробных результатов в том смысле, что другие люди, использующие ту же программу и те же данные, по крайней мере, уверены в тех же результатах (и, следовательно, имеют средства проверки именно того, что вы сделали) . В противном случае, если результаты сильно зависят от конкретного начального числа, то либо размер выборки слишком мал, либо проблема слишком незначительна, чтобы какие-либо результаты были заслуживающими доверия. Как вы собираетесь сообщить об этом? Если вы скроете тот факт, что вам приходилось искать подходящие результаты, то это было бы расценено как неприемлемое. Если вы предаете гласности этот факт, вы публикуете результаты, которые помечены как сомнительные и бесполезные. Я бы посоветовал обсудить вашу идею с руководителями, наставниками или коллегами по мере необходимости. Если они предлагают это, объяснение, почему вы считаете это хорошей идеей, будет необходимо всякий раз, когда вы представляете результаты.
Все это говорит о том, что в матрицах Stata есть строки и столбцы, поэтому для заданного вектора-столбца его элементами обычно являются matname[
i, 1]
. Подписка определяется в любой документации по матрицам Stata, например. http://www.stata.com/help.cgi?matrix
Таким образом, петля, которую вы, кажется, подразумеваете, может быть
mkmat Seeds, matrix(matSeeds)
forval i = 1/`= rowsof(matSeeds)' {
...
set seed `= matSeeds[`i', 1]'
...
}
http://www.stata.com/help.cgi?macro документирует оценки на полет (в данном случае) скаляров и матричных элементов.
РЕДАКТИРОВАТЬ: Используемый здесь синтаксис задокументирован по адресу help macro
или по адресу http://www.stata.com/manuals14/pmacro.pdf. Вот пример:
. mat foo = J(1, 1, 42)
. set seed `=foo[1,1]'
. display c(seed)
X51535c3ec43f462544a474abacbdd93d386b
. mat foo = J(1, 1, 666)
. set seed `=foo[1,1]'
. display c(seed)
X97b5c5aec43f462544a474abacbdd93d2d9c
Основная проблема здесь заключается в том, что set seed
сама не будет оценивать переданные ему выражения. Существуют различные обходные пути, включая определение локального макроса и последующий ввод ссылки на макрос. Работа Stata заключается в том, что макрос оценивается до того, как set
увидит свои аргументы. Показанный здесь синтаксис вырезает макрос путем оценки на лету.
Здесь используется случай, когда expansion_optr представляет собой знак равенства =
, за которым следует exp, то есть выражение, которое нужно вычислить. В этом случае выражение является просто матричным элементом.
person
Nick Cox
schedule
16.12.2015