Title: | Kernel Density Estimation for Heaped and Rounded Data |
---|---|
Description: | In self-reported or anonymised data the user often encounters heaped data, i.e. data which are rounded (to a possibly different degree of coarseness). While this is mostly a minor problem in parametric density estimation the bias can be very large for non-parametric methods such as kernel density estimation. This package implements a partly Bayesian algorithm treating the true unknown values as additional parameters and estimates the rounding parameters to give a corrected kernel density estimate. It supports various standard bandwidth selection methods. Varying rounding probabilities (depending on the true value) and asymmetric rounding is estimable as well: Gross, M. and Rendtel, U. (2016) (<doi:10.1093/jssam/smw011>). Additionally, bivariate non-parametric density estimation for rounded data, Gross, M. et al. (2016) (<doi:10.1111/rssa.12179>), as well as data aggregated on areas is supported. |
Authors: | Marcus Gross [aut, cre], Lukas Fuchs [aut], Kerstin Erfurth [ctb] |
Maintainer: | Marcus Gross <[email protected]> |
License: | GPL-2 | GPL-3 |
Version: | 2.3.0 |
Built: | 2025-01-26 06:50:42 UTC |
Source: | CRAN |
Create heaped data for Simulation
createSim.Kernelheaping( n, distribution, rounds, thresholds, offset = 0, downbias = 0.5, Beta = 0, ... )
createSim.Kernelheaping( n, distribution, rounds, thresholds, offset = 0, downbias = 0.5, Beta = 0, ... )
n |
sample size |
distribution |
name of the distribution where random sampling is available, e.g. "norm" |
rounds |
rounding values |
thresholds |
rounding thresholds (for Beta=0) |
offset |
certain value added to all observed random samples |
downbias |
bias parameter |
Beta |
acceleration paramter |
... |
additional attributes handed over to "rdistribution" (i.e. rnorm, rgamma,..) |
List of heaped values, true values and input parameters
Bivariate kernel density estimation for rounded data
dbivr( xrounded, roundvalue, burnin = 2, samples = 5, adaptive = FALSE, gridsize = 200 )
dbivr( xrounded, roundvalue, burnin = 2, samples = 5, adaptive = FALSE, gridsize = 200 )
xrounded |
rounded values from which to estimate bivariate density, matrix with 2 columns (x,y) |
roundvalue |
rounding value (side length of square in that the true value lies around the rounded one) |
burnin |
burn-in sample size |
samples |
sampling iteration size |
adaptive |
set to TRUE for adaptive bandwidth |
gridsize |
number of evaluation grid points |
The function returns a list object with the following objects (besides all input objects):
Mestimates |
kde object containing the corrected density estimate |
gridx |
Vector Grid on which density is evaluated (x) |
gridy |
Vector Grid on which density is evaluated (y) |
resultDensity |
Array with Estimated Density for each iteration |
resultX |
Matrix of true latent values X estimates |
delaigle |
Matrix of Delaigle estimator estimates |
# Create Mu and Sigma ----------------------------------------------------------- mu1 <- c(0, 0) mu2 <- c(5, 3) mu3 <- c(-4, 1) Sigma1 <- matrix(c(4, 3, 3, 4), 2, 2) Sigma2 <- matrix(c(3, 0.5, 0.5, 1), 2, 2) Sigma3 <- matrix(c(5, 4, 4, 6), 2, 2) # Mixed Normal Distribution ------------------------------------------------------- mus <- rbind(mu1, mu2, mu3) Sigmas <- rbind(Sigma1, Sigma2, Sigma3) props <- c(1/3, 1/3, 1/3) ## Not run: xtrue=rmvnorm.mixt(n=1000, mus=mus, Sigmas=Sigmas, props=props) roundvalue=2 xrounded=plyr::round_any(xtrue,roundvalue) est <- dbivr(xrounded,roundvalue=roundvalue,burnin=5,samples=10) #Plot corrected and Naive distribution plot(est,trueX=xtrue) #for comparison: plot true density dens=dmvnorm.mixt(x=expand.grid(est$Mestimates$eval.points[[1]],est$Mestimates$eval.points[[2]]), mus=mus, Sigmas=Sigmas, props=props) dens=matrix(dens,nrow=length(est$gridx),ncol=length(est$gridy)) contour(dens,x=est$Mestimates$eval.points[[1]],y=est$Mestimates$eval.points[[2]], xlim=c(min(est$gridx),max(est$gridx)),ylim=c(min(est$gridy),max(est$gridy)),main="True Density") ## End(Not run)
# Create Mu and Sigma ----------------------------------------------------------- mu1 <- c(0, 0) mu2 <- c(5, 3) mu3 <- c(-4, 1) Sigma1 <- matrix(c(4, 3, 3, 4), 2, 2) Sigma2 <- matrix(c(3, 0.5, 0.5, 1), 2, 2) Sigma3 <- matrix(c(5, 4, 4, 6), 2, 2) # Mixed Normal Distribution ------------------------------------------------------- mus <- rbind(mu1, mu2, mu3) Sigmas <- rbind(Sigma1, Sigma2, Sigma3) props <- c(1/3, 1/3, 1/3) ## Not run: xtrue=rmvnorm.mixt(n=1000, mus=mus, Sigmas=Sigmas, props=props) roundvalue=2 xrounded=plyr::round_any(xtrue,roundvalue) est <- dbivr(xrounded,roundvalue=roundvalue,burnin=5,samples=10) #Plot corrected and Naive distribution plot(est,trueX=xtrue) #for comparison: plot true density dens=dmvnorm.mixt(x=expand.grid(est$Mestimates$eval.points[[1]],est$Mestimates$eval.points[[2]]), mus=mus, Sigmas=Sigmas, props=props) dens=matrix(dens,nrow=length(est$gridx),ncol=length(est$gridy)) contour(dens,x=est$Mestimates$eval.points[[1]],y=est$Mestimates$eval.points[[2]], xlim=c(min(est$gridx),max(est$gridx)),ylim=c(min(est$gridy),max(est$gridy)),main="True Density") ## End(Not run)
Kernel density estimation for classified data
dclass( xclass, burnin = 2, samples = 5, boundary = FALSE, bw = "nrd0", evalpoints = 200, adjust = 1, dFunc = NULL )
dclass( xclass, burnin = 2, samples = 5, boundary = FALSE, bw = "nrd0", evalpoints = 200, adjust = 1, dFunc = NULL )
xclass |
classified values; matrix with two columns: lower and upper value |
burnin |
burn-in sample size |
samples |
sampling iteration size |
boundary |
TRUE for positive only data (no positive density for negative values) |
bw |
bandwidth selector method, defaults to "nrd0" see |
evalpoints |
number of evaluation grid points |
adjust |
as in |
dFunc |
character optional density (with "d", "p" and "q" functions) function name for parametric estimation such as "norm" "gamma" or "lnorm" |
The function returns a list object with the following objects (besides all input objects):
Mestimates |
kde object containing the corrected density estimate |
gridx |
Vector Grid on which density is evaluated |
resultDensity |
Matrix with Estimated Density for each iteration |
resultX |
Matrix of true latent values X estimates |
x=rlnorm(500, meanlog = 8, sdlog = 1) classes <- c(0,500,1000,1500,2000,2500,3000,4000,5000,6000,8000,10000,15000,Inf) xclass <- cut(x,breaks=classes) xclass <- cbind(classes[as.numeric(xclass)], classes[as.numeric(xclass) + 1]) densityEst <- dclass(xclass=xclass, burnin=20, samples=50, evalpoints=1000) plot(densityEst$Mestimates~densityEst$gridx ,lwd=2, type = "l")
x=rlnorm(500, meanlog = 8, sdlog = 1) classes <- c(0,500,1000,1500,2000,2500,3000,4000,5000,6000,8000,10000,15000,Inf) xclass <- cut(x,breaks=classes) xclass <- cbind(classes[as.numeric(xclass)], classes[as.numeric(xclass) + 1]) densityEst <- dclass(xclass=xclass, burnin=20, samples=50, evalpoints=1000) plot(densityEst$Mestimates~densityEst$gridx ,lwd=2, type = "l")
Kernel density estimation for heaped data
dheaping( xheaped, rounds, burnin = 5, samples = 10, setBias = FALSE, weights = NULL, bw = "nrd0", boundary = FALSE, unequal = FALSE, random = FALSE, adjust = 1, recall = F, recallParams = c(1/3, 1/3) )
dheaping( xheaped, rounds, burnin = 5, samples = 10, setBias = FALSE, weights = NULL, bw = "nrd0", boundary = FALSE, unequal = FALSE, random = FALSE, adjust = 1, recall = F, recallParams = c(1/3, 1/3) )
xheaped |
heaped values from which to estimate density of x |
rounds |
rounding values, numeric vector of length >=1 |
burnin |
burn-in sample size |
samples |
sampling iteration size |
setBias |
if TRUE a rounding Bias parameter is estimated. For values above 0.5, the respondents are more prone to round down, while for values < 0.5 they are more likely to round up |
weights |
optional numeric vector of sampling weights |
bw |
bandwidth selector method, defaults to "nrd0" see |
boundary |
TRUE for positive only data (no positive density for negative values) |
unequal |
if TRUE a probit model is fitted for the rounding probabilities with log(true value) as regressor |
random |
if TRUE a random effect probit model is fitted for rounding probabilities |
adjust |
as in |
recall |
if TRUE a recall error is introduced to the heaping model |
recallParams |
recall error model parameters expression(nu) and expression(eta). Default is c(1/3, 1/3) |
The function returns a list object with the following objects (besides all input objects):
meanPostDensity |
Vector of Mean Posterior Density |
gridx |
Vector Grid on which density is evaluated |
resultDensity |
Matrix with Estimated Density for each iteration |
resultRR |
Matrix with rounding probability threshold values for each iteration (on probit scale) |
resultBias |
Vector with estimated Bias parameter for each iteration |
resultBeta |
Vector with estimated Beta parameter for each iteration |
resultX |
Matrix of true latent values X estimates |
#Simple Rounding ---------------------------------------------------------- xtrue=rnorm(3000) xrounded=round(xtrue) est <- dheaping(xrounded,rounds=1,burnin=20,samples=50) plot(est,trueX=xtrue) ##################### #####Heaping ##################### #Real Data Example ---------------------------------------------------------- # Student learning hours per week data(students) xheaped <- as.numeric(na.omit(students$StudyHrs)) ## Not run: est <- dheaping(xheaped,rounds=c(1,2,5,10), boundary=TRUE, unequal=TRUE,burnin=20,samples=50) plot(est) summary(est) ## End(Not run) #Simulate Data ---------------------------------------------------------- Sim1 <- createSim.Kernelheaping(n=500, distribution="norm",rounds=c(1,10,100), thresholds=c(-0.5244005, 0.5244005), sd=100) ## Not run: est <- dheaping(Sim1$xheaped,rounds=Sim1$rounds) plot(est,trueX=Sim1$x) ## End(Not run) #Biased rounding Sim2 <- createSim.Kernelheaping(n=500, distribution="gamma",rounds=c(1,2,5,10), thresholds=c(-1.2815516, -0.6744898, 0.3853205),downbias=0.2, shape=4,scale=8,offset=45) ## Not run: est <- dheaping(Sim2$xheaped, rounds=Sim2$rounds, setBias=T, bw="SJ") plot(est, trueX=Sim2$x) summary(est) tracePlots(est) ## End(Not run) Sim3 <- createSim.Kernelheaping(n=500, distribution="gamma",rounds=c(1,2,5,10), thresholds=c(1.84, 2.64, 3.05), downbias=0.75, Beta=-0.5, shape=4, scale=8) ## Not run: est <- dheaping(Sim3$xheaped,rounds=Sim3$rounds,boundary=TRUE,unequal=TRUE,setBias=T) plot(est,trueX=Sim3$x) ## End(Not run)
#Simple Rounding ---------------------------------------------------------- xtrue=rnorm(3000) xrounded=round(xtrue) est <- dheaping(xrounded,rounds=1,burnin=20,samples=50) plot(est,trueX=xtrue) ##################### #####Heaping ##################### #Real Data Example ---------------------------------------------------------- # Student learning hours per week data(students) xheaped <- as.numeric(na.omit(students$StudyHrs)) ## Not run: est <- dheaping(xheaped,rounds=c(1,2,5,10), boundary=TRUE, unequal=TRUE,burnin=20,samples=50) plot(est) summary(est) ## End(Not run) #Simulate Data ---------------------------------------------------------- Sim1 <- createSim.Kernelheaping(n=500, distribution="norm",rounds=c(1,10,100), thresholds=c(-0.5244005, 0.5244005), sd=100) ## Not run: est <- dheaping(Sim1$xheaped,rounds=Sim1$rounds) plot(est,trueX=Sim1$x) ## End(Not run) #Biased rounding Sim2 <- createSim.Kernelheaping(n=500, distribution="gamma",rounds=c(1,2,5,10), thresholds=c(-1.2815516, -0.6744898, 0.3853205),downbias=0.2, shape=4,scale=8,offset=45) ## Not run: est <- dheaping(Sim2$xheaped, rounds=Sim2$rounds, setBias=T, bw="SJ") plot(est, trueX=Sim2$x) summary(est) tracePlots(est) ## End(Not run) Sim3 <- createSim.Kernelheaping(n=500, distribution="gamma",rounds=c(1,2,5,10), thresholds=c(1.84, 2.64, 3.05), downbias=0.75, Beta=-0.5, shape=4, scale=8) ## Not run: est <- dheaping(Sim3$xheaped,rounds=Sim3$rounds,boundary=TRUE,unequal=TRUE,setBias=T) plot(est,trueX=Sim3$x) ## End(Not run)
3d Kernel density estimation for data classified in polygons or shapes
dshape3dProp( data, burnin = 2, samples = 5, shapefile, gridsize = 200, boundary = FALSE, deleteShapes = NULL, fastWeights = TRUE, numChains = 1, numThreads = 1 )
dshape3dProp( data, burnin = 2, samples = 5, shapefile, gridsize = 200, boundary = FALSE, deleteShapes = NULL, fastWeights = TRUE, numChains = 1, numThreads = 1 )
data |
data.frame with 5 columns: x-coordinate, y-coordinate (i.e. center of polygon) and number of observations in area for partial population and number of observations for complete observations and third variable (numeric). |
burnin |
burn-in sample size |
samples |
sampling iteration size |
shapefile |
shapefile with number of polygons equal to nrow(data) / length(unique(data[,5])) |
gridsize |
number of evaluation grid points |
boundary |
boundary corrected kernel density estimate? |
deleteShapes |
shapefile containing areas without observations |
fastWeights |
if TRUE weigths for boundary estimation are only computed for first 10 percent of samples to speed up computation |
numChains |
number of chains of SEM algorithm |
numThreads |
number of threads to be used (only applicable if more than one chains) |
Bivariate Kernel density estimation for data classified in polygons or shapes
dshapebivr( data, burnin = 2, samples = 5, adaptive = FALSE, shapefile, gridsize = 200, boundary = FALSE, deleteShapes = NULL, fastWeights = TRUE, numChains = 1, numThreads = 1 )
dshapebivr( data, burnin = 2, samples = 5, adaptive = FALSE, shapefile, gridsize = 200, boundary = FALSE, deleteShapes = NULL, fastWeights = TRUE, numChains = 1, numThreads = 1 )
data |
data.frame with 3 columns: x-coordinate, y-coordinate (i.e. center of polygon) and number of observations in area. |
burnin |
burn-in sample size |
samples |
sampling iteration size |
adaptive |
TRUE for adaptive kernel density estimation |
shapefile |
shapefile with number of polygons equal to nrow(data) |
gridsize |
number of evaluation grid points |
boundary |
boundary corrected kernel density estimate? |
deleteShapes |
shapefile containing areas without observations |
fastWeights |
if TRUE weigths for boundary estimation are only computed for first 10 percent of samples to speed up computation |
numChains |
number of chains of SEM algorithm |
numThreads |
number of threads to be used (only applicable if more than one chains) |
The function returns a list object with the following objects (besides all input objects):
Mestimates |
kde object containing the corrected density estimate |
gridx |
Vector Grid of x-coordinates on which density is evaluated |
gridy |
Vector Grid of y-coordinates on which density is evaluated |
resultDensity |
Matrix with Estimated Density for each iteration |
resultX |
Matrix of true latent values X estimates |
## Not run: library(maptools) # Read Shapefile of Berlin Urban Planning Areas (download available from: # https://www.statistik-berlin-brandenburg.de/opendata/RBS_OD_LOR_2015_12.zip) Berlin <- rgdal::readOGR("X:/SomeDir/RBS_OD_LOR_2015_12.shp") #(von daten.berlin.de) # Get Dataset of Berlin Population (download available from: # https://www.statistik-berlin-brandenburg.de/opendata/EWR201512E_Matrix.csv) data <- read.csv2("X:/SomeDir/EWR201512E_Matrix.csv") # Form Dataset for Estimation Process dataIn <- cbind(t(sapply(1:length(Berlin@polygons), function(x) Berlin@polygons[[x]]@labpt)), data$E_E65U80) #Estimate Bivariate Density Est <- dshapebivr(data = dataIn, burnin = 5, samples = 10, adaptive = FALSE, shapefile = Berlin, gridsize = 325, boundary = TRUE) ## End(Not run) # Plot Density over Area: ## Not run: breaks <- seq(1E-16,max(Est$Mestimates$estimate),length.out = 20) image.plot(x=Est$Mestimates$eval.points[[1]],y=Est$Mestimates$eval.points[[2]], z=Est$Mestimates$estimate, asp=1, breaks = breaks, col = colorRampPalette(brewer.pal(9,"YlOrRd"))(length(breaks)-1)) plot(Berlin, add=TRUE) ## End(Not run)
## Not run: library(maptools) # Read Shapefile of Berlin Urban Planning Areas (download available from: # https://www.statistik-berlin-brandenburg.de/opendata/RBS_OD_LOR_2015_12.zip) Berlin <- rgdal::readOGR("X:/SomeDir/RBS_OD_LOR_2015_12.shp") #(von daten.berlin.de) # Get Dataset of Berlin Population (download available from: # https://www.statistik-berlin-brandenburg.de/opendata/EWR201512E_Matrix.csv) data <- read.csv2("X:/SomeDir/EWR201512E_Matrix.csv") # Form Dataset for Estimation Process dataIn <- cbind(t(sapply(1:length(Berlin@polygons), function(x) Berlin@polygons[[x]]@labpt)), data$E_E65U80) #Estimate Bivariate Density Est <- dshapebivr(data = dataIn, burnin = 5, samples = 10, adaptive = FALSE, shapefile = Berlin, gridsize = 325, boundary = TRUE) ## End(Not run) # Plot Density over Area: ## Not run: breaks <- seq(1E-16,max(Est$Mestimates$estimate),length.out = 20) image.plot(x=Est$Mestimates$eval.points[[1]],y=Est$Mestimates$eval.points[[2]], z=Est$Mestimates$estimate, asp=1, breaks = breaks, col = colorRampPalette(brewer.pal(9,"YlOrRd"))(length(breaks)-1)) plot(Berlin, add=TRUE) ## End(Not run)
Bivariate Kernel density estimation for data classified in polygons or shapes
dshapebivrProp( data, burnin = 2, samples = 5, adaptive = FALSE, shapefile, gridsize = 200, boundary = FALSE, deleteShapes = NULL, fastWeights = TRUE, numChains = 1, numThreads = 1 )
dshapebivrProp( data, burnin = 2, samples = 5, adaptive = FALSE, shapefile, gridsize = 200, boundary = FALSE, deleteShapes = NULL, fastWeights = TRUE, numChains = 1, numThreads = 1 )
data |
data.frame with 4 columns: x-coordinate, y-coordinate (i.e. center of polygon) and number of observations in area for partial population and number of observations for complete observations. |
burnin |
burn-in sample size |
samples |
sampling iteration size |
adaptive |
TRUE for adaptive kernel density estimation |
shapefile |
shapefile with number of polygons equal to nrow(data) |
gridsize |
number of evaluation grid points |
boundary |
boundary corrected kernel density estimate? |
deleteShapes |
shapefile containing areas without observations |
fastWeights |
if TRUE weigths for boundary estimation are only computed for first 10 percent of samples to speed up computation |
numChains |
number of chains of SEM algorithm |
numThreads |
number of threads to be used (only applicable if more than one chains) |
## Not run: library(maptools) # Read Shapefile of Berlin Urban Planning Areas (download available from: https://www.statistik-berlin-brandenburg.de/opendata/RBS_OD_LOR_2015_12.zip) Berlin <- rgdal::readOGR("X:/SomeDir/RBS_OD_LOR_2015_12.shp") #(von daten.berlin.de) # Get Dataset of Berlin Population (download available from: # https://www.statistik-berlin-brandenburg.de/opendata/EWR201512E_Matrix.csv) data <- read.csv2("X:/SomeDir/EWR201512E_Matrix.csv") # Form Dataset for Estimation Process dataIn <- cbind(t(sapply(1:length(Berlin@polygons), function(x) Berlin@polygons[[x]]@labpt)), data$E_E65U80, data$E_E) #Estimate Bivariate Proportions (may take some minutes) PropEst <- dshapebivrProp(data = dataIn, burnin = 5, samples = 20, adaptive = FALSE, shapefile = Berlin, gridsize=325, numChains = 16, numThreads = 4) ## End(Not run) # Plot Proportions over Area: ## Not run: breaks <- seq(0,0.4,by=0.025) image.plot(x=PropEst$Mestimates$eval.points[[1]],y=PropEst$Mestimates$eval.points[[2]], z=PropEst$proportion+1E-96, asp=1, breaks = breaks, col = colorRampPalette(brewer.pal(9,"YlOrRd"))(length(breaks)-1)) plot(Berlin, add=TRUE) ## End(Not run)
## Not run: library(maptools) # Read Shapefile of Berlin Urban Planning Areas (download available from: https://www.statistik-berlin-brandenburg.de/opendata/RBS_OD_LOR_2015_12.zip) Berlin <- rgdal::readOGR("X:/SomeDir/RBS_OD_LOR_2015_12.shp") #(von daten.berlin.de) # Get Dataset of Berlin Population (download available from: # https://www.statistik-berlin-brandenburg.de/opendata/EWR201512E_Matrix.csv) data <- read.csv2("X:/SomeDir/EWR201512E_Matrix.csv") # Form Dataset for Estimation Process dataIn <- cbind(t(sapply(1:length(Berlin@polygons), function(x) Berlin@polygons[[x]]@labpt)), data$E_E65U80, data$E_E) #Estimate Bivariate Proportions (may take some minutes) PropEst <- dshapebivrProp(data = dataIn, burnin = 5, samples = 20, adaptive = FALSE, shapefile = Berlin, gridsize=325, numChains = 16, numThreads = 4) ## End(Not run) # Plot Proportions over Area: ## Not run: breaks <- seq(0,0.4,by=0.025) image.plot(x=PropEst$Mestimates$eval.points[[1]],y=PropEst$Mestimates$eval.points[[2]], z=PropEst$proportion+1E-96, asp=1, breaks = breaks, col = colorRampPalette(brewer.pal(9,"YlOrRd"))(length(breaks)-1)) plot(Berlin, add=TRUE) ## End(Not run)
In self-reported or anonymized data the user often encounters heaped data, i.e. data which are rounded (to a possibly different degree of coarseness). While this is mostly a minor problem in parametric density estimation the bias can be very large for non-parametric methods such as kernel density estimation. This package implements a partly Bayesian algorithm treating the true unknown values as additional parameters and estimates the rounding parameters to give a corrected kernel density estimate. It supports various standard bandwidth selection methods. Varying rounding probabilities (depending on the true value) and asymmetric rounding is estimable as well. Additionally, bivariate non-parametric density estimation for rounded data is supported.
The most important function is dheaping
. See the help and the attached examples on how to use the package.
Plot Kernel density estimate of heaped data naively and corrected by partly bayesian model
## S3 method for class 'bivrounding' plot(x, trueX = NULL, ...)
## S3 method for class 'bivrounding' plot(x, trueX = NULL, ...)
x |
bivrounding object produced by |
trueX |
optional, if true values X are known (in simulations, for example) the 'Oracle' density estimate is added as well |
... |
additional arguments given to standard plot function |
plot with Kernel density estimates (Naive, Corrected and True (if provided))
Plot Kernel density estimate of heaped data naively and corrected by partly bayesian model
## S3 method for class 'Kernelheaping' plot(x, trueX = NULL, ...)
## S3 method for class 'Kernelheaping' plot(x, trueX = NULL, ...)
x |
Kernelheaping object produced by |
trueX |
optional, if true values X are known (in simulations, for example) the 'Oracle' density estimate is added as well |
... |
additional arguments given to standard plot function |
plot with Kernel density estimates (Naive, Corrected and True (if provided))
Simulation of heaping correction method
sim.Kernelheaping( simRuns, n, distribution, rounds, thresholds, downbias = 0.5, setBias = FALSE, Beta = 0, unequal = FALSE, burnin = 5, samples = 10, bw = "nrd0", offset = 0, boundary = FALSE, adjust = 1, ... )
sim.Kernelheaping( simRuns, n, distribution, rounds, thresholds, downbias = 0.5, setBias = FALSE, Beta = 0, unequal = FALSE, burnin = 5, samples = 10, bw = "nrd0", offset = 0, boundary = FALSE, adjust = 1, ... )
simRuns |
number of simulations runs |
n |
sample size |
distribution |
name of the distribution where random sampling is available, e.g. "norm" |
rounds |
rounding values, numeric vector of length >=1 |
thresholds |
rounding thresholds |
downbias |
Bias parameter used in the simulation |
setBias |
if TRUE a rounding Bias parameter is estimated. For values above 0.5, the respondents are more prone to round down, while for values < 0.5 they are more likely to round up |
Beta |
Parameter of the probit model for rounding probabilities used in simulation |
unequal |
if TRUE a probit model is fitted for the rounding probabilities with log(true value) as regressor |
burnin |
burn-in sample size |
samples |
sampling iteration size |
bw |
bandwidth selector method, defaults to "nrd0" see |
offset |
location shift parameter used simulation in simulation |
boundary |
TRUE for positive only data (no positive density for negative values) |
adjust |
as in |
... |
additional attributes handed over to |
List of estimation results
## Not run: Sims1 <- sim.Kernelheaping(simRuns=2, n=500, distribution="norm", rounds=c(1,10,100), thresholds=c(0.3,0.4,0.3), sd=100) ## End(Not run)
## Not run: Sims1 <- sim.Kernelheaping(simRuns=2, n=500, distribution="norm", rounds=c(1,10,100), thresholds=c(0.3,0.4,0.3), sd=100) ## End(Not run)
Simulation Summary
simSummary.Kernelheaping(sim, coverage = 0.9)
simSummary.Kernelheaping(sim, coverage = 0.9)
sim |
Simulation object returned from sim.Kernelheaping |
coverage |
probability for computing coverage intervals |
list with summary statistics
Data collected during 2004 and 2005 from students in statistics classes at a large state university in the northeastern United States.
http://mathfaculty.fullerton.edu/mori/Math120/Data/readme
Utts, J. M., & Heckard, R. F. (2011). Mind on statistics. Cengage Learning.
Prints some descriptive statistics (means and quantiles) for the estimated rounding, bias and acceleration (beta) parameters
## S3 method for class 'Kernelheaping' summary(object, ...)
## S3 method for class 'Kernelheaping' summary(object, ...)
object |
Kernelheaping object produced by |
... |
unused |
Prints summary statistics
Transfer observations to other shape
toOtherShape(Mestimates, shapefile)
toOtherShape(Mestimates, shapefile)
Mestimates |
Estimation object created by functions dshapebivr and dbivr |
shapefile |
The new shapefile for which the observations shall be transferred to |
The function returns the count, sd and 90
Plots some trace plots for the rounding, bias and acceleration (beta) parameters
tracePlots(x, ...)
tracePlots(x, ...)
x |
Kernelheaping object produced by |
... |
additional arguments given to standard plot function |
Prints summary statistics