Multi-dimensional Functional Principal Component Analysis
- Numpy
- Scipy
- Numba
- Arrayfire
Note: You also need to have the ArrayFire C/C++ library installed on your machine.You can get it from the following sources.
-
Lpr: 此函式為LLR的實現方法,其帶寬可由CV_Partition函式決定。
Lpr(x, y, x0, h, binning = True, bin_weight = True, ker_fun = 'Epan', dtype = 'f4')
- 參數輸入:
- x : (N * d) 陣列,觀測點。
- y : 元素個數為N的向量,觀測值。
- x0 : 的陣列,估計點。
- h : 元素個數為d的向量,由使用者輸入一代寬,此帶寬為估計時選用的帶寬。若要進行帶寬選擇,可呼叫CV_Partition函式來選取適當的帶寬。
- binning : 布林值。選擇在進行LLR估計時,是否將資料合併到格點上,預設為True。
- bin_weight : 布林值。當資料合併時,是否進行線性合併,預設為True。
- ker_fun : 字串,預設為'Epan'。LLR估計時選用的核函數,僅提供Epanechnikov及高斯核函數。
- dtype: 字串,預設為'f4'。在進行GPU通用運算時,由於雙浮點數計算速度較慢,因此提供此參數讓使用者選用計算時浮點數的精準度。
- 參數輸出: 一組元素個數為的向量,依照輸入參數x0格點順序所得的函數點估計值。
- 參數輸入:
-
CV_Partition: 此函式為選取帶寬的實現方法,用於LLR估計。
CV_Partition(x, y, x0, h, n_train = None, binning = True, bin_weight = True, ker_fun = 'Epan')
-
Fpca:假設有N組觀測函數,每組觀測函數上有個點,維度為d維,為估計點在每個維度上的格點數量。
Fpca(x, y, x0, h_mean, h_cov, h_cov_dia, fve = 0.85, binning = True, bin_weight = True, ker_fun = 'Epan', bw_select = 'Partition', dtype = 'f4')
- 參數輸入:
- x : 元素個數為N的list,list裡面為( * d)陣列,觀測點。
- y : 元素個數為N的list,list裡面為陣列,觀測值。
- x0: 的陣列,估計點。
- h_mean : (n * d)陣列,估計平均函數的候選帶寬。
- h_cov : (n * 2d)陣列,估計共變異數函數的候選帶寬。
- h_cov_dia : (n * d)陣列,估計誤差的變異數的候選帶寬。
- fve : 0 到 1 之間的浮點數,在選取前K組特徵對時的準則,預設為0.85。
- binning: 布林值。選擇在進行LLR估計時,是否將資料合併到格點上,預設為True。
- bin_weight: 布林值。當資料合併時,是否進行線性合併,預設為True。
- ker_fun: 字串,預設為'Epan'。LLR估計時選用的核函數,僅提供Epanechnikov及高斯核函數。
- bw_select: 字串,預設為'Partition'。LLR選擇帶寬的準則。
- 'Partition': 將資料切分成訓練集和驗證集,由驗證集估算均方誤差。
- 'LeaveOneOut': 使用留一曲線交叉驗證法,只隨機抽出100條曲線做驗證,若觀測函數小於100時則全選取。
- dtype: 字串,預設為'f4'。在進行GPU通用運算時,由於雙浮點數計算速度較慢,因此提供此參數讓使用者選用計算時浮點數的精準度。
- 'f4':單精度浮點數。
- 'f8':雙精度浮點數。
- 輸出會產生fpca物件,其物件的成員變數有:
- mean_fun: 陣列,由LLR估計的平均函數。
- cov_fun: 陣列,由LLR估計的共變異數函數。
- cov_dia: 陣列,由LLR估計在共變異數函數對腳線上的曲線。
- num_eig_pairs: 正整數,由FVE選取的前$K$組特徵對。
- eig_fun: 陣列,K = num_eig_pairs,經由變異數函數得到的前K組特徵函數。
- fpc_scores: (N * K)陣列,K = num_eig_pairs,將函數投影在特徵函數上的主成份分數。
- sigma2: 浮點數,為誤差變異數的估計值。
- mean_bw: d維向量,估計平均函數時選用的帶寬。
- cov_bw: 2 * d維向量,估計共變異函數時選用的帶寬。
- cov_dia_bw: d維向量,估計誤差變異數時選用的帶寬。
- 參數輸入: