亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? kde.r

?? r軟件 另一款可以計算核估計的軟件包 需安裝r軟件
?? R
?? 第 1 頁 / 共 2 頁
字號:
###############################################################################
# Multivariate kernel density estimators
###############################################################################


###############################################################################
# Generate grid over a set of points
#
# Parameters
# x - data points
# H - bandwidth matrix
# tol - tolerance = extra coverage exceeding the range of x   
# gridsize - number of points for each direction
#
# Returns
# gridx - list of intervals, one for each co-ord direction so that
#         gridx[[1]] x gridx[[2]] x ... x gridx[[d]] is the grid
# stepsize - vector of step sizes 
###############################################################################

make.grid.ks <- function(x, H, tol, gridsize, xmin, xmax, gridtype)
{
  d <- ncol(x)
  tol.H <-  tol * diag(H)
  if (missing(xmin))
     xmin <- apply(x, 2, min) - tol.H
  if (missing(xmax))
     xmax <- apply(x, 2, max) + tol.H
  
  stepsize <- rep(0, d)
  gridx <- numeric(0)
  if (length(gridsize)==1)
    gridsize <- rep(gridsize, d)

  if (missing(gridtype))
   gridtype <- rep("linear", d)

  gridtype.vec<- rep("", d)
  
  for (i in 1:d)
  {
    gridtype1 <- tolower(substr(gridtype[i],1,1))
    if (gridtype1=="l")
    {  
      gridx <- c(gridx, list(seq(xmin[i], xmax[i], length=gridsize[i])))
      stepsize[i] <- abs(gridx[[i]][1] - gridx[[i]][2])
      gridtype.vec[i] <- "linear"
    }
    else if (gridtype1=="s")
    {
      gridx.temp <- seq(sign(xmin[i])*sqrt(abs(xmin[i])), sign(xmax[i])*sqrt(abs(xmax[i])), length=gridsize[i])
      gridx <- c(gridx, list(sign(gridx.temp) * gridx.temp^2))
      stepsize[i] <- NA
      gridtype.vec[i] <- "sqrt"
    }
  }
  
  gridx <- c(gridx, list(stepsize = stepsize, gridtype=gridtype.vec))
    
  return(gridx)
}  


###############################################################################
# Generate kernel (rectangular) support at data point
# 
# Parameters
# x - data points
# H - bandwidth matrix
# tol - tolerance = extra coverage exceeding the range of x 
#
# Returns
# list of min and max points of support (here we parameterise rectangles
# by their min = lower left co-ord and max = upper right coord)
###############################################################################

make.supp <- function(x, H, tol)
{
  n <- nrow(x)
  d <- ncol(x)
  tol.H <- tol * diag(H)
  xmin <- matrix(0, nr=n, nc=d)
  xmax <- matrix(0, nr=n, nc=d)

  for (i in 1:n)
  {
    xmin[i,] <- x[i,] - tol.H
    xmax[i,] <- x[i,] + tol.H 
  }
           
  return(list(xmin = xmin, xmax = xmax))
}


###############################################################################
# Find the grid points contained in kernel support rectangles 
#
# Parameters
# gridx - grid (list of subdivided intervals)
# rectx - rectangles (list of min and max points) 
#
# Returns
# list of min and max points of the grid for each rectangle 
###############################################################################

find.gridpts <- function(gridx, suppx)
{
  xmax <- suppx$xmax
  xmin <- suppx$xmin
  d <- ncol(xmax)
  n <- nrow(xmax)
  gridpts.min <- matrix(0, nc=d, nr=n)
  gridpts.max <- gridpts.min
  
  for (i in 1:n)
    for (j in 1:d)    
    {
      # find index of last element of gridx smaller than min support  
      tsum <- sum(xmin[i,j] >= gridx[[j]])
      if (tsum==0)
        gridpts.min[i,j] <- 1
      else
        gridpts.min[i,j] <- tsum

      # find index of first element gridx greater than max support 
      gridpts.max[i,j] <- sum(xmax[i,j] >= gridx[[j]])
    }   
        
  return(list(xmin=gridpts.min, xmax=gridpts.max))
} 

###############################################################################
# Multivariate kernel density estimate using normal kernels
#
# Parameters
# x - points
# H - bandwidth matrix
# gridsize - number of interval points in grid
# supp - effective support of kernel
# eval.points - compute density estimate at these points (if missing
#            and dim(x) = 2, 3 compute density estimate over grid)  
# eval.levels - compute 3-D in 2-D slices taken at these level curves   
#
# Returns
# list with first d components with the points that the density
# estimate is evaluated at, and values of the density estimate 
###############################################################################


kde <- function(x, H, h, gridsize, gridtype, xmin, xmax, supp=3.7, eval.points, binned=FALSE, bgridsize,  positive=FALSE, adj.positive)
{
  if (is.vector(x))
  {
    if (missing(H)) d <- 1
    else
    {
      if (is.vector(H)) d <- 1
      else {x <- matrix(x, nrow=1); d <- ncol(x)}
    }
  }
  else d <- ncol(x)

  ## compute binned estimator
  if (binned)
  {
    if (!missing(eval.points))
      stop("Both binned=TRUE and eval.points are non-empty.")
    
    if (missing(bgridsize)) bgridsize <- default.gridsize(d)
    
    if (positive & d==1)
    {
      y <- log(x)
      fhat <- kde.binned(x=y, H=H, h=h, bgridsize=bgridsize, xmin=xmin, xmax=xmax)
      fhat$estimate <- fhat$estimate/exp(fhat$eval.points)
      fhat$eval.points <- exp(fhat$eval.points)
      fhat$x <- x
    }
    else
      fhat <- kde.binned(x=x, H=H, h=h, bgridsize=bgridsize, xmin=xmin, xmax=xmax)
  }
  else
  {
    ## compute exact (non-binned) estimator
    if (missing(gridsize)) gridsize <- default.gridsize(d)
    
    ## 1-dimensional    
    if (d==1)
    {
      if (!missing(H) & !missing(h))
        stop("Both H and h are both specified.")

      if (missing(h))
        h <- sqrt(H)

      if (missing(eval.points))
        fhat <- kde.grid.1d(x=x, h=h, gridsize=gridsize, supp=supp, positive=positive, xmin=xmin, xmax=xmax, adj.positive=adj.positive, gridtype=gridtype)
       else
         fhat <- kde.points.1d(x=x, h=h, eval.points=eval.points, positive=positive, adj.positive=adj.positive)
     }
     ## multi-dimensional
     else
     {  
       if (is.data.frame(x)) x <- as.matrix(x)

       if (missing(eval.points))
       {
         if (d==2)
           fhat <- kde.grid.2d(x=x, H=H, gridsize=gridsize, supp=supp, xmin=xmin, xmax=xmax, gridtype=gridtype)
         else if (d == 3)
           fhat <- kde.grid.3d(x=x, H=H, gridsize=gridsize, supp=supp, xmin=xmin, xmax=xmax, gridtype=gridtype) 
         else 
           stop("Need to specify eval.points for more than 3 dimensions")
       }
       else
         fhat <- kde.points(x, H, eval.points)
     }

   }

   fhat$binned <- binned
   ##fhat$gridtype <- gridtype

  ## add variable names
  if (d==1)
  {
    x.names <- deparse(substitute(x))
  }
  else
  {  
    x.names <- colnames(x)
    if (is.null(x.names))
    {
      x.names <- strsplit(deparse(substitute(x)), "\\[")[[1]][1]
      x.names <- paste(x.names, "[,", 1:d,"]",sep="") 
    }
  }
  fhat$names <- x.names
  class(fhat) <- "kde"
  

  return(fhat)
 }

###############################################################################
### Multivariate binned kernel density estimate using normal kernels
###############################################################################


kde.binned <- function(x, H, h, bgridsize, xmin, xmax, bin.par)
{
  ## linear binning
  if (missing(bin.par))
  {
    if (is.vector(x)) d <- 1
    else d <- ncol(x)

    if (d==1)
      if (missing(H)) H <- as.matrix(h^2)
      else {h <- sqrt(H); H <- as.matrix(H)}

    if (!is.diagonal(H) & d > 1)
      stop("Binned estimation defined for diagonal H only")
     
    if (missing(bgridsize)) bgridsize <- default.gridsize(d)
    bin.par <- binning(x=x, H=H, h, bgridsize, xmin, xmax, supp=3.7)
  }
  else
  {
    if (!is.list(bin.par$eval.points)) { d <- 1; bgridsize <- length(bin.par$eval.points)}
    else  { d <- length(bin.par$eval.points); bgridsize <- sapply(bin.par$eval.points, length)} 

    if (d==1)
      if (missing(H)) H <- as.matrix(h^2)
      else {h <- sqrt(H); H <- as.matrix(H)}
  }
  
  if (d==1)
    range.x <- list(range(bin.par$eval.points))
  else
    range.x <- lapply(bin.par$eval.points, range)
  
  fhat.grid <- drvkde(x=bin.par$counts, drv=rep(0,d), bandwidth=sqrt(diag(H)), binned=TRUE, range.x=range.x, se=FALSE, gridsize=bgridsize)
  eval.points <- fhat.grid$x.grid
  fhat.grid <- fhat.grid$est
  fhat.grid[fhat.grid<0] <- 0
  
  if (missing(x)) x <- NULL
  
  if (d==1)
     fhat <- list(x=x, eval.points=unlist(eval.points), estimate=fhat.grid, H=h^2, h=h)
  else
    fhat <- list(x=x, eval.points=eval.points, estimate=fhat.grid, H=H)

  return(fhat)
}


 #############################################################################
 ## Univariate kernel density estimate on a grid
 #############################################################################

 kde.grid.1d <- function(x, h, gridsize, supp=3.7, positive=FALSE, adj.positive, xmin, xmax, gridtype)
 {
   if (missing(xmin)) xmin <- min(x) - h*supp
   if (missing(xmax)) xmax <- max(x) + h*supp
   if (missing(gridtype)) gridtype <- "linear"
   
   if (positive)
   {
     if (missing(adj.positive)) adj.positive <- abs(min(x))
     y <- log(x + adj.positive)  ## transform positive data x to real line

     gridx <- seq(max(0, xmin), xmax, length=gridsize)
     gridy <- log(gridx + adj.positive)
     gridtype.vec <- "linear" 
   }
   else
   {
     y <- x
     gridtype1 <- tolower(substr(gridtype,1,1))
     if (gridtype1=="l")
     {
       gridy <- seq(xmin, xmax, length=gridsize)
       gridtype.vec <- "linear"
     }
     else if (gridtype1=="s")
     {
       gridy.temp <- seq(sign(xmin)*sqrt(abs(xmin)), sign(xmax)*sqrt(abs(xmax)), length=gridsize)
       gridy <- sign(gridy.temp) * gridy.temp^2
       gridtype.vec <- "sqrt"
     }
   }
   n <- length(y)
 
   est <- dnorm.mixt(x=gridy, mus=y, sigmas=rep(h, n), props=rep(1,n)/n)
   fhat <- list(x=y, eval.points=gridy, estimate=est, h=h, H=h^2, gridtype=gridtype.vec)
 
   if (positive)
   {
     ## compute transformation KDE
     fhat$estimate <- fhat$estimate / exp(gridy)
     fhat$x <- x
     fhat$eval.points <- gridx # exp(gridy) - adj.positive
   }
   
   class(fhat) <- "kde"
   
   return(fhat)
}

###############################################################################
# Bivariate kernel density estimate using normal kernels, evaluated over grid
#
# Parameters
# x - data points
# H - bandwidth matrix
# gridsize - number of interval points in grid
# supp - effective support of kernel
#
# Returns
# list with fields
# x - data points
# eval.points - points that KDE is evaluated at
# estimate - KDE evaluated at eval.points 
# H - bandwidth matrix 
###############################################################################

kde.grid.2d <- function(x, H, gridsize, supp, gridx=NULL, grid.pts=NULL, xmin, xmax, gridtype)
{
  # initialise grid 
  n <- nrow(x)
  if (is.null(gridx))
    gridx <- make.grid.ks(x, matrix.sqrt(H), tol=supp, gridsize=gridsize, xmin=xmin, xmax=xmax, gridtype=gridtype) 
       
  suppx <- make.supp(x, matrix.sqrt(H), tol=supp)

  if (is.null(grid.pts))
    grid.pts <- find.gridpts(gridx, suppx)    
  fhat.grid <- matrix(0, nrow=length(gridx[[1]]), ncol=length(gridx[[2]]))

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区四区五区中文| 午夜影视日本亚洲欧洲精品| 亚洲人成网站在线| 全部av―极品视觉盛宴亚洲| av亚洲产国偷v产偷v自拍| 欧美岛国在线观看| 一区二区激情小说| 波多野结衣精品在线| 日韩无一区二区| 亚洲第一会所有码转帖| www.亚洲色图.com| 久久色.com| 日产国产欧美视频一区精品| 91久久久免费一区二区| 国产精品久久综合| 国产成人午夜电影网| 日韩一区二区在线免费观看| 亚洲伊人色欲综合网| 色婷婷久久综合| 亚洲女人小视频在线观看| 国产乱子伦一区二区三区国色天香| 国产在线国偷精品产拍免费yy| 91一区二区三区在线观看| 久久综合色一综合色88| 日本伊人精品一区二区三区观看方式| 97久久精品人人爽人人爽蜜臀| www一区二区| 麻豆国产精品视频| 日韩一区二区三区在线| 日韩电影一区二区三区| 337p亚洲精品色噜噜狠狠| 亚洲成人自拍网| 精品视频在线免费看| 亚洲h动漫在线| 欧美日韩精品福利| 欧美aaaaaa午夜精品| 欧美xxxx老人做受| 国产原创一区二区| 中文字幕中文在线不卡住| bt欧美亚洲午夜电影天堂| 亚洲欧洲三级电影| 亚洲激情成人在线| 日韩福利视频网| 欧美一区二区三区色| 日韩av一区二区三区四区| 日韩欧美精品在线视频| 精品一区二区三区在线播放| 精品国产一区二区三区久久影院| 日本成人中文字幕在线视频| 欧美成人在线直播| 国产aⅴ综合色| 亚洲免费色视频| 在线不卡a资源高清| 老司机精品视频导航| 国产午夜精品一区二区三区四区| 成人在线综合网站| 亚洲美女精品一区| 欧美一区二区三区成人| 久久激五月天综合精品| 久久九九国产精品| 色狠狠色噜噜噜综合网| 中文字幕一区日韩精品欧美| 国产高清无密码一区二区三区| 亚洲天堂av老司机| 日韩一区二区在线观看视频| 高清av一区二区| 午夜精品久久久久久久99水蜜桃| 精品欧美久久久| 波多野结衣一区二区三区| 日韩专区欧美专区| 国产精品人妖ts系列视频| 欧美三级中文字幕| 国产一区999| 亚洲综合清纯丝袜自拍| 精品国产1区二区| 在线亚洲人成电影网站色www| 久久草av在线| 樱桃视频在线观看一区| 久久色在线视频| 精品污污网站免费看| 国产成人aaa| 天天色图综合网| 国产精品国产精品国产专区不蜜| 91精品国产高清一区二区三区蜜臀 | 国产精品五月天| 欧美久久一二区| 一本色道久久综合狠狠躁的推荐| 国内成人自拍视频| 日日夜夜一区二区| 亚洲欧洲综合另类在线| 久久久久久久久久美女| 制服视频三区第一页精品| 91老司机福利 在线| 国产乱人伦精品一区二区在线观看| 午夜精品福利在线| 亚洲免费在线视频| 国产午夜精品福利| 久久综合久久综合久久| 这里只有精品电影| 欧美色区777第一页| 99久久99久久免费精品蜜臀| 国产成人欧美日韩在线电影 | 国产精品卡一卡二| 久久一二三国产| 精品91自产拍在线观看一区| 日韩欧美一级二级| 91麻豆精品国产自产在线观看一区 | 成人av第一页| 国产高清不卡二三区| 国产精品中文字幕一区二区三区| 美女精品自拍一二三四| 全部av―极品视觉盛宴亚洲| 图片区日韩欧美亚洲| 亚洲第一福利视频在线| 亚洲成人在线网站| 日韩一区精品字幕| 老司机精品视频导航| 久久69国产一区二区蜜臀| 久久综合综合久久综合| 麻豆国产欧美日韩综合精品二区 | 麻豆国产精品官网| 久久99九九99精品| 国产精品一区在线| av电影在线观看完整版一区二区| eeuss鲁片一区二区三区在线观看| av在线播放成人| 欧美伊人久久久久久久久影院| 欧美欧美欧美欧美| 欧美成人艳星乳罩| 欧美国产成人精品| 亚洲免费观看高清完整版在线| 亚洲精品欧美在线| 日韩av电影天堂| 国产美女视频一区| 91影院在线观看| 在线成人av网站| 久久久久久久久99精品| 亚洲视频综合在线| 丝袜a∨在线一区二区三区不卡 | 久久国产精品免费| 成人深夜福利app| 欧美伊人久久久久久久久影院| 日韩欧美国产精品| 国产精品免费看片| 亚洲国产色一区| 国产精品白丝av| 在线观看日韩电影| 久久久99精品久久| 亚洲成人激情社区| 国产福利精品导航| 精品视频一区三区九区| 国产欧美日韩麻豆91| 亚洲一区二区三区中文字幕| 狠狠色综合色综合网络| 在线亚洲高清视频| 久久久亚洲精品一区二区三区| 日韩美女啊v在线免费观看| 欧美a级理论片| 91丨九色丨黑人外教| 日韩亚洲国产中文字幕欧美| 亚洲美女偷拍久久| 韩国成人精品a∨在线观看| 日本高清不卡在线观看| 久久久久久99久久久精品网站| 亚洲精品中文字幕乱码三区| 精品一区二区免费看| 欧美日韩综合在线| 椎名由奈av一区二区三区| 国模冰冰炮一区二区| 69成人精品免费视频| 亚洲三级理论片| 国产精品亚洲一区二区三区妖精| 欧美日韩一本到| 亚洲精品国产a| 北条麻妃国产九九精品视频| 欧美精品一区二区三区一线天视频| 亚洲一区在线视频观看| 99久久国产综合精品麻豆| 国产午夜精品福利| 激情综合一区二区三区| 欧美一区二区女人| 亚洲aⅴ怡春院| 在线亚洲一区二区| 亚洲人午夜精品天堂一二香蕉| 国产伦精品一区二区三区免费 | 奇米影视一区二区三区小说| 欧洲日韩一区二区三区| 亚洲天堂久久久久久久| 成人美女在线视频| 国产欧美精品一区| 丰满放荡岳乱妇91ww| 国产目拍亚洲精品99久久精品| 国产伦精品一区二区三区视频青涩 | 亚洲靠逼com| 99精品国产99久久久久久白柏| 国产欧美日韩在线观看| 国产suv一区二区三区88区| 精品国产成人系列| 狠狠色伊人亚洲综合成人| 精品国产免费一区二区三区四区|