我正在嘗試設計一個實驗,其中一些因素是有條件的,我不確定這是否可以使用自訂設計正確處理,或者是否應該手動建立設計。
我有一個因子X1 ,其參考值為1 ,這也是最大值。 X1 只能在低於此參考值的情況下變化,但有一種情況值得關注,那就是將其保持在參考值。
對於另外兩個因素,其結構是有條件的:
-
X2可以設定為關閉或開啟。
- 如果關閉,則沒有等級/強度。
- 如果開啟,則具有連續範圍
-
X3可能不存在,也可能存在。
- 如果沒有,則沒有劑量/強度資訊。
- 如果存在,則其範圍是連續的。
因此,X2 和 X3 不是簡單的連續因子,因為它們的連續值只有在對應的因子處於啟動/存在狀態時才有意義。
我的目標是了解:
- X2 和/或 X3 存在與否的影響
- 當 X2 和/或 X3 處於活化狀態時,改變其水平/強度會產生什麼影響?
- 這些效應在 X1 的不同取值下如何表現?
- X1、X2 和 X3 之間是否存在交互作用
我正在考慮的一個方案是將X2和X3視為離散數值因子,其中0表示關閉/缺失,非零值表示激活的連續範圍。這樣,在分析時,我可以避免對多項式項進行自動編碼/中心化,從而更直接地解釋數值水準。
然而,我明白這種方法有缺陷。特別是,從0躍升到第一個非零等級可能會產生兩種影響:
- 開啟/呈現該因素的影響
- 降至最低活性強度/劑量所產生的影響
因此,它可能無法將活化/存在效應與強度/劑量效應完全區分開來。這也會使交互項更難解釋,尤其是在 X1 取不同值時 X2 和 X3 的行為不同的情況下。
我目前正在嘗試的第二種方法是使用類別激活因子和離散數值水平因子來表示 X2 和 X3:
- X2 包含一個分類的開/關因子和一個離散的數值水平因子。
- X3 包含一個分類的缺失/存在因素和一個離散的數值水平因素。
DOE(
Custom Design,
{
Add Response( Maximize, "Y", ., ., . ),
Add Factor( Continuous, -1, 1, "X1_Level", 0 ),
Add Factor( Discrete Numeric, {0, 1, 2, 3}, "X2_Level", 0 ),
Add Factor( Categorical, {"Off", "On"}, "X2_Status", 0 ),
Add Factor( Discrete Numeric, {0, 1, 2, 3}, "X3_Level", 0 ),
Add Factor( Categorical, {"Absent", "Present"}, "X3_Status", 0 ),
Set Random Seed( 2055292721 ),
Number of Starts( 4702 ),
Add Term( {1, 0} ),
Add Term( {1, 1} ),
Add Term( {2, 1} ),
Add Potential Term( {2, 2} ),
Add Term( {3, 1} ),
Add Term( {4, 1} ),
Add Potential Term( {4, 2} ),
Add Term( {5, 1} ),
Add Term( {1, 1}, {2, 1} ),
Add Term( {1, 1}, {4, 1} ),
Add Term( {2, 1}, {4, 1} ),
Set Sample Size( 12 ),
Disallowed Combinations(
("X2_Status"n == "Off" & "X2_Level"n > 0) |
("X2_Status"n == "On" & "X2_Level"n == 0) |
("X3_Status"n == "Absent" & "X3_Level"n > 0) |
("X3_Status"n == "Present" & "X3_Level"n == 0)
),
Simulate Responses( 0 ),
Save X Matrix( 0 ),
Make Design
}
);
我擔心分類狀態因子可能是多餘的,因為數值水準已經隱含了「開啟/關閉」或「存在/缺失」的狀態。因此,我不確定這種設定是否真的能將活化效應與水平/強度效應區分開來,或者是否會引入共線性/混淆因素,從而使模型難以解釋。
我的問題是:
- 同時納入地位因素和離散數值水平因素在統計上是否合理?
- 這種設定能否有效地將激活效應與水平/強度效應區分開來?
- Would it be better to use only the discrete numeric factors, with
0 = Off/Absent and 1–3 = active levels?
- 或者,在 JMP 自訂設計中是否有更好的方法來處理這種類型的條件因子結構?
嗨@JunaidM ,
分類因素並非必要,因為 X2 水準為 0 就意味著該因素「關閉」(X3 也是如此)。
因此,在設計中加入這些因素只會造成設計生成過程中的冗餘資訊(和共線性),並且由於狀態因素和水平因素之間的線性依賴性,在建模過程中也會產生奇異細節。
在您分享的設計產生腳本中,可以看到由於這種冗餘(以及 X2 和 X2 狀態之間的依賴關係),JMP 在設計評估平台中已從模型中刪除了因子 Xi_Status,僅保留了離散數值和數值因子項:

所以我還是會選擇更直接的設計生成方式。
你設計這個實驗的目的是什麼?你真的想測試這麼多 X2 和 X3 的等級嗎?一個只有兩個水準(一個低水準:缺失 = 0,一個高水準:存在,例如 3)的篩選/D-最適設計是否足以滿足你的需求?或者,使用三個層次來分析二次效應,避免簡單的缺失/存在因子水準設定?
如果您確實想要強制執行這些級別,您仍然可以使用以下方式建立您的設計:
- X1 連續因子(從 -1 到 1)
- X2 可以是離散數值型變量,取值為 0、1、2 和 3,也可以是連續型變量,但需要使用適當的模型項來保證足夠的水平數。如果您確實需要測試 4 個水平,則在設計中指定 X2 的 5 次方項即可為該因子建立 4 個水平。有關更多信息,請參閱實驗設計中的力水平。
- X3 離散數值型變量,取值為 0、1、2 和 3,或連續型變量,具有適當的模型項,以具有足夠的水平。
如果您想將激活效應與水平/強度效應區分開來,您仍然可以在分析中評估當 X2 = 0 時的平均響應與當 X2 = 1、2 或 3 時的平均響應之間的差異,方法是對這兩種條件下的響應進行平均。如果您已經擁有更細緻、更詳細的回應數據,那麼在分析中總結資訊就容易得多,因為您可以同時提供兩種類型的分析和結果:宏觀視圖和詳細視圖。
希望這個回答對您有幫助。
嗨@Victor_G
感謝您的詳細回复,這非常有幫助。
Just to clarify one point: in the script I shared, I had removed the X2_Status and <STRONG>X3_狀態</STRONG> terms myself from the model terms because I was already concerned that they may be redundant. But your explanation confirms the concern more clearly: since X2 = 0 already implies OFF and <STRONG>X2 ></STRONG> 0 implies ON, adding a separate status factor would introduce redundant information and potential collinearity.
So, if I understand correctly, the more direct approach (Option 1) does make sense.</CODE></P>
<P>Based on your response, I am also thinking that three discrete numeric levels may be sufficient instead of four. For example, <CODE>0, lowest practical active level, and highest practical active level. This may be more appropriate because the distance between 0 → lowest active level and lowest → highest active level is not the same.
根據您的建議,我認為以下設計結構更合理。我移除了單獨的分類狀態因子,並將 X2 和 X3 保留為離散數值因子。0表示關閉/缺失狀態,非零值表示啟動狀態。
此模型包括主效應、X1 的二次效應以及選定的雙因素交互項:
DOE(
Custom Design,
{Add Response( Maximize, "Y", ., ., . ),
Add Factor( Continuous, -1, 1, "X1", 0 ),
Add Factor( Discrete Numeric, {0, 15, 30}, "X2", 0 ),
Add Factor( Discrete Numeric, {0, 30, 45}, "X3", 0 ),
Set Random Seed( 1139260218 ), Number of Starts( 71985 ), Add Term( {1, 0} ),
Add Term( {1, 1} ), Add Term( {2, 1} ), Add Potential Term( {2, 2} ),
Add Term( {3, 1} ), Add Potential Term( {3, 2} ), Add Term( {1, 2} ),
Add Term( {1, 1}, {2, 1} ), Add Term( {1, 1}, {3, 1} ),
Add Term( {2, 1}, {3, 1} ), Set Sample Size( 12 ), Simulate Responses( 0 ),
Save X Matrix( 0 )}
);
One point I want to check is about model fitting and interpretation. Since
0 for X2 and X3 represents a real OFF/absent condition, and not just a coded low level, I assume I should be careful with automatic coding or centering of polynomial terms. My concern is that centering may make the model coefficients harder to interpret in relation to the actual OFF/absent state. Would you recommend fitting these terms using the actual numeric values, or is there a better coding strategy for this type of factor?
謝謝你的解釋。
是的,設定三個等級可能很有意思,因為您可以評估因素存在與否對反應的影響,以及低劑量和高劑量之間反應的變化。由於您使用的是序數因子類型,因此您可能非常適合使用序數因子的預設編碼:對於序數因子,因子的第一個水平是對照或基線水平,參數衡量的是序數因子設定為每個後續水平時對反應的影響。序數因子編碼適用於包含代表不同劑量等級的因子,其中第一個劑量為零。
多項式項的中心化僅對連續因子進行,離散數值因子不進行中心化。
關於您產生的設計,我建議您將 JMP 中二次效應的可估計性設定為“必要”,而不是預設的“如果可能”,以便在中間水平(對應於您的最低劑量)進行更多試驗。在總試驗次數相同(12 次)的情況下,此選項可將 X2 的第 15 水準和 X3 的第 30 水準的試驗次數從 2 次增加到 3 次。如果您希望強制每個水準的試驗次數均衡分配(X2 和 X3 的 3 個水準各 4 次),您可以先建立分類因子類型的設計,然後在設計產生並建立表格後,將因子類型修改為數值有序因子,並新增/修改相關的列屬性:編碼(包含最小值和最大值)、設計角色(離散數值)和因子變更。
希望這個回答能澄清建模方面的問題。