The goal of clptheory
(classical price theory)
is to create a suite of functions to implement the classical theory of
prices. The functions in this package computes the uniform rate of
profit, the vector of price of production and the vector of labor values
for different specifications of the circulating capital model and the
capital stock model. The functions also computes various regression- and
non-regression-based measures of deviation between the vector of all
possible relative prices of production and the vector of all
possible relative labor values.
You can install the package clptheory
from CRAN
with:
# Uncomment the following line
# install.packages("clptheory")
You can install the development version of clptheory
from GitHub with:
# Uncomment the following two lines
# install.packages("devtools")
# devtools::install_github("dbasu-umass/clptheory")
This package provides the following functions.
ppstdint1
: a function to estimate a basic
circulating capital model (uniform wage rates across industries + not
taking account of unproductive industries) with the Standard
Interpretation;
ppstdint2
: a function to estimate a circulating
capital model (uniform wage rates across industries + takes account of
unproductive industries) with the Standard Interpretation;
ppstdint3
: a function to estimate a basic capital
stock model (uniform wage rates across industries + not taking account
of unproductive industries) with the Standard Interpretation;
ppnewint1
: a function to estimate a basic
circulating capital model (uniform wage rates across industries + not
taking account of unproductive industries) with the New
Interpretation;
ppnewint2
: a function to estimate a circulating
capital model (allows differential wage rates across industries + not
taking account of unproductive industries) with the New
Interpretation;
ppnewint3
: a function to estimate a circulating
capital model (uniform wage rates across industries + takes account of
unproductive industries) with the New Interpretation;
ppnewint4
: a function to estimate a circulating
capital model (allows differential wage rates across industries + takes
account of unproductive industries) with the New
Interpretation;
ppnewint5
: a function to estimate a basic capital
stock model (uniform wage rates across industries + not taking account
of unproductive industries) with the New Interpretation;
ppnewint6
: a function to estimate a capital stock
model (allows differential wage rates across industries + not taking
account of unproductive industries) with the New
Interpretation;
ppnewint7
: a function to estimate a capital stock
model (uniform wage rates across industries + takes account of
unproductive industries) with the New Interpretation;
ppnewint8
: a function to estimate a capital stock
model (allows differential wage rates across industries + takes account
of unproductive industries) with the New Interpretation;
nregtestrel
: a function that computes various
non-regression-based measures of deviation between the vector of
relative prices of production and the vector of
relative labor values;
regtestrel
: a function that computes various
regression-based measures of deviation between the vector of
relative prices of production and the vector of
relative labor values;
createdata
: a function to create the data objects
(matrices, vectors and scalars) necessary to implement the SI and
NI.
The package contains the following three datasets.
aussea
: the socio economic accounts for the
Australian economy extracted from the 2016 release of the World Input
Output Database; this data set contains industry-level variables (53
industries) for the USA for 15 years, 2000-2014;
ausiot
: input-output tables for the Australian
economy extracted from the 2016 release of the World Input Output
Database; this data set contains 53-industry input-output tables for the
USA for 15 years, 2000-2014;
usasea
: the socio economic accounts for the USA
extracted from the 2016 release of the World Input Output Database; this
data set contains industry-level variables (53 industries) for the USA
for 15 years, 2000-2014;
usaiot
: input-output tables for the USA extracted
from the 2016 release of the World Input Output Database; this data set
contains 53-industry input-output tables for the USA for 15 years,
2000-2014;
usarwb
: personal consumption expenditure on the
output of the 53 industries of the input-output tables for the USA
extracted from the 2016 release of the World Input Output Database; this
data set contains data for 15 years, 2000-2014. (Note: This data set is
not necessary for the analysis.)
Let us conduct price of production analysis for Australia (AUS) and
see how to use the functions in clptheory
to
compute the uniform rate of profit and the vectors of labor values and prices of production for a basic circulating capital model using the Standard Interpretation and the New Interpretation; and
compute regression- and non-regression-based measures of deviation between the vector of all possible relative prices of production and the vector of all possible relative labor values.
Let us load the package.
# Load library
library(clptheory)
Let us create the data objects.
<- clptheory::createdata(
ausdata country = "AUS", year = 2010,
datasea = aussea, dataio = ausiot
)#> c("C33", "M71", "M72", "M73", "M74_M75", "U")
Let us now estimate the circulating capital model with SI.
<- clptheory::ppstdint1(
si1 A = ausdata$Ahat,
l = ausdata$l,
b = ausdata$b,
Q = ausdata$Q,
l_simple = ausdata$l_simple
)
Let us now estimate the circulating capital model with NI.
<- clptheory::ppnewint1(
ni1 A = ausdata$Ahat,
l = ausdata$l,
w = ausdata$wavg,
v = ausdata$vlp,
Q = ausdata$Q,
l_simple = ausdata$l_simple
)
Let us see the uniform profit rate.
cbind(si1$urop,ni1$urop)
#> [,1] [,2]
#> [1,] 0.6018444 0.973433
Let us compute various non-regression-based measures of the deviation between the vector of relative labor values and the vector of relative prices of production for the SI.
<- clptheory::nregtestrel(
nrsi1 x = si1$ppabs,
y = si1$lvalues,
w = ausdata$wagevector_all,
w_avg = ausdata$wavg,
mev = si1$mevg,
Q = ausdata$Q
)
Let us do the same computation for the NI.
<- clptheory::nregtestrel(
nrni1 x=ni1$ppabs,
y=ni1$lvalues,
w=ausdata$wagevector_all,
w_avg=ausdata$wavg,
mev=ni1$mevg,
Q=ausdata$Q
)
We can now compare the results for the analysis of the circulating capital model from the SI approach and the NI approach for the non-regression-based measures of deviation between relative prices of production and relative values.
<- cbind(nrsi1,nrni1)
comp1 colnames(comp1) <- c("SI","NI")
(comp1)#> SI NI
#> rmse 3.603886 0.6884111
#> mad 1.60151 0.4600684
#> mawd 0.713937 0.3040913
#> cdm 0.7897359 0.6472872
#> angle 63.92068 23.54431
#> distangle 1.058664 0.4080406
#> lrelpplv 1128 1128
In the results above, we see the magnitudes of six different measures of the deviation between the vector of relative prices of production and the vector of relative labor values: root mean squared error (RMSE), meann absolute distance (MAD), mean absolute weighted distance (MAWD), classical distance measure (CDM), angle between the two vectors (angle in degrees), and distance computed using angle (distance).
As an example, we can see that the CDM for SI is 0.789 and for NI is 0.647. This can be interpreted as showing that the deviation between the vector of relative prices of production and the vector of relative labor values is 79 percent and 65 percent of the relative value vector according to the SI and NI methodology, respectively.
The last row of the above results shows the length of (number of observations in) the vector of relative prices of production or the vector of relative labor values. Recall that the input-output matrix is 48 by 48. Hence, the absolute value and price of production vectors will each be of size 48. Thus, the size of the vector of relative prices of production (or labor value) should be \((48 \times 47)/2=1128\).
Let us compute various regression-based measures of the deviation between the vector of relative labor values and the vector of relative prices of production for the SI.
<- clptheory::regtestrel(
rsi1 x = si1$ppabs,
y = si1$lvalues
)
Let us do the same computation for the NI.
<- clptheory::regtestrel(
rni1 x=ni1$ppabs,
y=ni1$lvalues
)
We can now compare the results for the analysis of the circulating capital model from the SI approach and the NI approach for the regression-based measures of deviation between relative prices of production and relative values.
<- cbind(rsi1,rni1)
comp2 colnames(comp2) <- c("SI","NI")
(comp2)#> SI NI
#> a0lg -0.7787738 0.1341304
#> a1lg -0.1450801 0.386964
#> r2lg 0.001308835 0.1638283
#> fstatlg 143.914 550.9681
#> pvallg 0 0
#> nlg 1128 1128
#> a0lv 1.736712 0.6057521
#> a1lv -0.3923921 0.5908621
#> r2lv 0.002833572 0.22993
#> fstatlv 35.7541 266.3688
#> pvallv 0 0
#> nlv 1128 1128
Regression-based tests of the deviation between use regressions, either log-log or level-level, of relative prices of production on relative labor value. The key the null (joint) hypothesis is that the intercept is 0 and the slope is 1.
The F-stat in the log-log regression of relative prices of production on relative value is 143.91 for SI and 550.97 for NI. In both cases, we can strongly reject the null hypothesis that the intercept is 0 and the slope is 1. The corresponding F-stats for the level-level regressions are 35.75 (SI) and 266.39 (NI). Once again, the null hypothesis is strongly rejected.
This example was presented on pages 46-57 of E. M. Ochoa’s dissertation (Ochoa, E. M. 1984. Labor-Value and Prices of Production: An Interindustry Study of the U.S. Economy, 1947–1972. PhD thesis, New School for Social Research, New York, NY.). This example has also been discussed in Appendix B of Basu and Moraitis, 2023. (Basu, Deepankar and Moraitis, Athanasios, “Alternative Approaches to Labor Values and Prices of Production: Theory and Evidence” (2023). Economics Department Working Paper Series. 347. UMass Amherst. URL: https://scholarworks.umass.edu/econ_workingpaper/347/)
Let us load the library and create the data for our examples.
# Input-output matrix
<- matrix(
A data = c(0.265,0.968,0.00681,0.0121,0.391,0.0169,0.0408,0.808,0.165),
nrow=3, ncol=3, byrow = TRUE
)
# Depreciation matrix
<- matrix(
D data = c(0,0,0,0.00568,0.0267,0.0028,0.00265,0.0147,0.00246),
nrow=3, ncol=3, byrow = TRUE
)
# Direct labor input vector
<- matrix(
l data = c(0.193, 3.562, 0.616),
nrow=1
)
# Real wage bundle vector
<- matrix(
b data = c(0.0109, 0.0275, 0.296),
ncol=1
)
# Gross output vector
<- matrix(
Q data = c(26530, 18168, 73840),
ncol=1
)
# Market prices vector
<- matrix(
m data = c(4, 60, 7),
nrow=1
)
# Capital stock coefficient matrix
<- matrix(
K data = c(0,0,0,0.120,0.791,0.096,0.037,0.251,0.043),
nrow=3, ncol=3, byrow = TRUE
)
# Diagonal matrix of turnover times
<- diag(c(0.317, 0.099, 0.187))
t
# Uniform nominal wage rate
<- m%*%b
wavg
# Vector of nominal wage rates
<- matrix(
w data = rep(wavg,3),
nrow = 1
)
# Value of labor power
<- 2/3 v
We will first implement the classical theory of prices for the circulating capital model and then turn to the capital stock model.
# Estimate circulating capital model with SI
<- ppstdint1(
si1 A = A,
l = l,
b = b,
Q = Q,
l_simple = l
)
What is the uniform rate of profit?
$urop
si1#> [1] 0.3877843
What is the vector of labor values?
$lvalues
si1#> [,1] [,2] [,3]
#> [1,] 0.4398417 7.739431 0.8979541
What is the vector of prices of production (absolute)?
$ppabs
si1#> [,1] [,2] [,3]
#> [1,] 0.5703988 0.2388832 1.341621
Let us now compute the various non-regression-based measures of deviation between the vector of all possible relative labor values and the vector of all possible relative prices of production.
<- nregtestrel(
nrsi1 x = si1$ppabs,
y = si1$lvalues,
w = w,
w_avg = wavg[1,1],
mev = si1$mevg,
Q = Q
)
# Estimate model
<- ppstdint3(
si2 A = A,
l = l,
b = b,
Q = Q,
D = D,
K = K,
t = t,
l_simple = l
)
What is the uniform rate of profti?
$urop
si2#> [1] 0.2337492
What is the vector of labor values?
$lvalues
si2#> [,1] [,2] [,3]
#> [1,] 0.5192079 8.309406 0.9407729
What is the vector of prices of production?
$ppabs
si2#> [,1] [,2] [,3]
#> [1,] 0.284253 1.66129 1.094453
Let us now compute the non-regression-based measures of deviation.
<- nregtestrel(
nrsi2 x = si2$ppabs,
y = si2$lvalues,
w = w,
w_avg = wavg[1,1],
mev = si2$mevg,
Q = Q
)
We continue working with the 3-industry example and implement the New Interpretation of Marx’s labor theory of value.
# Estimate circulating capital model with NI
<- ppnewint1(
ni1 A = A,
l = l,
w = wavg[1,1],
v = v,
Q = Q,
l_simple = l
)
What is the uniform rate of profit?
$urop
ni1#> [1] 0.2116339
What is the vector of labor values?
$lvalues
ni1#> [,1] [,2] [,3]
#> [1,] 0.4398417 7.739431 0.8979541
What is the vector of prices of production (absolute)?
$ppabs
ni1#> [,1] [,2] [,3]
#> [1,] 2.621517 45.47507 4.703682
Let us now compute the various non-regression-based measures of deviation between the vector of all possible relative labor values and the vector of all possible relative prices of production.
<- nregtestrel(
nrni1 x=ni1$ppabs,
y=ni1$lvalues,
w=w,
w_avg=wavg[1,1],
mev=ni1$mevg,
Q=Q
)
<- ppnewint5(
ni2 A = A,
l = l,
v = v,
w = wavg[1,1],
Q = Q,
D = D,
K = K,
t = t,
l_simple = l
)
What is the uniform rate of profit?
$urop
ni2#> [1] 0.1569311
What is the vector of labor values?
$lvalues
ni2#> [,1] [,2] [,3]
#> [1,] 0.5192079 8.309406 0.9407729
What is the vector of prices of production (absolute)?
$ppabs
ni2#> [,1] [,2] [,3]
#> [1,] 3.90503 48.3282 5.017568
Let us now compute the various non-regression-based measures of deviation between the vector of all possible relative labor values and the vector of all possible relative prices of production.
<- nregtestrel(
nrni2 x=ni2$ppabs,
y=ni2$lvalues,
w=w,
w_avg=wavg[1,1],
mev=ni2$mevg,
Q=Q
)
We can compare the results for the analysis of the circulating capital model from the SI approach and the NI approach for the non-regression-based measures of deviation between relative prices of production and relative values.
<- cbind(nrsi1,nrni1)
comp1 colnames(comp1) <- c("SI","NI")
(comp1)#> SI NI
#> rmse 23.68697 0.1064786
#> mad 14.04216 0.09129555
#> mawd 1.51884 0.03132663
#> cdm 1.51884 0.03132663
#> angle 59.21479 3.519195
#> distangle 0.9881081 0.06141188
#> lrelpplv 3 3
We can compare the results for the analysis of the capital stock model from the SI approach and the NI approach for the non-regression-based measures of deviation between relative prices of production and relative values.
<- cbind(nrsi2,nrni2)
comp2 colnames(comp2) <- c("SI","NI")
(comp2)#> SI NI
#> rmse 1.152957 0.295736
#> mad 1.031963 0.2646106
#> mawd 0.2125032 0.07588155
#> cdm 0.2125032 0.07588155
#> angle 51.23735 7.288633
#> distangle 0.8647594 0.1271249
#> lrelpplv 3 3