model.matrix
位於 stats
包(package)。 說明
model.matrix
創建一個設計(或模型)矩陣,例如,通過將因子擴展到一組虛擬變量(取決於對比)並類似地擴展交互。
用法
model.matrix(object, ...)
## Default S3 method:
model.matrix(object, data = environment(object),
contrasts.arg = NULL, xlev = NULL, ...)
## S3 method for class 'lm'
model.matrix(object, ...)
參數
object |
|
data |
使用 |
contrasts.arg |
一個列表,其條目是用作 |
xlev |
如果 |
... |
傳入或傳出其他方法的進一步參數。 |
細節
model.matrix
根據 terms(object)
中給出的說明創建一個設計矩陣,使用 data
中的數據,該矩陣必須提供與調用 model.frame(object)
創建的變量同名,或者更準確地說,通過評估 attr(terms(object), "variables")
。如果data
是一個 DataFrame ,可能還有其他列,列的順序並不重要。任何字符變量都被強製為因子。強製轉換後,公式右側使用的所有變量都必須是邏輯、整數、數字或因子。
如果contrasts.arg
為一個因子指定它會覆蓋該變量的默認因子編碼以及任何"contrasts"
屬性設置為C
或者contrasts
。而無效contrasts.arg
s 總是被忽略,從那時起他們就被警告R版本3.6.0。
在交互作用項中,水平變化最快的變量是第一個出現在公式中(而不是項中)的變量,因此在 ~ a + b + b:a
中,交互作用將使 a
變化最快。
按照慣例,如果響應變量也出現在公式的右側,則該變量將被刪除(並帶有警告),但涉及該項的交互作用將被保留。
值
具有指定公式和數據的 regression-like 模型的設計矩陣。
有一個屬性 "assign"
,它是一個整數向量,矩陣中的每一列都有一個條目,給出了產生該列的公式中的項。值 0
對應於截距(如果有),正值對應於與 object
對應的 terms
結構的 term.labels
屬性給出的順序中的項。
如果模型中存在任何因子,則會有一個屬性 "contrasts"
,這是一個命名列表,其中每個因子都有一個條目。這指定了將在通過對比對因子進行編碼的術語中使用的對比(在某些術語中可以使用虛擬編碼),作為命名函數的字符向量或數字矩陣。
例子
ff <- log(Volume) ~ log(Height) + log(Girth)
utils::str(m <- model.frame(ff, trees))
mat <- model.matrix(ff, m)
dd <- data.frame(a = gl(3,4), b = gl(4,1,12)) # balanced 2-way
options("contrasts") # typically 'treatment' (for unordered factors)
model.matrix(~ a + b, dd)
model.matrix(~ a + b, dd, contrasts.arg = list(a = "contr.sum"))
model.matrix(~ a + b, dd, contrasts.arg = list(a = "contr.sum", b = contr.poly))
m.orth <- model.matrix(~a+b, dd, contrasts.arg = list(a = "contr.helmert"))
crossprod(m.orth) # m.orth is ALMOST orthogonal
# invalid contrasts.. ignored with a warning:
stopifnot(identical(
model.matrix(~ a + b, dd),
model.matrix(~ a + b, dd, contrasts.arg = "contr.FOO")))
參考
Chambers, J. M. (1992) Data for models. Chapter 3 of Statistical Models in S eds J. M. Chambers and T. J. Hastie, Wadsworth & Brooks/Cole.
也可以看看
model.frame
, model.extract
, terms
sparse.model.matrix
來自包 Matrix
,用於創建稀疏模型矩陣,這在大維度上可能更有效。
相關用法
- R model.tables 計算 Aov 模型擬合的結果表
- R model.extract 從模型框架中提取組件
- R model.frame 從公式或擬合中提取模型框架
- R mood.test 情緒二樣本量表檢驗
- R monthplot 繪製時間序列中的季節性或其他子序列
- R medpolish 矩陣的中值波蘭(穩健雙向分解)
- R mcnemar.test 計數數據的麥克尼馬爾卡方檢驗
- R mantelhaen.test 計數數據的 Cochran-Mantel-Haenszel 卡方檢驗
- R mahalanobis 馬哈拉諾比斯距離
- R manova 多變量方差分析
- R make.link 為 GLM 家庭創建鏈接
- R median 中值
- R makepredictcall 用於安全預測的實用函數
- R mauchly.test 莫奇利球形度檢驗
- R mad 中值絕對偏差
- R stlmethods STL 對象的方法
- R naprint 調整缺失值
- R summary.nls 總結非線性最小二乘模型擬合
- R summary.manova 多元方差分析的匯總方法
- R formula 模型公式
- R nls.control 控製 nls 中的迭代
- R aggregate 計算數據子集的匯總統計
- R deriv 簡單表達式的符號和算法導數
- R kruskal.test Kruskal-Wallis 秩和檢驗
- R quade.test 四方測試
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Construct Design Matrices。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。