2016-12-15 6 views
2

Ich bin ziemlich neu in r, und verwende das Elrm-Paket für die exakte logistische Regression (ELR). Ich möchte, dass es möglich ist, meine Ergebnisse zu replizieren, so dass es scheint, dass ich aus meiner Forschung einen Samen für die Simulation setzen muss.Ist es möglich, Samen in der Elm-Paket zu setzen?

Mein Datensatz hat mit strafrechtlicher Rückfälligkeit im Zusammenhang mit früheren Datensätzen zu tun, mit dem Risikoniveau einer standardisierten Beurteilung und wie sich unser Programm auf die Rückfallquote auswirkt. Also, BEHANDLUNG ist meine primäre unabhängige Variable von Interesse, und die Rückfallrate (RECID_sum/case_sum) ist meine abhängige Variable.

Ich habe dies ein paar verschiedene Möglichkeiten ausprobiert.

Zuerst lief ich

set.seed(66672) 

Danach läuft, ich den folgenden Code für die ELR laufen:

m.treatment <- elrm(formula = RECID_sum/case_sum ~ TREATMENT + FDRUGVSP + 
FPROPVSP + FELEVENTVSP + RISK + street_time + TREATMENT, interest =~ TREATMENT, 
iter=100000, dataset=final, burnIn=100) 

Und jedes Mal, wenn ich unterschiedliche Ergebnisse erhalten, auch nachdem sie sicher, dass die setzen säen Sie erneut, bevor Sie den Code ein zweites Mal ausführen.

Ich habe auch versucht die folgenden:

m.treatment <- elrm(formula = RECID_sum/case_sum ~ TREATMENT + FDRUGVSP + 
FPROPVSP + FELEVENTVSP + RISK + street_time + TREATMENT, interest =~ TREATMENT, 
iter = 100000, dataset = final, burnIn = 100); set.seed(66672) 

erhielt aber jedes Mal unterschiedliche Ergebnisse, die ich es lief. Ich habe beim Ausführen dieses Codes keine Fehler erhalten.

Ich habe einige Untersuchungen über das Setzen eines Samens für Monte-Carlo-Simulationen durchgeführt, aber dieser Ansatz scheint hier nicht anwendbar zu sein. Es scheint keine Informationen darüber zu geben, einen ELR-Seed in das Elm-Paket zu setzen. Ich kann es wegen meiner relativen Unerfahrenheit mit r vermissen und ich kann nicht genau wissen, wonach ich suche. Normalerweise verwende ich SPSS, das ist so klobig und kann ELR leider nicht sinnvoll machen.

Jede Hilfe, die Sie anbieten können, wird sehr geschätzt, und verzeihen Sie meine Neuheit zu r, wenn das eine einfache Antwort ist.

+0

Verwenden Sie eine korrekte Formatierung http : //stackoverflow.com/help/how-to-ask –

Antwort

0

Leider glaube ich nicht. Graben in die C++ source code zeigt, dass der zugrunde liegende Code ist das System unter Verwendung von rand() function: in sich

## binomMCMC.cpp, line 31:  
double runif = (float) rand()/RAND_MAX; 

Dies ist ein wenig besorgniserregend, als R-internen Zufallszahlengeneratoren (die aus C++ Code zugegriffen werden kann) sind generally considered to be more reliable, and faster, than Unix rand().

Noch schlimmer ist, dass die Initialisierung des RNG fest einprogrammiert zu sein scheint:

## binomMCMC.cpp, line 251 
srand((unsigned int)time(NULL)); 

Ich denke, die einzige Möglichkeit wäre hier, um die Betreuer zu kontaktieren (maintainer("elrm")) ...

+0

Vielen Dank für Ihre Hilfe! –

+0

Während die Stimmung geschätzt wird, lehnt StackOverflow [mit Kommentaren, um "Danke" zu sagen] ab (http://meta.stackoverflow.com/questions/258004/should-thank-you-comments-be-flagged?lq=1). ; Wenn diese Antwort nützlich ist, können Sie sie aufwerten (wenn Sie eine ausreichende Reputation haben) und in jedem Fall, wenn sie Ihre Frage zufriedenstellend beantwortet, werden Sie ermutigt, das Häkchen zu setzen, um es zu akzeptieren. –

Verwandte Themen