{"id":2338,"date":"2022-04-15T05:03:14","date_gmt":"2022-04-15T05:03:14","guid":{"rendered":"http:\/\/optimumsportsperformance.com\/blog\/?p=2338"},"modified":"2022-11-08T03:37:28","modified_gmt":"2022-11-08T03:37:28","slug":"deriving-a-confidence-interval-from-an-estimate-and-a-p-value","status":"publish","type":"post","link":"https:\/\/optimumsportsperformance.com\/blog\/deriving-a-confidence-interval-from-an-estimate-and-a-p-value\/","title":{"rendered":"Deriving a Confidence Interval from an Estimate and a p-value"},"content":{"rendered":"<p>Although most journals require authors to include confidence intervals into their papers it isn&#8217;t mandatory for all journal (merely a recommendation). Additionally, there may be occasions when you are reading an older paper from a time when this mandate\/recommendation was not enforced. Finally, sometimes abstracts (due to word count limits) might only present p-values and estimates, in which case you might want to quickly obtain the confidence intervals to help organize your thoughts prior to diving into the paper. In these instances, you might be curious as to how you can get a confidence interval around the observed effect when all you have is a p-value.<\/p>\n<p>Bland &amp; Altman wrote a short piece of deriving confidence interval from only an estimate and a p-value in a 2011 paper in the British Medical Journal:<\/p>\n<p><span style=\"color: #0000ff;\"><strong><a style=\"color: #0000ff;\" href=\"https:\/\/www.bmj.com\/content\/343\/bmj.d2090\">Altman, DG. Bland, JM. (2011). How to obtain the confidence interval from a p-value. <em>BMJ<\/em>, 343: 1-2.<\/a><\/strong><\/span><\/p>\n<p>Before going through the approach, it is important to note that they indicate a limitation of this approach is that it wont be as accurate in smaller samples, but the method can work well in larger studies (~60 subjects or more).<\/p>\n<p><span style=\"text-decoration: underline;\"><strong>The Steps<\/strong><\/span><\/p>\n<p>The authors&#8217; list 3 easy steps to derive the confidence interval from an estimate and p-value:<\/p>\n<ol>\n<li>Calculate the test statistic for a normal distribution from the p-value.<\/li>\n<li>Calculate the standard error (ignogre the minus sign).<\/li>\n<li>Calculate the 95% CI using the standard error and a z-critical value for the desired level of confidence.<\/li>\n<li>When doing this approach for a ratio (e.g., Risk Ratio, Odds Ratio, Hazard Ratio), the formulas should be used with the estimate on the log scale (if it already isn&#8217;t) and then exponentiate (antilog) the confidence intervals to put the results back to the normal scale.<\/li>\n<\/ol>\n<p><em><strong>Calculating the test statistic<\/strong><\/em><\/p>\n<p>To calculate the test statistic use the following formula:<\/p>\n<p><em>z = -0.862 + sqrt(0.743 &#8211; 2.404 * log(p.value))<\/em><\/p>\n<p><em><strong>Calculating the standard error<\/strong><\/em><\/p>\n<p>To calculate the standard error use the following formula (remember that we are ignoring the sign of the estimate):<\/p>\n<p><em>se = abs(estimate) \/ z<\/em><\/p>\n<p>If we are dealing with a ratio, make sure that you are working on the log scale:<\/p>\n<p><em>se = abs(log(estimate)) \/ z<\/em><\/p>\n<p><em><strong>Calculating the 95% Confidence Limits<\/strong><\/em><\/p>\n<p>Once you have the standard error, the 95% Confidence Limits can be calculated by multiplying the standard error by the z-critical value of 1.96:<\/p>\n<p><em>CL.95 = 1.96 * se<\/em><\/p>\n<p>From there, the 95% Confidence Interval can be calculated:<\/p>\n<p><em>low95 = Estimate &#8211; CL.95<\/em><br \/>\n<em>high95 = Estimate + CL.95<\/em><\/p>\n<p>Remember, if you are working with rate statistics and you want to get the confidence interval on the natural scale, you will need to take the antilog:<\/p>\n<p><em>low95 = exp(Estimate &#8211; CL.95)<\/em><br \/>\n<em>high95 = exp(Estimate + CL.95)<\/em><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"text-decoration: underline;\"><strong>Writing a function<\/strong><\/span><\/p>\n<p>To make this simple, I&#8217;ll write everything into a function. The function will take three arguments, which you will need to obtain from the paper:<\/p>\n<ol>\n<li>p-value<\/li>\n<li>The estimate (e.g., difference in means, risk ratio, odds ratio, hazard ratio, etc)<\/li>\n<\/ol>\n<p>The function will default to <strong>log = FALSE<\/strong> but if you are working with a rate statistic you can change the argument to <strong>log = TRUE<\/strong> to get the results on both the log and natural scales. The function also takes a <strong>sig_digits<\/strong> argument, which defaults to 3 but can be changed depending on how many significant digits you need.<\/p>\n<pre class=\"brush: r; title: ; notranslate\" title=\"\">\r\nestimate_ci_95 &lt;- function(p_value, estimate, log = FALSE, sig_digits = 3){\r\n  \r\n  if(log == FALSE){\r\n    \r\n    z &lt;- -0.862 + sqrt(0.743 - 2.404 * log(p_value))\r\n    z\r\n\r\n    se &lt;- abs(estimate) \/ z\r\n    se\r\n    \r\n    cl &lt;- 1.96 * se\r\n    \r\n    low95 &lt;- estimate - cl\r\n    high95 &lt;- estimate + cl\r\n    \r\n    list('Standard Error' = round(se, sig_digits),\r\n         '95% CL' = round(cl, sig_digits),\r\n         '95% CI' = paste(round(low95, sig_digits), round(high95, sig_digits), sep = &quot;, &quot;))\r\n    \r\n  } else {\r\n    \r\n    if(log == TRUE){\r\n      \r\n      z &lt;- -0.862 + sqrt(0.743 - 2.404 * log(p_value))\r\n      z\r\n      \r\n      se &lt;- abs(estimate) \/ z\r\n      se\r\n      \r\n      cl &lt;- 1.96 * se\r\n      \r\n      low95_log_scale &lt;- estimate - cl\r\n      high95_log_scale &lt;- estimate + cl\r\n      \r\n      low95_natural_scale &lt;- exp(estimate - cl)\r\n      high95_natural_scale &lt;- exp(estimate + cl)\r\n      \r\n      list('Standard Error (log scale)' = round(se, sig_digits),\r\n           '95% CL (log scale)' = round(cl, sig_digits),\r\n           '95% CL (natural scale)' = round(exp(cl), sig_digits),\r\n           '95% CI (log scale)' = paste(round(low95_log_scale, sig_digits), round(high95_log_scale, sig_digits), sep = &quot;, &quot;),\r\n           '95% CI (natural scale)' = paste(round(low95_natural_scale, sig_digits), round(high95_natural_scale, sig_digits), sep = &quot;, &quot;))\r\n      \r\n    }\r\n    \r\n  }\r\n  \r\n}\r\n<\/pre>\n<p><span style=\"text-decoration: underline;\"><strong>\u00a0Test the function out<\/strong><\/span><\/p>\n<p>The paper provides two examples, one for a difference in means and the other for risk ratios.<\/p>\n<p><em><strong>Example 1<\/strong><\/em><\/p>\n<p>Example 1 states:<\/p>\n<blockquote><p>&#8220;the abstract of a report of a randomised trial included the statement that &#8220;more patients in the zinc group than in the control group recovered by two days (49% v 32%,P=0.032).&#8221; The difference in proportions was Est = 17 percentage points, but what is the 95% confidence interval (CI)?<\/p><\/blockquote>\n<pre class=\"brush: r; title: ; notranslate\" title=\"\">\r\nestimate_ci_95(p_value = 0.032, estimate = 17, log = FALSE, sig_digits = 1)\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-14-at-9.46.32-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2339\" src=\"https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-14-at-9.46.32-PM-1024x312.png\" alt=\"\" width=\"572\" height=\"174\" srcset=\"https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-14-at-9.46.32-PM-1024x312.png 1024w, https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-14-at-9.46.32-PM-300x91.png 300w, https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-14-at-9.46.32-PM-768x234.png 768w, https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-14-at-9.46.32-PM-624x190.png 624w, https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-14-at-9.46.32-PM.png 1124w\" sizes=\"auto, (max-width: 572px) 100vw, 572px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><em><strong>Example 2<br \/>\n<\/strong><\/em><\/p>\n<p>Example 2 states:<\/p>\n<blockquote><p>&#8220;the abstract of a report of a cohort study includes the statement that \u201cIn those with a [diastolic blood pressure] reading of 95-99 mm Hg the relative risk was 0.30 (P=0.034).\u201d What is the confidence interval around 0.30?&#8221;<\/p><\/blockquote>\n<p>Here we change the argument to <strong>log = TRUE<\/strong> since this is a ratio statistic needs to be on the log scale.<\/p>\n<pre class=\"brush: r; title: ; notranslate\" title=\"\">\r\nestimate_ci_95(p_value = 0.034, estimate = log(0.3), log = TRUE, sig_digits = 2)\r\n<\/pre>\n<p><a href=\"https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-14-at-10.09.15-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-2349\" src=\"https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-14-at-10.09.15-PM-1024x441.png\" alt=\"\" width=\"625\" height=\"269\" srcset=\"https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-14-at-10.09.15-PM-1024x441.png 1024w, https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-14-at-10.09.15-PM-300x129.png 300w, https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-14-at-10.09.15-PM-768x331.png 768w, https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-14-at-10.09.15-PM-624x269.png 624w, https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-14-at-10.09.15-PM.png 1216w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><\/p>\n<p><span style=\"text-decoration: underline;\"><strong>Try the approach out on a different data set to confirm the confidence intervals are calculated properly<\/strong><\/span><\/p>\n<p>Below, we build a simple logistic regression model for the <strong>PimaIndiansDiabetes<\/strong> data set from the {mlbench} package.<\/p>\n<ul>\n<li>The odds ratios are already on the log scale so we set the argument <strong>log = TRUE<\/strong> to ensure we get results reported back to us on the natural scale, as well.<\/li>\n<li>We use the <strong>summary()<\/strong> function to obtain the model estimates and p-values.<\/li>\n<li>We use the <strong>confint()<\/strong> function to get the 95% Confidence Intervals from the model.<\/li>\n<li>To get the confidence intervals on the natural scale we also take the exponent, <strong>exp(confint())<\/strong>.<\/li>\n<li>We use our custom function, <strong>estimate_ci_95()<\/strong>, to see how well the results compare.<\/li>\n<\/ul>\n<pre class=\"brush: r; title: ; notranslate\" title=\"\">\r\n## get data\r\nlibrary(mlbench)\r\ndata(&quot;PimaIndiansDiabetes&quot;)\r\ndf &lt;- PimaIndiansDiabetes\r\n\r\n## turn outcome variable into a numeric (0 = negative for diabetes, 1 = positive for diabetes)\r\ndf$diabetes_num &lt;- ifelse(df$diabetes == &quot;pos&quot;, 1, 0)\r\nhead(df)\r\n\r\n## simple model\r\ndiabetes_glm &lt;- glm(diabetes_num ~ pregnant + glucose + insulin, data = df, family = &quot;binomial&quot;)\r\n\r\n## model summary\r\nsummary(diabetes_glm)\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.42.04-AM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2355\" src=\"https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.42.04-AM-1024x822.png\" alt=\"\" width=\"557\" height=\"447\" srcset=\"https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.42.04-AM-1024x822.png 1024w, https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.42.04-AM-300x241.png 300w, https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.42.04-AM-768x617.png 768w, https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.42.04-AM-624x501.png 624w, https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.42.04-AM.png 1166w\" sizes=\"auto, (max-width: 557px) 100vw, 557px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><strong><em>Calculate 95% CI from the p-values and odds ratio estimates.<\/em><\/strong><\/p>\n<p>Pregnant Coefficient<\/p>\n<pre class=\"brush: r; title: ; notranslate\" title=\"\">\r\n## 95% CI for the pregnant coefficient\r\nestimate_ci_95(p_value = 2.11e-06, estimate = 0.122, log = TRUE, sig_digits = 3)\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.42.51-AM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-2356\" src=\"https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.42.51-AM-1024x465.png\" alt=\"\" width=\"625\" height=\"284\" srcset=\"https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.42.51-AM-1024x465.png 1024w, https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.42.51-AM-300x136.png 300w, https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.42.51-AM-768x349.png 768w, https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.42.51-AM-624x283.png 624w, https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.42.51-AM.png 1224w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><\/p>\n<p>Glucose Coefficient<\/p>\n<pre class=\"brush: r; title: ; notranslate\" title=\"\">\r\n## 95% CI for the glucose coefficient\r\nestimate_ci_95(p_value = 2e-16, estimate = 0.0375, log = TRUE, sig_digits = 3)\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.43.00-AM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-2357\" src=\"https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.43.00-AM-1024x501.png\" alt=\"\" width=\"625\" height=\"306\" srcset=\"https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.43.00-AM-1024x501.png 1024w, https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.43.00-AM-300x147.png 300w, https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.43.00-AM-768x375.png 768w, https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.43.00-AM-624x305.png 624w, https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.43.00-AM.png 1174w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><\/p>\n<p>Insulin Coefficient<\/p>\n<pre class=\"brush: r; title: ; notranslate\" title=\"\">\r\n## 95% CI for the insulin coefficient\r\nestimate_ci_95(p_value = 0.677, estimate = -0.0003, log = TRUE, sig_digits = 5)\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.43.08-AM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-2358\" src=\"https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.43.08-AM-1024x490.png\" alt=\"\" width=\"625\" height=\"299\" srcset=\"https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.43.08-AM-1024x490.png 1024w, https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.43.08-AM-300x144.png 300w, https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.43.08-AM-768x367.png 768w, https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.43.08-AM-624x299.png 624w, https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.43.08-AM.png 1204w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><\/p>\n<p>Evaluate the results from the custom function to those calculated with the <strong>confint()<\/strong> function.<\/p>\n<pre class=\"brush: r; title: ; notranslate\" title=\"\">\r\n## Confidence Intervals on the Log Scale\r\nconfint(diabetes_glm)\r\n\r\n## Confidence Intervals on the Natural Scale\r\nexp(confint(diabetes_glm))\r\n<\/pre>\n<p><a href=\"https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.44.36-AM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2359\" src=\"https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.44.36-AM.png\" alt=\"\" width=\"510\" height=\"429\" srcset=\"https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.44.36-AM.png 706w, https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.44.36-AM-300x252.png 300w, https:\/\/optimumsportsperformance.com\/blog\/wp-content\/uploads\/2022\/04\/Screen-Shot-2022-04-15-at-5.44.36-AM-624x525.png 624w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/a><\/p>\n<p>We get nearly the same results with a bit of rounding error!<\/p>\n<p>Hopefully this function will be of use to some people as they read papers or abstracts.<\/p>\n<p>You can find the complete code in a cleaned up markdown file on my <span style=\"color: #0000ff;\"><strong><a style=\"color: #0000ff;\" href=\"https:\/\/github.com\/pw2\/R-Tips-Tricks\/blob\/master\/Deriving%20a%20Confidence%20Interval%20from%20an%20Estimate%20and%20a%20p-value.Rmd\">GITHUB page<\/a><\/strong><\/span>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Although most journals require authors to include confidence intervals into their papers it isn&#8217;t mandatory for all journal (merely a recommendation). Additionally, there may be occasions when you are reading an older paper from a time when this mandate\/recommendation was not enforced. Finally, sometimes abstracts (due to word count limits) might only present p-values and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[47,45,43,42],"tags":[],"class_list":["post-2338","post","type-post","status-publish","format-standard","hentry","category-model-building-in-r","category-r-tips-tricks","category-sports-analytics","category-sports-science"],"_links":{"self":[{"href":"https:\/\/optimumsportsperformance.com\/blog\/wp-json\/wp\/v2\/posts\/2338","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/optimumsportsperformance.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/optimumsportsperformance.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/optimumsportsperformance.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/optimumsportsperformance.com\/blog\/wp-json\/wp\/v2\/comments?post=2338"}],"version-history":[{"count":13,"href":"https:\/\/optimumsportsperformance.com\/blog\/wp-json\/wp\/v2\/posts\/2338\/revisions"}],"predecessor-version":[{"id":2365,"href":"https:\/\/optimumsportsperformance.com\/blog\/wp-json\/wp\/v2\/posts\/2338\/revisions\/2365"}],"wp:attachment":[{"href":"https:\/\/optimumsportsperformance.com\/blog\/wp-json\/wp\/v2\/media?parent=2338"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/optimumsportsperformance.com\/blog\/wp-json\/wp\/v2\/categories?post=2338"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/optimumsportsperformance.com\/blog\/wp-json\/wp\/v2\/tags?post=2338"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}