{"id":597,"date":"2012-12-14T01:03:31","date_gmt":"2012-12-14T01:03:31","guid":{"rendered":"http:\/\/www.georg-hosoya.de\/wordpress\/?p=597"},"modified":"2012-12-14T02:42:54","modified_gmt":"2012-12-14T02:42:54","slug":"the-partial-credit-model-as-pgm","status":"publish","type":"post","link":"https:\/\/www.georg-hosoya.de\/wordpress\/?p=597","title":{"rendered":"The Partial Credit Model as PGM"},"content":{"rendered":"<p>The last post&#8217;s topic about multinomial logistic regression leads very nicely to a wide range of psychometric models for categorial responses, such as the Partial Credit Model (PCM) by Masters (1982). The PCM is a psychometric model that estimates the probability of a person&#8217;s response to an item based on characteristics of the item and the person&#8217;s latent ability. One particular nice feature of this model is the fact that Andrich&#8217;s rating scale model (RSM) and the dichotomous Rasch model (RM) are &#8211; as e.g. Mair and Hatzinger (2007) demonstrated &#8211; special cases of the PCM. It is fair to say that Samejima seems to have worked on a similar structure back in the sixties.<\/p>\n<p>The focus of this post is on specifying the PCM as a graphical model, estimating the parameters via MCMC and crosschecking the results against the <code>eRm<\/code> package by Mair and Hatzinger (2007).<\/p>\n<p>Let&#8217;s have a look at the formal structure of the PCM first. Starting point is the base distribution of multinomial logistic regression, sometimes called the &#8220;softmax activation function&#8221; in the machine learning literature:<\/p>\n<p class=\"ql-center-displayed-equation\" style=\"line-height: 46px;\"><span class=\"ql-right-eqno\"> (1) <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.georg-hosoya.de\/wordpress\/wp-content\/ql-cache\/quicklatex.com-5256b518239af51079821effeb9d4146_l3.png\" height=\"46\" width=\"216\" class=\"ql-img-displayed-equation \" alt=\" &#92;&#98;&#101;&#103;&#105;&#110;&#123;&#101;&#113;&#117;&#97;&#116;&#105;&#111;&#110;&#42;&#125; &#112;&#40;&#121;&#95;&#105;&#61;&#99;&#41;&#61;&#92;&#102;&#114;&#97;&#99;&#123;&#92;&#109;&#98;&#111;&#120;&#123;&#101;&#120;&#112;&#125;&#92;&#108;&#101;&#102;&#116;&#92;&#123;&#32;&#92;&#108;&#97;&#109;&#98;&#100;&#97;&#95;&#123;&#99;&#105;&#125;&#92;&#114;&#105;&#103;&#104;&#116;&#92;&#125;&#125;&#123;&#92;&#115;&#117;&#109;&#95;&#123;&#99;&#61;&#49;&#125;&#94;&#67;&#92;&#109;&#98;&#111;&#120;&#123;&#101;&#120;&#112;&#125;&#92;&#108;&#101;&#102;&#116;&#92;&#123;&#32;&#92;&#108;&#97;&#109;&#98;&#100;&#97;&#95;&#123;&#99;&#105;&#125;&#92;&#114;&#105;&#103;&#104;&#116;&#92;&#125;&#125;&#46; &#92;&#101;&#110;&#100;&#123;&#101;&#113;&#117;&#97;&#116;&#105;&#111;&#110;&#42;&#125; \" title=\"Rendered by QuickLaTeX.com\"\/><\/p>\n<p>The next step is to linearily decompose the parameters <img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.georg-hosoya.de\/wordpress\/wp-content\/ql-cache\/quicklatex.com-90c528f43c998420bc62fd3d2271036d_l3.png\" class=\"ql-img-inline-formula \" alt=\"&#92;&#108;&#97;&#109;&#98;&#100;&#97;&#95;&#123;&#99;&#105;&#125;&#32;\" title=\"Rendered by QuickLaTeX.com\" height=\"16\" width=\"21\" style=\"vertical-align: -3px;\"\/> with respect to the PCM. For simplicity I will consider the case of four categories per item only. Generalization to <img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.georg-hosoya.de\/wordpress\/wp-content\/ql-cache\/quicklatex.com-9b61ec27349875afb6f95c0043a59a60_l3.png\" class=\"ql-img-inline-formula \" alt=\"&#67;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"14\" style=\"vertical-align: 0px;\"\/> categories is simple and straight forward.<\/p>\n<p class=\"ql-center-displayed-equation\" style=\"line-height: 99px;\"><span class=\"ql-right-eqno\"> (2) <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.georg-hosoya.de\/wordpress\/wp-content\/ql-cache\/quicklatex.com-a9bb2a9779e3beebab12e3557511049a_l3.png\" height=\"99\" width=\"246\" class=\"ql-img-displayed-equation \" alt=\" &#92;&#98;&#101;&#103;&#105;&#110;&#123;&#101;&#113;&#110;&#97;&#114;&#114;&#97;&#121;&#42;&#125; &#92;&#108;&#97;&#109;&#98;&#100;&#97;&#95;&#123;&#49;&#105;&#125;&#38;&#61;&#38;&#48;&#32;&#92;&#92; &#92;&#108;&#97;&#109;&#98;&#100;&#97;&#95;&#123;&#50;&#105;&#125;&#38;&#61;&#38;&#92;&#101;&#116;&#97;&#95;&#118;&#32;&#92;&#99;&#100;&#111;&#116;&#32;&#49;&#32;&#45;&#32;&#92;&#116;&#97;&#117;&#95;&#123;&#106;&#44;&#49;&#125;&#92;&#92; &#92;&#108;&#97;&#109;&#98;&#100;&#97;&#95;&#123;&#51;&#105;&#125;&#38;&#61;&#38;&#92;&#101;&#116;&#97;&#95;&#118;&#32;&#92;&#99;&#100;&#111;&#116;&#32;&#50;&#32;&#45;&#32;&#92;&#116;&#97;&#117;&#95;&#123;&#106;&#44;&#49;&#125;&#32;&#45;&#32;&#92;&#116;&#97;&#117;&#95;&#123;&#106;&#44;&#50;&#125;&#92;&#92; &#92;&#108;&#97;&#109;&#98;&#100;&#97;&#95;&#123;&#52;&#105;&#125;&#38;&#61;&#38;&#92;&#101;&#116;&#97;&#95;&#118;&#32;&#92;&#99;&#100;&#111;&#116;&#32;&#51;&#32;&#45;&#32;&#92;&#116;&#97;&#117;&#95;&#123;&#106;&#44;&#49;&#125;&#32;&#45;&#32;&#92;&#116;&#97;&#117;&#95;&#123;&#106;&#44;&#50;&#125;&#32;&#45;&#32;&#92;&#116;&#97;&#117;&#95;&#123;&#105;&#44;&#51;&#125; &#92;&#101;&#110;&#100;&#123;&#101;&#113;&#110;&#97;&#114;&#114;&#97;&#121;&#42;&#125; \" title=\"Rendered by QuickLaTeX.com\"\/><\/p>\n<p>So, <img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.georg-hosoya.de\/wordpress\/wp-content\/ql-cache\/quicklatex.com-ddd7dc54c7a23582dcb5a2c8404d8e37_l3.png\" class=\"ql-img-inline-formula \" alt=\"&#92;&#101;&#116;&#97;&#95;&#118;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"16\" style=\"vertical-align: -4px;\"\/> is the ability of person <img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.georg-hosoya.de\/wordpress\/wp-content\/ql-cache\/quicklatex.com-1c9bce15e851a428a0531afe3bf82873_l3.png\" class=\"ql-img-inline-formula \" alt=\"&#118;\" title=\"Rendered by QuickLaTeX.com\" height=\"8\" width=\"9\" style=\"vertical-align: 0px;\"\/> on the latent trait scale, and <img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.georg-hosoya.de\/wordpress\/wp-content\/ql-cache\/quicklatex.com-47aa09c23d2efebfd3af3d14d3f53c68_l3.png\" class=\"ql-img-inline-formula \" alt=\"&#92;&#116;&#97;&#117;&#95;&#123;&#106;&#44;&#99;&#45;&#49;&#125;\" title=\"Rendered by QuickLaTeX.com\" height=\"14\" width=\"40\" style=\"vertical-align: -6px;\"\/> is the so called threshold parameter of item <img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.georg-hosoya.de\/wordpress\/wp-content\/ql-cache\/quicklatex.com-555c8599314dd6cbf599356d9044eb0d_l3.png\" class=\"ql-img-inline-formula \" alt=\"&#106;\" title=\"Rendered by QuickLaTeX.com\" height=\"16\" width=\"9\" style=\"vertical-align: -4px;\"\/> for the categories <img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.georg-hosoya.de\/wordpress\/wp-content\/ql-cache\/quicklatex.com-91cebb9283c8fdbb6f244504de8d8940_l3.png\" class=\"ql-img-inline-formula \" alt=\"&#99;&#45;&#49;\" title=\"Rendered by QuickLaTeX.com\" height=\"13\" width=\"37\" style=\"vertical-align: -1px;\"\/> and <img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.georg-hosoya.de\/wordpress\/wp-content\/ql-cache\/quicklatex.com-6b81d1a91c68e1cf3a5248d42a4633b0_l3.png\" class=\"ql-img-inline-formula \" alt=\"&#99;\" title=\"Rendered by QuickLaTeX.com\" height=\"8\" width=\"8\" style=\"vertical-align: 0px;\"\/>. For example, a threshold parameter <img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.georg-hosoya.de\/wordpress\/wp-content\/ql-cache\/quicklatex.com-bd4a9c0e6b2d46aa21a48b1e3a8748ff_l3.png\" class=\"ql-img-inline-formula \" alt=\"&#92;&#116;&#97;&#117;&#95;&#123;&#49;&#44;&#49;&#125;&#61;&#45;&#49;&#44;&#56;\" title=\"Rendered by QuickLaTeX.com\" height=\"18\" width=\"89\" style=\"vertical-align: -6px;\"\/> means that for item 1, given a latent ability of <img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.georg-hosoya.de\/wordpress\/wp-content\/ql-cache\/quicklatex.com-ef7f03464cdd320018497aeab10184cd_l3.png\" class=\"ql-img-inline-formula \" alt=\"&#92;&#101;&#116;&#97;&#95;&#118;&#61;&#45;&#49;&#46;&#56;\" title=\"Rendered by QuickLaTeX.com\" height=\"16\" width=\"77\" style=\"vertical-align: -4px;\"\/>, the probability of choosing the category scored with 0 is equal to the probability of choosing the category scored with 1. This can be readily verified by for example plotting the item response functions for a set of threshold parameters. To estimate the PCM as a PGM, it is useful to introduce a multilevel perspective with respect to the persons&#8217; abilities:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.georg-hosoya.de\/wordpress\/wp-content\/ql-cache\/quicklatex.com-05306211375e16922599e14de275ecf2_l3.png\" class=\"ql-img-inline-formula \" alt=\" &#92;&#101;&#116;&#97;&#95;&#118;&#32;&#92;&#115;&#105;&#109;&#32;&#78;&#40;&#48;&#44;&#32;&#92;&#115;&#105;&#103;&#109;&#97;&#95;&#123;&#92;&#101;&#116;&#97;&#125;&#94;&#50;&#41;&#46; \" title=\"Rendered by QuickLaTeX.com\" height=\"22\" width=\"110\" style=\"vertical-align: -7px;\"\/><\/p>\n<p>We assume that the latent abilities are normally distributed with a mean of zero and a variance of <img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.georg-hosoya.de\/wordpress\/wp-content\/ql-cache\/quicklatex.com-8e55b7f32b1d752a858c7158a2fd5ded_l3.png\" class=\"ql-img-inline-formula \" alt=\"&#92;&#115;&#105;&#103;&#109;&#97;&#95;&#123;&#92;&#101;&#116;&#97;&#125;&#94;&#50;\" title=\"Rendered by QuickLaTeX.com\" height=\"22\" width=\"18\" style=\"vertical-align: -7px;\"\/>, which can be estimated from data. This is actually quite nice, because approaches exist to estimate the separability or reliability based on the variance of the latent trait distribution. Please note that the parametrization of the PCM above is a bit different from the original specification by Masters (1982).<\/p>\n<p>The Bugs-Code for the model is straight forward:<\/p>\n<pre lang=\"rsplus\" line=\"1\">\r\n# PCM.txt\r\nmodel{\r\n  \r\n  for (i in 1:n)\r\n  {\r\n      \r\n        lambda[1,i]<-0\r\n        lambda[2,i]<-1*eta[id[i]]-tau[item[i],1]\r\n        lambda[3,i]<-2*eta[id[i]]-tau[item[i],1]-tau[item[i],2]\r\n        lambda[4,i]<-3*eta[id[i]]-tau[item[i],1]-tau[item[i],2]-tau[item[i],3]\r\n      \r\n        Z[i]<-exp(lambda[1,i])+exp(lambda[2,i])+exp(lambda[3,i])+exp(lambda[4,i])\r\n      \r\n        for(c in 1:4)\r\n        {\r\n        p[i,c]<-exp(lambda[c,i])\/Z[i]\r\n        }\r\n        y[i]~dcat(p[i,1:4])\r\n    }\r\n    \r\n\r\n\r\n# Priors\r\n  for(j in 1:k)\r\n  {\r\n      tau[j,1]~dnorm(0,1.0E-6)\r\n      tau[j,2]~dnorm(0,1.0E-6)\r\n      tau[j,3]~dnorm(0,1.0E-6)  \r\n  }\r\n\r\n  for(i in 1:N)\r\n  {\r\n    eta[i]~dnorm(0,tau.eta)\r\n  }\r\n\r\n    tau.eta<-pow(sigma.eta,-2)\r\n    sigma.eta~dunif(0,2)\r\n}\r\n<\/pre>\n<p>Please note that the data have to be submitted in long format. <\/p>\n<p>Now, let's do something interesting with this. The following R-script uses the <code>rsmdat <\/code> example dataset in the <code>eRm<\/code>-package, transforms it into long format and submits it to <code>JAGS<\/code>. <code>JAGS<\/code> generates the posterior distributions the Bayesian way and returns the output to R. Subsequently, the threshold- and ability-parameters are estimated with the <code>pcm()<\/code>-function in the <code>eRm<\/code>-package and the results are compared graphically.<\/p>\n<pre lang=\"rsplus\" line=\"1\">\r\n# PCM.R\r\nlibrary(R2jags)\r\nlibrary(eRm)\r\n\r\n# Load rsmdat\r\ndata<-rsmdat\r\n# Number of thresholds per item\r\nt<-max(data)\r\n# Number of persons\r\nN<-dim(data)[1]\r\n# Number of items\r\nk<-dim(data)[2]\r\n# Transform data into long format\r\nindex=1\r\nid<-c(0)\r\nitem<-c(0)\r\ny<-c(0)\r\n\r\nfor(i in 1:N)\r\n{\r\n    for(j in 1:k)\r\n    {\r\n      y[index]=data[i,j]+1\r\n      id[index]<-i\r\n      item[index]<-j\r\n      index<-index+1\r\n    }\r\n}\r\nn<-length(y)\r\n\r\n# Prepare arguments for jags()\r\ndata<-list(\"y\",\"n\",\"N\",\"id\", \"item\", \"k\")\r\nparameters<-c(\"tau\",\"eta\", \"sigma.eta\")\r\ninits <- function(){\r\nlist(tau = array(rnorm(t*k),c(k,t)), eta=rnorm(N), sigma.eta=runif(1)*2)\r\n}\r\n\r\n# Fit model\r\noutput<-jags(data, inits=inits, parameters, model.file=\"PCM.txt\",\r\n    n.chains=2, n.iter=4000, n.burnin=2000)\r\n\r\nattach.jags(output)\r\n\r\n# Checking against eRm ########\r\n# Fit model with eRm\r\nout<-PCM(rsmdat)\r\n# Collect posterior means of threshold parameters \r\n# from jags output  \r\nt1<-apply(tau[,1,],2,mean)\r\nt2<-apply(tau[,2,],2,mean)\r\nt3<-apply(tau[,3,],2,mean)\r\nt4<-apply(tau[,4,],2,mean)\r\nt5<-apply(tau[,5,],2,mean)\r\nt6<-apply(tau[,6,],2,mean)\r\nthresholds_pgm<-c(t1,t2,t3,t4,t5,t6)\r\n# Collect threshold parameters from eRm\r\nthresholds_eRm<-thresholds(out)$threshpar\r\n# Plot PGM thresholds against eRm thresholds\r\nplot(thresholds_eRm, ylim=c(-2,2.5), col=c(\"red\"), ylab=\"tau\")\r\npoints(thresholds_pgm, ylim=c(-2,2.5), col=c(\"green\"))\r\n\r\n# Collect posterior means of\r\n# ability parameters from jags\r\neta_pgm<-apply(eta,2,mean)\r\n# Collect ability parameters\r\n# from eRm\r\neta_eRm<-person.parameter(out)$theta.table[,1]\r\nplot(apply(rsmdat,1,mean),eta_eRm, xlim=c(0,3), col=c(\"red\"), xlab=\"mean score\",ylab=\"eta\")\r\npoints(apply(rsmdat,1,mean),eta_pgm, xlim=c(0,3), col=c(\"green\"))\r\n<\/pre>\n<p>I will spare you the outputs of <code>JAGS<\/code> and <code>eRm<\/code> but encourage you to download the scripts and to have a look yourself. Lets jump directly to the plots.<\/p>\n<p><a href=\"http:\/\/www.georg-hosoya.de\/wordpress\/wp-content\/uploads\/2012\/12\/tau.png\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/www.georg-hosoya.de\/wordpress\/wp-content\/uploads\/2012\/12\/tau.png\" alt=\"\" title=\"tau\" width=\"550\" height=\"450\" class=\"alignnone size-full wp-image-626\" srcset=\"https:\/\/www.georg-hosoya.de\/wordpress\/wp-content\/uploads\/2012\/12\/tau.png 550w, https:\/\/www.georg-hosoya.de\/wordpress\/wp-content\/uploads\/2012\/12\/tau-300x245.png 300w, https:\/\/www.georg-hosoya.de\/wordpress\/wp-content\/uploads\/2012\/12\/tau-366x300.png 366w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/a><br \/>\n<em>Fig. 1.: Threshold parameters estimated by eRm (red) and JAGS (green)<\/em><\/p>\n<p>Visual inspection shows that <code>eRm<\/code> and <code>JAGS<\/code> essentially agree with regard to the locations of the threshold parameters. But there seems to be a difference between <code>JAGS<\/code> and <code>eRm<\/code> that is more pronounced for higher threshold parameters. The reason for this is probably the fact that <code>JAGS<\/code> samples from the posterior distributions of the parameters while <code>eRm<\/code> is using the CML-method for threshold estimation.  <\/p>\n<p>Let's have a look at the ability estimates.<br \/>\n<a href=\"http:\/\/www.georg-hosoya.de\/wordpress\/wp-content\/uploads\/2012\/12\/abilities.png\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/www.georg-hosoya.de\/wordpress\/wp-content\/uploads\/2012\/12\/abilities.png\" alt=\"\" title=\"abilities\" width=\"550\" height=\"450\" class=\"alignnone size-full wp-image-628\" srcset=\"https:\/\/www.georg-hosoya.de\/wordpress\/wp-content\/uploads\/2012\/12\/abilities.png 550w, https:\/\/www.georg-hosoya.de\/wordpress\/wp-content\/uploads\/2012\/12\/abilities-300x245.png 300w, https:\/\/www.georg-hosoya.de\/wordpress\/wp-content\/uploads\/2012\/12\/abilities-366x300.png 366w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/a><br \/>\n<em>Fig. 2.: Ability estimates obtained by eRm (red) and JAGS (green) vs. mean score<\/em><\/p>\n<p>In Figure 2, the differences between <code>eRm<\/code> and <code>JAGS<\/code> seem to be more pronounced. While the relationsship between the mean scores and the ability estimates seems to be more or less linear for the estimates produced by <code>JAGS<\/code>, this is not the case for <code>eRm<\/code>. The reason for this is probably the fact that the ability estimates generated by <code>eRm<\/code> were produced by using the ML-method with CML-estimates for the thresholds plugged in. Warm's weighted ML method of person parameter estimation will most likely be included into future versions of <code>eRm<\/code>. <\/p>\n<p>Which estimation method is better, Bayesian estimation with <code>JAGS<\/code> or CML combined with ML as implemented in <code>eRm<\/code>? It is hard to say from this comparison, a more systematic and thorough simulation study would be due that can be easily constructed from the code above. But note that MCMC-methods can be slow, especially for larger datasets.<\/p>\n<p>The point of this post was mainly to demonstrate, how psychometric models could be fit to data with MCMC and to cross-check the results against <code>eRm<\/code>. <\/p>\n<p>The scripts can be obtained <a href='http:\/\/www.georg-hosoya.de\/wordpress\/wp-content\/uploads\/2012\/12\/PCM_jags.zip'>here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The last post&#8217;s topic about multinomial logistic regression leads very nicely to a wide range of psychometric models for categorial responses, such as the Partial Credit Model (PCM) by Masters (1982). The PCM is a psychometric model that estimates the &hellip; <a href=\"https:\/\/www.georg-hosoya.de\/wordpress\/?p=597\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/www.georg-hosoya.de\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/597"}],"collection":[{"href":"https:\/\/www.georg-hosoya.de\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.georg-hosoya.de\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.georg-hosoya.de\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.georg-hosoya.de\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=597"}],"version-history":[{"count":98,"href":"https:\/\/www.georg-hosoya.de\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/597\/revisions"}],"predecessor-version":[{"id":694,"href":"https:\/\/www.georg-hosoya.de\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/597\/revisions\/694"}],"wp:attachment":[{"href":"https:\/\/www.georg-hosoya.de\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=597"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.georg-hosoya.de\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=597"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.georg-hosoya.de\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=597"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}