使用迭代 t 檢定的 p 值產生總計表我正在尋找一個腳本,它可以自動產生與一個參考組相比的成對 t 檢定的平均值和 p 值的匯總/透視表。我正在使用 JMP 17。
在下面的資料表中,有SubjectId、測量的BMI、測量的VO2max、年份和參考列,以指示該行是否具有作為參考的SubjectID。

我一直在使用平均值手動產生總表(如下所示),然後手動填入單邊 t 檢定的 p 值。

我特別感興趣的是每個SubjectID與每年的參考之間的t檢定的單邊p值結果,以確定非參考SubjectID是否具有比參考SubjectID更高的BMI或VO2max。到目前為止,我一直在手動執行匯總 t 檢驗,並在我創建的匯總表中報告 p 值和平均值。有沒有一種方法可以迭代唯一的SubjectID 列表並產生一個匯總表,其中這些統計資訊以使用JSL 描述的方式執行?此外,添加匯總統計資料的通用方法(例如,每次分析的每個主題 ID 為 N)也會有所幫助。
自動化和腳本編寫基礎資料分析與建模回覆:使用迭代 t 檢定的 p 值產生總和表我無法弄清楚您對主表中的值以及報告表中的新顯示做了什麼。請詳細說明您轉換資料所採取的步驟。
回覆:使用迭代 t 檢定的 p 值產生總和表嗨@LinkageBee996 ,
我同意@txnelson ,很難理解如何從主資料表到手動產生的資料表。重新排列資料表並以不同的方式組織它可能會更適合您的目的。這可能需要拆分數據,或以不同於當前結構的方式連接數據。
我提到這一點的原因是,有時可以使用BY組變數進行分析,然後透過右鍵單擊報表並選擇建立組合資料表,可以在更大的資料表中輕鬆獲得分析結果。您可以透過使用 Big Class.jmp 範例資料並執行 ANOVA Fit Y by X(其中 :sex 作為 x 軸,:height 作為 Y 軸)來查看這是否對您有用(以更好地了解如何製作組合資料表有效,使用:age 作為BY 變數)。執行 t 檢驗,然後右鍵單擊感興趣的統計表並選擇建立組合資料表。
如果您對 t 檢定以及單向變異數分析平均值執行此操作,則可以連接這些資料表,以便獲得每組的平均值以及 t 檢定的 p 值。它最終應該看起來像這樣,這可能符合您所追求的。

當然,您始終可以將生成的腳本保存在資料表中,將其全部放入一個工作腳本中 - 或使用 Workflow Builder 記錄器,它可以為您編寫腳本,請參見此處。
希望這可以幫助,
DS
回覆:使用迭代 t 檢定的 p 值產生總和表@txnelson和@SDF1您好,我希望能夠澄清該請求,並可能稍微關註一下範圍。我和@LinkageBee996一起工作,所以他請我幫忙澄清。
目前的工作流程如下:
1)從@LinkageBee996分享的資料表開始。為了簡化事情,我將忽略年份欄,只專注於 BMI。
2) 執行簡單的雙樣本 t 檢驗,將每個標記為「否」的受試者 ID 與標記為「是」的受試者 ID (A1454) 進行比較,總共進行 5 次比較(有我們這樣做的原因與做諸如鄧尼茨測試之類的事情的原因)。目前,我們透過使用單向平台中「Fit Y by X」下的本地資料過濾器來逐一執行此操作
3) 目前,t 檢定的結果(p 值等)隨後被手動轉錄到空白檔案(CSV 或 JMP 表)。由於我們一次只進行一項測試,因此使用「產生資料表」並不實用,因為您最終會得到與比較一樣多的資料表,然後需要合併為單一資料表。
我們希望自動化這部分分析,這對於我們可能正在測試的任何新主題 ID 來說都是未來的證明,因此腳本應該(以最有意義的順序)執行以下操作。在我看來,透過在 python 和其他軟體中進行類似的分析,這是有意義的:
1. 建立「非引用」ID 列表
2.對於每個非參考 ID,執行單向分析和雙樣本 t 檢驗,將其與標記為“是”的參考 ID 進行比較(讓我們假設總是存在以下之一)這些)
3. 將 t 檢定結果儲存到資料表中。這裡要注意的是:「製作資料表」和「製作組合資料表」的預設格式不會保存比較的一些元資料 - 例如,它會告訴您的列標題(X 是主題 ID,Y 是BMI),但它不會告訴您X 的兩個值是什麼樣的,如分析中t 檢定結果UI 的頂部所示(「A1454-B8565」)。我們想要捕獲這些資訊 - 您正在比較兩個事物,您正在比較的兩個事物是什麼?
4. 將資料集中每次比較的所有 t 檢定結果合併到一個資料表中。從那裡開始,這將只是一個資料操作問題,我們可能可以找出將其轉換為最有用的格式
希望這能讓我們更清楚,如果仍有歧義,請告訴我們
回覆:使用迭代 t 檢定的 p 值產生總計表嗨@Moser_stefan和@LinkageBee996 ,
我更明白你想做什麼。以下是一些想法:
1.根據您的描述,我仍然認為重組您的資料表可能是有益的,這樣您就可以利用變異數分析中的 BY 變量,然後建立組合資料表。可能需要考慮如何重新格式化資料表,但我認為這可能是值得的。即使最終有很多數據表,您也可以隨時進行連線。最後將它們組合成一個數據表。
2. 我認為自動化這個過程是個好主意,特別是如果要對未來的資料集重複分析的話。在這方面,我強烈建議您花時間自己學習 JSL 編碼。每個人在這種事情上都有自己的特定需求,如果您可以學習 JSL 來使您的組織受益,那麼它將推動您前進的速度比您想像的要快得多。編寫 JMP 問題的腳本解決方案使工作變得更加輕鬆,並且可以更快地獲得結果。那裡有大量的好信息,特別是在在線討論論壇中,但也在這裡。您可以在此處下載許多優秀的 JMP 文檔,包括最新的腳本指南 PDF。另外,「幫助」>「腳本索引」下方還有「腳本索引」。如前所述,如果您不熟悉編碼和腳本編寫,請考慮使用工作流程產生器,它將為您產生所需的腳本。話雖這麼說,我的建議是自己學習,以便在編碼工作時擁有更多的控制/靈活性。
3. 如果沒有實際的資料表可供使用(即使它是匿名的以保護任何敏感資訊),則很難為其他人產生通用的腳本 - 即在「所有」情況下(當然什麼都沒有)確實在所有可能的情況下都有效,但重點仍然是-使其具有普遍性)。為其他人編寫程式碼在很大程度上取決於您正在使用的資料表以及表中資料的結構,因為它會改變您處理分析和分組結果等的方式。
我知道這不是您真正想要的答案,但我認為,投入一些時間來重組數據和/或學習 JSL,您會發現回報遠遠超過投入的努力。
祝你好運!,
DS
回覆:使用迭代 t 檢定的 p 值產生總和表感謝您的回覆@SDF1 。 JSL 路徑很有意義,我有一些經驗,但肯定沒有專家,所以這是在這裡發展我們技能的好機會。無論如何,了解解決此問題的潛在路徑有助於了解一些選項。
我正在努力了解是否可以使用“by”函數的一件事 - 主要是因為我們有一組數據(參考資料集),我們希望在每次比較中重複使用,還有一組數據(非參考數據集) )應該被“除以”。我認為這項工作有效的唯一方法是,我們為每次比較複製參考資料集,然後給它一些唯一的變數(例如,“比較”列)。也許這會起作用......我們只需要考慮複製原始資料表中的資料是否會產生任何其他問題或風險。
嗯,您確實給了我們一些思考的空間,我很感謝您花時間回應。我們一定會跟進我們提出的任何解決方案。
回覆:使用迭代 t 檢定的 p 值產生總計表嗨@Moser_stefan和@LinkageBee996 ,
很樂意提供協助。而且,我想我更了解資料的結構,為什麼 BY 變數會有點困難。可能需要對您的資料進行大量重組才能實現我的想法/意圖。
相反,您可能最好做的是根據主題 ID 列來取得資料子集,或許還可以使用參考列。然後,對子集資料表的每個參考 ID 和主題 ID 執行 t 檢定分析。然後,使用“產生資料表”,然後根據列連接產生的資料表,例如“產生資料表”結果中的“列 1”。這可能是從目前資料格式轉換為解決方案的最快方法,而無需花費太多時間重組資料。
在這方面,我製作了一個模擬資料表(附後),其中包含來源列(如您的主題 ID)和幾個腳本。您可以透過右鍵單擊並選擇編輯來檢查腳本,但也可以執行它們 - 按來源 A 或 B 分組來執行它們,然後執行最後一個腳本,將兩個資料表連接在一起形成最終資料表。從你的描述來看,你似乎想做這樣的事情。至少,希望這些腳本能幫助您並為您提供一個滿足您的特定需求的起點。
希望這可以幫助!,
DS
回覆:使用迭代 t 檢定的 p 值產生總和表嗨@Moser_stefan ,
很高興聽到您已經能夠自動化資料收集和分析。完成此類任務總是有很大幫助,因為從長遠來看它可以節省大量時間。
做得好!,
DS