用於分析(逐步回歸)平台的蒙特卡羅模擬我有一個分析,它使用了幾個包含隨機元素的列。我知道如何手動更新列中的隨機數,並且我了解如何對分析的輸出進行模擬。但在這種情況下,我想在每次更新列中的隨機數時運行逐步回歸。我想這樣做至少 1000 次。我不知道如何自動化這個過程:在公式列中生成新的隨機數,重新運行逐步回歸平台,運行選擇的模型並收集結果。
分析回复:用於分析(逐步回歸)平台的蒙特卡羅模擬讓我更具體一些,以防有任何慷慨的腳本編寫者可以提供幫助。我附上了我正在嘗試做的一個較小的版本。我在附件中有 10 列(全部從第 2 列開始),涉及隨機正態分佈和第一列 Y,它使用標有參數 1 到 5 的 5 列,以及公式中的一個隨機正態分佈。我希望執行以下步驟:
1. 運行存儲在文件中的逐步回歸。我不需要製作或運行模型,我只需要從 Fit Model 平台執行 Run 之後運行逐步過程的 Go 按鈕。
2. 記錄從第 2 列開始的 10 列中的每一列被逐步過程選擇的頻率。 (我不知道如何編寫收集特定信息的腳本)
3. 重新運行 5 個參數列的公式,以便它們包含一組新的模擬值。我知道這可以通過表格左上角紅色箭頭處的重新運行公式命令來完成(但我不知道如何編寫腳本)。
4. 重複步驟 1 和 2。 (我相信這可以通過一個簡單的循環來完成)
5. 重複此操作 1000 次,並顯示在逐步過程中選擇 10 Column 2 列中每一列的次數分佈。
我相信這一切都可以編寫腳本,但這遠遠超出了我的能力範圍。如果有人可以提供幫助,我將不勝感激。我願意與某人合著一篇論文,因為我對此有一個出路。
回复:用於分析(逐步回歸)平台的蒙特卡羅模擬我已經基本解決了我的問題 - 但仍然有一個問題。附件是一個小腳本,可以根據需要執行逐步回歸。但是要生成 1000 個樣本,我需要創建一個“樣本”列並將其用作分析中的“依據”變量。這可行,但是進行模擬是一種繁瑣的方法,因為我需要使文件非常長 - 例如,對於 1000 個樣本,每個樣本有 1000 個觀測值,我需要 1,000,000 行。有誰知道進行模擬的更有效方法?據我所知,許多JMP平台附帶的“模擬”選項只能模擬某些分析結果,不能模擬分析本身。
回复:用於分析(逐步回歸)平台的蒙特卡羅模擬您在上一篇文章中提出的計劃是一個很好的計劃。 我也會那樣做。 我會嘗試給出一些建議。
- 如果您不熟悉 JMP 中的腳本,則可以從以下起點開始腳本指南. 在這個特定任務中,一些重要的部分可能是:
- 除此之外,您還需要熟悉幫助菜單下的腳本索引。 有 3 組腳本對象:函數、對象和顯示框。 左上角有一個組合框,您可以縮小到特定組。
- 對於此特定任務,您可能需要查看對象組。 此處列出了所有平台,包括數據表。 您可能需要查看“Fit Model”對像下的“Fit Stepwise”項。單擊“Fit Stepwise”,然後在“Item Messages”中向右查看“Finish”消息。 這可能是你現在缺少的關鍵部分。
- 對於這個特定的任務,您還需要學習如何操作數據表。 特別是串聯,也許。 轉到對象列表,單擊“數據表”,然後在項目消息中向右查找“連接”。
除了上述之外,這裡還有我從同事那裡學到的其他有用的技巧。
- 盡可能在討論板上發布更小、更具體的問題。 它將更有可能產生幫助。
- 更喜歡屏幕截圖而不是附件。 對於JSL代碼,可以直接在帖子中插入,方便讀者查看。 編輯帖子時,在工具欄中查找 按鈕。 它也更有可能產生幫助。 例如,移動設備上的閱讀器不太可能打開附件。

回复:用於分析(逐步回歸)平台的蒙特卡羅模擬嗨 dale_lehman
我的想法是從文件夾中的“逐步”平台獲取並保存結果。 然後 '多文件導入' 整個結果作為一個文件。
最後,通過 ' 清理行P值'並根據需要分發。詳細 JSL 如下:
Clear Globals();
Clear Log();
Names Default To Here( 1 );
//Define path in and out
Path_in = Pick File( "Select file" );
If( Directory Exists( "$Desktop\Fit_Stepwise" ),
,
Create Directory( "$Desktop\Fit_Stepwise" )
);
Path_out = "$Desktop\Fit_Stepwise\";
//Run Fit model and stepwise after open datatable
dt = Open( Path_in );
For( i = 1, i <= 1000, i++,
ow = dt << Fit Model(
Y( :Y ),
Effects(
:Column 2 001,
:Column 2 002,
:Column 2 003,
:Column 2 004,
:Column 2 005,
:Column 2 006,
:Column 2 007,
:Column 2 008,
:Column 2 009,
:Column 2 010
),
Personality( "Stepwise" ),
Run,
SendToReport( Dispatch( {}, "Step History", OutlineBox, {Close( 1 )} ) )
);
dt_result = Report( ow )[Outline Box( "Stepwise Fit for Y" )][Outline Box( "Current Estimates" )][Table Box( 1 )] << Make Into Data Table;
dt_result << save( Path_out || Char( i ) || ".csv", "csv" );
ow << close window;
dt_result << Close Window;
);
dt << Close Window;
dt_result = Multiple File Import(
<<SET folder="">F\!"" ) > 0.05 ) ) << Delete Rows;
dt_result << Distribution( Stack( 1 ), Nominal Distribution( Column( :Parameter ), Horizontal Layout( 1 ), Vertical( 0 ) ) );</SET>