data(testdata)
# \donttest{
## donttest is necessary because of
## Examples with CPU time > 2.5 times elapsed time
## caused by using C++ code and/or data.table
## using a factor variable as input
res <- pram(as.factor(testdata$roof))
print(res)
summary(res)
## using a data.frame as input
## pram can only be applied to factors
## -- > we have to recode to factors beforehand
testdata$roof <- factor(testdata$roof)
testdata$walls <- factor(testdata$walls)
testdata$water <- factor(testdata$water)
## pram() is applied within subgroups defined by
## variables "urbrur" and "sex"
res <- pram(
obj = testdata,
variables = "roof",
strata_variables = c("urbrur", "sex"))
print(res)
summary(res)
## default parameters (pd = 0.8 and alpha = 0.5) for the generation
## of the invariant transition matrix will be used for all variables
res1 <- pram(
obj = testdata,
variables = c("roof", "walls", "water"))
print(res1)
## specific parameter settings for each variable
res2 <- pram(
obj = testdata,
variables = c("roof", "walls", "water"),
pd = c(0.95, 0.8, 0.9),
alpha = 0.5)
print(res2)
## detailed information on pram-parameters (such as the transition matrix 'Rs')
## is stored in the output, eg. for variable 'roof'
#attr(res2, "pram_params")$roof
## we can also specify a custom transition-matrix directly
mat <- diag(length(levels(testdata$roof)))
rownames(mat) <- colnames(mat) <- levels(testdata$roof)
res3 <- pram(
obj = testdata,
variables = "roof",
pd = mat)
print(res3) # of course, nothing has changed!
## it is possible use a transition matrix for a variable and use the 'traditional' way
## of specifying a number for the minimal diagonal entries of the transision matrix
## for other variables. In this case we must supply `pd` as list.
res4 <- pram(
obj = testdata,
variables = c("roof", "walls"),
pd = list(mat, 0.5),
alpha = c(NA, 0.5))
print(res4)
summary(res4)
attr(res4, "pram_params")
## application to objects of class sdcMicro with default parameters
data(testdata2)
testdata2$urbrur <- factor(testdata2$urbrur)
sdc <- createSdcObj(
dat = testdata2,
keyVars = c("roof", "walls", "water", "electcon", "relat", "sex"),
numVars = c("expend", "income", "savings"),
w = "sampling_weight")
sdc <- pram(
obj = sdc,
variables = "urbrur")
print(sdc, type = "pram")
## this is equal to the previous application. If argument 'variables' is NULL,
## all variables from slot 'pramVars' will be used if possible.
sdc <- createSdcObj(
dat = testdata2,
keyVars = c("roof", "walls", "water", "electcon", "relat", "sex"),
numVars = c("expend", "income", "savings"),
w = "sampling_weight",
pramVars = "urbrur")
sdc <- pram(sdc)
print(sdc, type="pram")
## we can specify transition matrices for sdcMicroObj-objects too
#testdata2$roof <- factor(testdata2$roof)
sdc <- createSdcObj(
dat = testdata2,
keyVars = c("roof", "walls", "water", "electcon", "relat", "sex"),
numVars = c("expend", "income", "savings"),
w = "sampling_weight")
mat <- diag(length(levels(testdata2$roof)))
rownames(mat) <- colnames(mat) <- levels(testdata2$roof)
mat[1,] <- c(0.9, 0, 0, 0.05, 0.05)
sdc <- pram(
obj = sdc,
variables = "roof",
pd = mat)
print(sdc, type = "pram")
## we can also have a look at the transitions
get.sdcMicroObj(sdc, "pram")$transitions
# }
Run the code above in your browser using DataLab