cp
implements the method for the quantifcation of qualitative survey data proposed by Carlson/Parkin (1985). Additionally, it provides certain extensions of the Carlson-Parkin approach (e.g. other distributions than the normal distribution, indifference limens depending on the level of the forecasted variable).
cp(y.series, survey.up, survey.same, survey.down, forecast.horizon,
first.period = 1, last.period = (length(survey.up) - forecast.horizon),
limen.type = "carlson.parkin", const.limen = 0, user.symm.limen = 0,
user.upper.limen = 0, user.lower.limen = 0, correct.zero = TRUE,
correct.by = 0.01, growth.limit = NA, distrib.type = "normal",
distrib.mean = 0, distrib.sd = 1, distrib.log.location = 0,
distrib.log.scale = 1, distrib.t.df = (last.period - first.period),
suppress.warnings = FALSE)
y.series
would be the series of inflation data.
y.series
to increase. This vector needs to be of the same length as y.series
.
y.series
to stay the same. This vector needs to be of the same length as y.series
.
y.series
to decrease. This vector needs to be of the same length as y.series
.
y.series
is monthly data and the survey question asks respondents to assess the development of the variable over the next six months then forecast.horizon=6
.
survey.up
, survey.same
and survey.down
shall be used for quantification; default value is 1
.
survey.up
, survey.same
and survey.down
shall be used for quantification; default value is length(survey.up) - forecast.horizon
.
carlson.parkin
": standard symmetric, time-invariant Carlson-Parkin indifference limens; default value.
weber.fechner
": symmetric, time-varying indifference limens following the Weber-Fechner law, i.e. proportional to the variable in question (i.e. y.series
) at the time of the survey. For details see Henzel/Wollmershaeuser (2005).
constant
": symmetric, time-invariant indifference limen defined by the user through the const.limen
argument
symm.series
": fully user-defined, symmetric, time-varying indifference limen given by the argument user.symm.limen
.
asymm.series
": fully user-defined, asymmetric, time-varying indifference limens given by the arguments user.upper.limen
and user.lower.limen
.
constant
" is chosen as limen.type
. Is ignored otherwise. Default value is 0
.
symm.series
" is chosen as limen.type
. Is ignored otherwise. Default value is a 0
.
asymm.series
" is chosen as limen.type
. Is ignored otherwise. Default value is 0
.
asymm.series
" is chosen as limen.type
. Is ignored otherwise. Default value is 0
.
survey.up
and survey.down
. If survey.up
or survey.down
are zero in any period then the Carlson-Parkin method delivers counter-intuitive results (see Nardo (2003) for details). Automatic correction changes the zero value to an amount specified by the correct.by
argument. correct.zero=TRUE
switches automatic correction on which is the default.
survey.up
and survey.down
are corrected in case they have zero value and correct.zero=TRUE
. Default value is 0.01
.
y
. growth.limit
defines a limit for percentage change of y
. When this limit is exceeded the growth rate is set automatically to the median growth of y
over the period covered by the expectations. Default value is NA
.
normal
": the normal distribution is used. Default value for distrib.type
. Parameters distrib.mean
and distrib.sd
can be used to specify the distribution.
logistic
": the logistic distribution is used. Parameters distrib.log.location
and distrib.log.scale
can be used to specify the distribution.
t
": the t distribution is used. Parameter distrib.t.df
can be used to specify the distribution.
distrib.type="normal"
). Default value is 0
.
distrib.type="normal"
). Default value is 1
.
distrib.type="logistic"
). Default value is 0
.
distrib.type="logistic"
). Default value is 1
.
distrib.type="t"
). Default value is last.period - first.period
.
FALSE
) or not (TRUE
). Default value is FALSE
.
cp
returns a list containing the quantified survey data and some meta information. The list has the following elements:
y.e.mean.abs
: a numeric vector containing the quantified mean expectations of the variable y
, assuming that survey respondents form expectations on the absolute change in y
. For all periods which are not in scope of the survey the value is NA
.
y.e.mean.perc
: a numeric vector containing the quantified mean expectations of the variable y
, assuming that survey respondents form expectations on the relative change in y
. For all periods which are not in scope of the survey the value is NA
.
delta.y.e.mean.abs
: a numeric vector containing the quantified mean absolute change of the variable y
, assuming that survey respondents form expectations on the absolute change in y
. For all periods which are not in scope of the survey the value is NA
.
delta.y.e.mean.perc
: a numeric vector containing the quantified mean percentage change of the variable y
, assuming that survey respondents form expectations on the relative change in y
. For all periods which are not in scope of the survey the value is NA
.
delta.y.e.sd.abs
: a numeric vector containing the standard deviation of the absolute change expectation for variable y
in the population. Assumes that survey respondents form expectations on the absolute change in y
. For all periods which are not in scope of the survey the value is NA
.
delta.y.e.sd.perc
: a numeric vector containing the standard deviation of the absolute change expectation for variable y
in the population. Assumes that survey respondents form expectations on the relative change in y
. For all periods which are not in scope of the survey the value is NA
.
limen.abs
: a numeric vector containing the estimated (or user-defined) indifference limens assuming that survey respondents form expectations on the absolute change in variable y
. For all periods which are not in scope of the survey the value is NA
.
limen.perc
: a numeric vector containing the estimated (or user-defined) indifference limens assuming that survey respondents form expectations on the relative change in variable y
. For all periods which are not in scope of the survey the value is NA
.
nob
: a numeric value showing the number of periods for which expectations have been quantified.
mae.abs
: a numeric value showing the mean absolute error (MAE) of expectations when survey respondents form expectations on the absolute change in variable y
.
rmse.abs
: a numeric value showing the root mean squared error (RMSE) of expectations when survey respondents form expectations on the absolute change in variable y
.
mae.perc
: a numeric value showing the mean absolute error (MAE) of expectations when survey respondents form expectations on the relative change in variable y
.
rmse.perc
: a numeric value showing the root mean squared error (RMSE) of expectations when survey respondents form expectations on the relative change in variable y
.
cp
provides two alternative versions of quantified expectations, depending on the assumed expectation formation process of survey respondents. The basic common assumption of the Carlson-Parkin method is that survey participants are asked to assess whether variable y
will go up or down or stay the same. Survey respondents can now form expectations on either the absolute or the relative change of y
which differ because the indifferent limens used for quantification are calculated differently in each case. The cp
function calculates both versions.The survey result vectors survey.up
, survey.down
and survey.same
as well as the variable y.series
must be of the same length and must cover the forecasted horizon (i.e. last.period
+ forecast.horizon
$\le$ length(survey.up)
).
Data in survey.up
, survey.down
and survey.same
outside the survey period interval [first.period, last.period]
are ignored. Similiarly, y.series
data with a period index greater than last.period
is ignored.
first.period
must be greater than forecast.horizon
, because indifference limens use the current change of variable y
for calibration. In order to calculate the change in y
for the survey obersavation with index first.period
the observation of y
with index first.period - forecast.horizon
is required.
survey.up
, survey.down
and survey.same
need not sum up to 100%
or 1
(which may happen, for example, if the survey has a 'Don't know' answer option).
The Weber-Fechner option (see Henzel/Wollmershaeuser (2005) for details) weighs the 'expectations' term in the traditional Carlson-Parkin limen calculation with the current inflation rate. The resulting time-invariant value is applied as a proportionality factor to current inflation leading to a time-varying, inflation-proportional indifference limen.
When the indifference limen is user-defined (i.e. limen.type="symm.series"
or limen.type="asymm.series"
) then each limen value needs to be placed in such a way in the limen vector(s) (i.e. user.limen
or user.upper.limen
/ user.lower.limen
) that it has the same index as the survey observation (in survey.up
, survey.down
and survey.same
) to which it belongs.
Henzel, S./Wollmershaeuser, T. (2005), Quantifying inflation expectations with the Carlson-Parkin method: A survey-based determination of the just noticeable difference, Journal of Business Cycle Measurement and Analysis 2, 321--352.
Nardo, M. (2003), The quantification of qualitative survey data: a critical assessment, Journal of Economic Surveys 17 (5), 645--668.
quantification-package
, bal
, ra
, ce
## Data preparation: generate a sample dataset with inflation and survey data
inflation<-c(1.7, 1.9, 2, 1.9, 2, 2.1, 2.1, 2.1, 2.4, 2.3, 2.4)
answer.up<-c(67, 75.1, 76.4, 72.4, 69.7, 49.7, 45.2, 31.6, 14.9, 19.3, 19.2)
answer.same<-c(30.1, 19.6, 19.5, 21.3, 20.1, 33.1, 34.4, 33.5, 44.6, 38.1, 35.3)
answer.down<-c(2.9, 5.3, 4.1, 6.3, 10.2, 17.2, 20.4, 34.9, 40.5, 42.6, 45.5)
## Call cp for quantification
quant.cp.limens<-cp(inflation, answer.up, answer.same, answer.down, first.period=5,
last.period=7, forecast.horizon=4)
## With Weber-Fechner limens instead of Carson-Parkin limens
quant.wf.limens<-cp(inflation, answer.up, answer.same, answer.same, first.period=5,
last.period=7, forecast.horizon=4, limen.type="weber.fechner")
Run the code above in your browser using DataLab