R語言
toeplitz
位於 stats
包(package)。 說明
在最簡單的使用中,toeplitz()
形成一個給定第一列(或行)的對稱托普利茨矩陣。對於一般情況,不對稱和非方托普利茨矩陣可以通過分別指定第一列和行來形成,
T1 <- toeplitz(col, row)
或通過
T <- toeplitz2(x, nr, nc)
其中僅需要指定 (nr, nc)
之一。在後一種情況下,滿足簡單等價 其中 ncol(T)
。
用法
toeplitz (x, r = NULL, symmetric = is.null(r))
toeplitz2(x, nrow = length(x) +1 - ncol, ncol = length(x) +1 - nrow)
參數
x |
對於 |
r |
目標托普利茨矩陣的第一行;僅在不對稱情況下需要。 |
symmetric |
可選的 |
nrow, ncol |
行數和列數;隻需要指定一項。 |
值
托普利茨矩陣 ;為了
toeplitz()
:-
在對稱情況下
dim(T)
是(n,m)
、m == length(x)
和n == m
,否則是n == length(r)
。 toeplitz2()
:-
dim(T) == c(nrow, ncol)
。
例子
x <- 1:5
toeplitz (x)
T. <- toeplitz (1:5, 11:13) # with a *Warning* x[1] != r[1]
T2 <- toeplitz2(c(13:12, 1:5), 5, 3)# this is the same matrix:
stopifnot(identical(T., T2))
# Matrix of character (could also have logical, raw, complex ..) {also warning}:
noquote(toeplitz(letters[1:4], LETTERS[20:26]))
## A convolution/smoother weight matrix :
m <- 17
k <- length(wts <- c(76, 99, 60, 20, 1))
n <- m-k+1
## Convolution
W <- toeplitz2(c(rep(0, m-k), wts, rep(0, m-k)), ncol=n)
## "display" nicely :
if(requireNamespace("Matrix"))
print(Matrix::Matrix(W)) else {
colnames(W) <- paste0(",", if(n <= 9) 1:n else c(1:9, letters[seq_len(n-9)]))
print(W)
}
## scale W to have column sums 1:
W. <- W / sum(wts)
all.equal(rep(1, ncol(W.)), colSums(W.), check.attributes = FALSE)
## Visualize "mass-preserving" convolution
x <- 1:n; f <- function(x) exp(-((x - .4*n)/3)^2)
y <- f(x) + rep_len(3:-2, n)/10
## Smoothing convolution:
y.hat <- W. %*% y # y.hat := smoothed(y) ("mass preserving" -> longer than y)
stopifnot(length(y.hat) == m, m == n + (k-1))
plot(x,y, type="b", xlim=c(1,m)); curve(f(x), 1,n, col="gray", lty=2, add=TRUE)
lines(1:m, y.hat, col=2, lwd=3)
rbind(sum(y), sum(y.hat)) ## mass preserved
## And, yes, convolve(y, *) does the same when called appropriately:
all.equal(c(y.hat), convolve(y, rev(wts/sum(wts)), type="open"))
作者
A. Trapletti and Martin Maechler (speedup and asymmetric extensions)
相關用法
- R tsdiag 時間序列擬合的診斷圖
- R terms 示範條款
- R ts.plot 繪製多個時間序列
- R ts 時間序列對象
- R terms.object 術語對象的說明
- R tsSmooth 對時間序列使用固定間隔平滑
- R termplot 繪製回歸項
- R time 時間序列的采樣次數
- R ts-methods 時間序列對象的方法
- R ts.union 綁定兩個或多個時間序列
- R tsp 類時間序列對象的 Tsp 屬性
- R t.test 學生 t 檢驗
- R terms.formula 從公式構造術語對象
- R stlmethods STL 對象的方法
- R medpolish 矩陣的中值波蘭(穩健雙向分解)
- 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 decompose 移動平均線的經典季節性分解
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Create Symmetric and Asymmetric Toeplitz Matrix。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。