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