資料擬合平滑樣條問題

2021-09-29 04:04:40 字數 691 閱讀 9840

r裡面有平滑樣條函式,一條命令就好了smooth.spline()

比如我們做基因組測序資料時需要將dosage對gc進行校正,那麼

在r中做gc校正就相當簡單:

d <- read.table(flex, colclasses = c("numeric", rep("null",4), "numeric", "numeric"))#其中設定為numeric的三列為純數字染色體號、覆蓋度、和該bin中的gc含量

select_data$depth_cor <- select_data$depth_scale -  smoother(select_data$depth_scale, select_data$gc)

得到的就是校正之後的depth,

重點來關注smoother函式

smoother <- function(depth, gc)

其中depth=f(gc)的擬合只用smooth.spline就可以實現。

但是到了python中卻很難找到對應的函式,僅僅名字相近的interpolate 函式是

from scipy.interpolate import univariatespline as spline 

這個函式,但是其實和r做的還是不同,python相對更加粗一些吧,tm scipy裡面那麼多細分的函式誰能搞清楚,這點遠不如r乙個平滑樣條用的方便

詳細可執行**參考:

平滑樣條法 R

樣條平滑是一種關於一般類的強大而靈活的建模技術,應用包括多項式,週期,球面,薄板,l 和部分樣條,以及更高階模型的概述,包括平滑樣條線anova,擴充套件和廣義平滑樣條anova,向量樣條,非引數非線性回歸,半引數回歸和半引數混合效應模型。樣條 樣條是一種分段的低階多項式逼近函式,可應用於具有不同非...

三次樣條擬合典型例項

對龍格函式在區間 1,1 上取的等距節點,分別作多項式插值 三次樣條插值和三次曲線擬合,畫出及各逼近函式的圖形,比較各結果。1 多項式插值 利用拉格朗日多項式插值的方法,其主要原理是拉格朗日多項式,即 表示待插值函式的個節點,其中 2 三次樣條插值 三次樣條插值有三種方法,在本例中,我們選擇第一邊界...

非均勻B樣條擬合MATLAB程式

直接上 多的不再說了。1 寫乙個base函式 function result bbase i,k,u,t 第i段k次b樣條基,deboor遞推遞迴演算法 t為變數,u i t1 k 0時result 1 if k 0 if u i t t1 注意1 u i t1 1時的情況,這裡要用t u i 1 ...