亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
日韩免费视频一区二区| 日本成人在线电影网| 777午夜精品视频在线播放| 成人黄色在线网站| 国产高清不卡一区二区| 九九在线精品视频| 精品一区中文字幕| 91久久精品网| 久久精品亚洲精品国产欧美| 欧美日韩在线播放一区| 欧美女孩性生活视频| 欧美一区二区不卡视频| 欧美xxxx在线观看| 国产亚洲短视频| 日韩av电影免费观看高清完整版| 91麻豆国产自产在线观看| 欧美性受极品xxxx喷水| 欧美一级在线免费| 亚洲精品国产成人久久av盗摄 | 97精品视频在线观看自产线路二| 成人午夜av电影| 欧美在线一二三四区| 欧美巨大另类极品videosbest | 欧美大片在线观看| 日韩高清在线观看| 欧美丰满高潮xxxx喷水动漫| 亚洲影院久久精品| 久久精品99久久久| 99久久精品久久久久久清纯| 日产国产欧美视频一区精品| 欧美在线一区二区| 成人黄色综合网站| 精品国产免费人成在线观看| 国产欧美视频在线观看| 亚洲精品欧美激情| 一本色道久久综合精品竹菊| 日韩欧美精品在线视频| 日本欧美一区二区三区乱码 | 亚洲精品国产高清久久伦理二区| av在线免费不卡| 欧美一区二区日韩一区二区| 午夜天堂影视香蕉久久| 国产成人综合亚洲网站| 国产欧美一区二区精品性| 懂色av一区二区夜夜嗨| 欧美一区二区三区四区高清| 日韩av高清在线观看| 欧美sm极限捆绑bd| 国产精品一区免费视频| 欧美三级日韩在线| 日韩av一级电影| 精品成人一区二区| 成人网男人的天堂| 亚洲一区在线视频| 欧美一区午夜精品| 国产乱人伦精品一区二区在线观看| 欧美韩日一区二区三区四区| 五月激情综合婷婷| 亚洲综合一区二区精品导航| 欧美剧情片在线观看| 狠狠色丁香久久婷婷综合丁香| 精品视频资源站| 蜜桃精品视频在线| 欧美高清精品3d| 久久av中文字幕片| 中文字幕一区二区三区色视频| 经典三级一区二区| 亚洲同性gay激情无套| 大尺度一区二区| 一区二区三区在线不卡| 94-欧美-setu| 美国毛片一区二区| 成人免费视频在线观看| 日韩一区二区电影在线| 性久久久久久久久久久久| 99re6这里只有精品视频在线观看| 亚洲综合激情另类小说区| 精品久久久影院| 日本伦理一区二区| 精品一区二区三区的国产在线播放| 亚洲欧洲日韩一区二区三区| 这里是久久伊人| 9l国产精品久久久久麻豆| 久久成人免费网站| 亚洲男人电影天堂| 在线影院国内精品| 国产精品一区一区三区| 亚洲成人三级小说| 久久www免费人成看片高清| 亚洲精品中文在线| 久久久精品黄色| 成人美女视频在线观看| 免费观看久久久4p| 欧美精品一区二区三区四区 | 亚洲国产精品成人综合色在线婷婷 | 久久蜜桃一区二区| 欧美精品亚洲二区| 色综合久久88色综合天天 | 欧美国产乱子伦| 欧美不卡激情三级在线观看| 欧美撒尿777hd撒尿| 91亚洲精华国产精华精华液| 国产成人免费视频精品含羞草妖精| 日韩制服丝袜先锋影音| 精品福利一区二区三区免费视频| 欧美日韩一区二区三区四区五区| 成人网在线播放| 国产精品亚洲专一区二区三区| 日本亚洲电影天堂| 丝袜诱惑制服诱惑色一区在线观看 | 欧美变态凌虐bdsm| 欧美一区二区三区免费在线看| 欧美三级日韩三级国产三级| 在线看国产一区二区| 91亚洲精品一区二区乱码| 成人永久看片免费视频天堂| 懂色av一区二区夜夜嗨| a级精品国产片在线观看| 成人午夜激情视频| 丰满亚洲少妇av| zzijzzij亚洲日本少妇熟睡| 成人av网站在线观看免费| eeuss鲁片一区二区三区在线看| 成人午夜免费电影| 91麻豆免费在线观看| 日本韩国欧美国产| 欧美日韩国产另类一区| 欧美久久久久久蜜桃| 欧美一区二区精品久久911| 日韩一级片在线观看| 精品日韩欧美在线| 国产欧美日韩一区二区三区在线观看 | 一区二区三区在线视频播放| 亚洲国产精品久久一线不卡| 一区视频在线播放| 一区二区三区四区在线| 婷婷国产v国产偷v亚洲高清| 久久er99热精品一区二区| 高清不卡在线观看| 91久久精品午夜一区二区| 91精品中文字幕一区二区三区| 2023国产精华国产精品| 欧美一区二区三区日韩视频| 精品国产乱码久久久久久免费| 欧美激情一区在线| 亚洲伊人伊色伊影伊综合网| 久久精品国产网站| 99久久久免费精品国产一区二区| 欧美午夜精品一区二区蜜桃| 亚洲精品在线一区二区| 亚洲欧美偷拍三级| 美脚の诱脚舐め脚责91| 成人18精品视频| 欧美一区二区网站| 国产精品毛片久久久久久| 日本一二三不卡| 午夜精品福利一区二区三区av| 激情综合网天天干| 91亚洲永久精品| 久久综合色婷婷| 一区二区三区免费| 国产毛片精品视频| 国产一二三精品| 欧美无砖专区一中文字| 欧美激情一区二区在线| 日精品一区二区| 99re成人在线| 久久日韩粉嫩一区二区三区| 亚洲高清免费视频| www.亚洲在线| 欧美mv日韩mv国产网站app| 一区二区三区在线视频播放| 懂色av一区二区三区免费看| 欧美一二三四在线| 亚洲男人天堂av网| 国产suv精品一区二区6| 日韩一级二级三级精品视频| 悠悠色在线精品| 成人美女视频在线观看| 久久综合色鬼综合色| 香港成人在线视频| 欧美在线啊v一区| 18成人在线视频| 国产黄色成人av| 欧美成人伊人久久综合网| 偷拍一区二区三区四区| 色一情一伦一子一伦一区| 中日韩av电影| 高清国产午夜精品久久久久久| 精品国产一区二区三区不卡 | 久久精品国内一区二区三区| 欧美精品第1页| 天天综合天天综合色| 欧美日韩视频专区在线播放| 亚洲综合久久久久| 欧美伊人久久久久久午夜久久久久| 亚洲人妖av一区二区| 99久久精品国产精品久久| 国产精品国产三级国产aⅴ中文 | 综合精品久久久|