smooth.construct.sos.smooth.spec
位於 mgcv
包(package)。 說明
gam
可以通過 s(la,lo,bs="sos",m=2,k=100)
等術語在球體上使用各向同性平滑。這樣的平滑必須恰好有 2 個參數。第一個為緯度(以度為單位),第二個為經度(以度為單位)。 m
(默認為 0)是 -1 到 4 範圍內的整數,用於確定所使用的懲罰順序。對於 m>0
, (m+2)/2
是懲罰順序,而 m=2
相當於通常的二階導數懲罰。 m=0
表示在球體上使用二階樣條線,由 Wendelberger (1981) 方法計算。根據 Jean Duchon 未發表的建議,m = -1
導致使用 Duchon.spline
(m=2 且 s=1/2)。
k
(默認 50)是基本尺寸。
用法
## S3 method for class 'sos.smooth.spec'
smooth.construct(object, data, knots)
## S3 method for class 'sos.smooth'
Predict.matrix(object, data)
參數
object |
平滑的規範對象,通常由術語 |
data |
僅包含該術語所需的數據(包括任何 |
knots |
包含為基礎設置提供的任何結的列表 - 與 |
細節
對於 m>0
,此處實現的平滑基於 Wahba (1981) 球體上的偽樣條(1982 年對表 1 進行了更正,但該更正在 A 的定義中存在印刷錯誤 — 中給出的 A 1981 年的論文是正確的)。對於m=0
(默認),則使用球體上的二階樣條,它類似於二維中的二階薄板樣條:計算基於 Wendelberger,1981 年的第 4 章。最佳低階近似通過以下方式獲得正是 Wood (2003) 中給出的方法。對於 m = -1
,使用 Duchon (1977) 中討論的一般類型的平滑:球體嵌入 3D 歐幾裏得空間中,但平滑采用基於二階導數的懲罰(因此,當平滑參數局部趨於零時,我們恢複切線空間上的 "normal" 薄板樣條線)。這是 Jean Duchon 未發表的建議。 m = -2
相同,但具有一階導數懲罰。
請注意,無論懲罰的階數如何,懲罰的零空間始終是球體上常數函數的空間。
這個類有一個plot方法,有3種方案。 scheme==0
繪製球體的一個半球,投影到一個圓上。繪圖球體的北極位於頂部,0 度子午線沿著繪圖的中間延伸並朝向觀察者。通過在觀察球體坐標中指定其極點位置,平滑球體在繪圖球體內旋轉。 theta
、 phi
給出繪圖球內平滑球極點的經度和緯度(在繪圖球坐標中)。 (您可以將平滑球體可視化為一個球體,在固定的透明繪圖球體內自由旋轉。)平滑值由覆蓋有等高線圖的熱圖顯示。還繪製了緯度、經度網格線。
scheme==1
與 scheme==0
相同,但為黑白,沒有圖像圖。 scheme>1
調用默認繪圖方法,scheme
減 2。
值
類 "sos.smooth"
的對象。除了 smooth.construct
下記錄的平滑類的常見元素之外,該對象還將包含:
Xu |
此平滑的唯一協變量組合的矩陣(通過首先刪除重複位置來構建基礎)。 |
UZ |
將降階樣條的參數映射回完整樣條的參數的矩陣。 |
例子
require(mgcv)
set.seed(0)
n <- 400
f <- function(la,lo) { ## a test function...
sin(lo)*cos(la-.3)
}
## generate with uniform density on sphere...
lo <- runif(n)*2*pi-pi ## longitude
la <- runif(3*n)*pi-pi/2
ind <- runif(3*n)<=cos(la)
la <- la[ind];
la <- la[1:n]
ff <- f(la,lo)
y <- ff + rnorm(n)*.2 ## test data
## generate data for plotting truth...
lam <- seq(-pi/2,pi/2,length=30)
lom <- seq(-pi,pi,length=60)
gr <- expand.grid(la=lam,lo=lom)
fz <- f(gr$la,gr$lo)
zm <- matrix(fz,30,60)
require(mgcv)
dat <- data.frame(la = la *180/pi,lo = lo *180/pi,y=y)
## fit spline on sphere model...
bp <- gam(y~s(la,lo,bs="sos",k=60),data=dat)
## pure knot based alternative...
ind <- sample(1:n,100)
bk <- gam(y~s(la,lo,bs="sos",k=60),
knots=list(la=dat$la[ind],lo=dat$lo[ind]),data=dat)
b <- bp
cor(fitted(b),ff)
## plot results and truth...
pd <- data.frame(la=gr$la*180/pi,lo=gr$lo*180/pi)
fv <- matrix(predict(b,pd),30,60)
par(mfrow=c(2,2),mar=c(4,4,1,1))
contour(lom,lam,t(zm))
contour(lom,lam,t(fv))
plot(bp,rug=FALSE)
plot(bp,scheme=1,theta=-30,phi=20,pch=19,cex=.5)
作者
Simon Wood simon.wood@r-project.org, with help from Grace Wahba (m=0 case) and Jean Duchon (m = -1 case).
參考
Wahba, G. (1981) Spline interpolation and smoothing on the sphere. SIAM J. Sci. Stat. Comput. 2(1):5-16
Wahba, G. (1982) Erratum. SIAM J. Sci. Stat. Comput. 3(3):385-386.
Wendelberger, J. (1981) PhD Thesis, University of Winsconsin.
Wood, S.N. (2003) Thin plate regression splines. J.R.Statist.Soc.B 65(1):95-114
也可以看看
相關用法
- R smooth.construct.so.smooth.spec 皂膜平滑劑
- R smooth.construct.sz.smooth.spec GAM 中的約束因子平滑交互
- R smooth.construct.cr.smooth.spec GAM 中的懲罰三次回歸樣條
- R smooth.construct.bs.smooth.spec GAM 中的懲罰 B 樣條
- R smooth.construct.re.smooth.spec GAM 中的簡單隨機效應
- R smooth.construct.mrf.smooth.spec 馬爾可夫隨機場平滑
- R smooth.construct.gp.smooth.spec 低階高斯過程平滑
- R smooth.construct.tp.smooth.spec GAM 中的懲罰薄板回歸樣條
- R smooth.construct.ad.smooth.spec GAM 中的自適應平滑
- R smooth.construct.ds.smooth.spec 低階 Duchon 1977 樣條
- R smooth.construct.fs.smooth.spec GAM 中平滑交互的因子
- R smooth.construct.ps.smooth.spec GAM 中的 P 樣條
- R smooth.construct.tensor.smooth.spec 張量積平滑構造函數
- R smooth.construct.t2.smooth.spec 張量積平滑構造函數
- R smooth.construct GAM 中平滑項的構造函數
- R smooth.info 提供有關平滑規範的額外信息的通用函數
- R smooth.terms GAM 中的平滑術語
- R smooth2random 將平滑轉換為適合估計隨機效應的形式
- R smoothCon GAM 平滑項的預測/構造包裝函數
- R scat 用於重尾數據的 GAM 縮放 t 係列
- R slanczos 計算對稱矩陣的截斷特征分解
- R single.index 具有 mgcv 的單指數模型
- R sp.vcov 從 (RE)ML GAM 擬合中提取平滑參數估計器協方差矩陣
- R shash Sinh-arcsinh 位置比例和形狀模型族
- R s 在 GAM 公式中定義平滑
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Splines on the sphere。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。