具有不同觀測次數的多種情況的斜率計算和編譯你好,
我知道之前已經討論過線性斜率計算的主題,但我找不到一種有效的方法來為一組病例(即患者)創建斜率的表格輸出,對於這些病例,我有不同數量的觀察值作為時間的函數。
這是數據的屏幕截圖(模擬;實際文件已附後):
Mock data for SLOPE calculationMock data for SLOPE calculationSLOPE 計算的模擬數據
按照本板之前討論的建議,我使用 Patient_ID 作為 By 變量,使用 Fit Y by X(按時間測量的變化),並繪製截距約束為 0 的線性擬合:
輸出:5 項分析與以下一項相同:

我陷入困境的是如何將坡度估計值收集到一個新表中,該表如下所示:
| 患者ID | 坡 |
| AAA | 米1 |
| 血腦屏障 | 平方米 |
| CCC | 立方米 |
| DDD | 米4 |
| 電子電氣工程 | 米5 |
歡迎任何建議:我不執著於原始數據格式或分析方法。
謝謝
回复:具有不同觀測數量的多種情況的斜率計算和編譯檢查樹結構和 JMP 版本。 我的代碼適用於 JMP 11.2.1、12.2.0 和 13.1.0。有時,從一個版本轉換到另一個版本時,底層結構會存在差異。 如果您在數字列框中看到規則模式(例如 7、22、37、52、67),您可以將其構建到循環中。
回复:具有不同觀測數量的多種情況的斜率計算和編譯腳本也可以使用幾種不同的技術來提取估計值。 由於按組的原因,常見的迭代方法變得很麻煩,但如果只是蠻力的話,它可以是直接的。 更優雅的解決方案是在報告顯示樹上使用單個 XPath 查詢來檢索所有斜率作為向量。 我現在沒有時間研究確切的語法,但除了細節之外,這很容易。 像這樣的東西:
plat << XPath( "//NumberColBox[NumberColBoxHeader=\!"Estimate\!"]" ) << Get( 2 );
回复:具有不同觀測數量的多種情況的斜率計算和編譯謝謝:我總是忘記這個非常巧妙的功能
回复:具有不同觀測數量的多種情況的斜率計算和編譯你好,
感謝您的快速回复:這正是我所尋找的,但從多圖報告中“檢索”parameter_estimate 不起作用,因為 NumberColBox (7) 僅適用於第一個圖,以下圖具有相應的 NumberColBox 23、37 等。
我不確定如何迭代 NumberColBox 調用。
有什麼想法嗎?
謝謝
TS
回复:具有不同觀測數量的多種情況的斜率計算和編譯你發現了經過對數據進行角色分組以進行單獨的回歸分析。 (我希望您知道在單擊紅色三角形並選擇“擬合線”命令之前按住 Ctrl 鍵!)現在右鍵單擊參數估計表並選擇創建組合數據表。
回复:具有不同觀測數量的多種情況的斜率計算和編譯這段代碼就能解決問題。 “秘密”是查看輸出的底層樹結構,並將其轉換為報告。
dt = data table("SLOPE_Calculation_mock_data");
bv = dt << Bivariate(
Y( :Change in Measure ),
X( :Time ),
Fit Line( {Line Color( {213, 72, 87} )} ),
By( :Patient_ID )
);
// Figure out how many patients there are
dtab = dt << Tabulate(
Show Control Panel( 0 ),
Add Table( Row Table( Grouping Columns( :Patient_ID ) ) ),
invisible
);
pdt = dtab << Make Into Data Table;
np = nrows(pdt);
patient_list = pdt:Patient_ID << get values;
dtab << close window;
pdt << new column("Slope", numeric, continuous);
bvrep = bv << report;
//bvrep << show tree structure; // Used to get underlying structure
for (i = 1, i <= np, i++,
parameter_estimates = bvrep[i][numbercolbox(7)] << get;
one_slope = parameter_estimates[2];
pdt:Slope[i] = one_slope;
);