2017-04-09 40 views
1

我很抱歉,如果這有一個明顯的答案什麼地方,我一直沒能找到一個和我沒有太多與R.R:從模型,封裝樣品數據`ks`

我經歷使用內核平滑包ks來使用kde來產生內核密度估計模型。然後我想對生產的模型進行抽樣。

library(ks) 
data <- read.table("data_file.txt", header=FALSE) 
model <- kde(data) 

然後我不知道如何繼續。我已經閱讀了幫助文檔,但沒有找到必要的功能。

回答

2

單因素情況下

請參閱幫助文檔: https://cran.r-project.org/web/packages/ks/ks.pdf

可以看到dkdepkdeqkderkde作爲同任何 - [R分佈。

rkde(100, model) 

它會從估計分佈產生100個隨機數。

多因素情況下

我很驚訝的發現KS包whick不會直接prodive樣品的方法。無論如何,原則上很容易。您只需首先隨機選擇一個採樣點,然後在其上應用估計的內核噪聲。對於多元正態分佈內核緩慢,但基本的代碼示例:多次

library(mvtnorm) 

rmkde <- function(size,flat){ 
    n <- nrow(flat$x) 
    s <- sample(1:n,size,replace=TRUE) 
    t(apply(flat$x[s,],1,function(mean)rmvnorm(1,mean=mean,sigma=flat$H))) 
} 

rmkde(100, model) 

由於rmvnorm計算相同的矩陣分解,它是緩慢的,你可以從rmvnorm源代碼挑分解加速它。