<p><div><div><div><div data-width="100" data-show-faces="false" data-send="true" data-layout="button_count" data-height="21" data-href="https://www.r-bloggers.com/explaining-the-almon-distributed-lag-model/"></div></div><div></div></div><div></div></div>
<div>
(This article was first published on <strong><a href="http://davegiles.blogspot.com/2017/01/explaining-almon-distributed-lag-model.html"> Econometrics Beat: Dave Giles' Blog</a></strong>, and kindly contributed to <a rel="nofollow" href="https://www.r-bloggers.com/">R-bloggers)</a> </div>
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div>In an <a target="_blank" rel="nofollow" href="http://davegiles.blogspot.ca/2016/03/who-was-shirley-almon.html">earlier pos</a><a target="_blank" rel="nofollow" href="http://davegiles.blogspot.ca/2016/03/who-was-shirley-almon.html">t</a><span> I discus</span><span>sed Shirley Almon’s contribution to the estimation of Distributed Lag (DL) models, with her seminal paper in 1965.</span></div>
</div>
</div>
<p><span><br></span><span>That post drew quite a number of email requests for more information about the Almon estimator, and how it fits into the overall scheme of things. In addition, Almon’s approach to modelling distributed lags has been used very effectively more recently in the estimation of the so-called MIDAS model. The MIDAS model (developed by Eric Ghysels and his colleagues – <i>e.g</i>., see Ghysels <i>et al</i>., 2004) is designed to handle regression analysis using data with different observation frequencies. The acronym, “MIDAS”, stands for “Mixed-Data Sampling”. The MIDAS model can be implemented in R, for instance (<i>e.g</i>., see <a target="_blank" rel="nofollow" href="https://www.jstatsoft.org/article/view/v072i04/v72i04.pdf">here</a>), as well as in <a target="_blank" rel="nofollow" href="http://www.eviews.com/home.html">EViews</a>. (I discussed this in this <a target="_blank" rel="nofollow" href="http://davegiles.blogspot.ca/2016/03/midas-regression-is-now-in-eviews.html">earlier post</a>.)</span><br><span><br></span><span>For these reasons I thought I’d put together this follow-up post by way of an introduction to the Almon DL model, and some of the advantages and pitfalls associated with using it.</span><br><span><br></span><span>Let’s take a look.</span><br><span></span><br><a name="more"></a><span>Suppose that we want to estimate the coefficients of the following DL model:</span>
<div><span><br></span></div>
<div><span>          y<sub>t</sub> = β<sub>0</sub> x<sub>t</sub> + β<sub>1</sub> x<sub>t-1</sub> + β<sub>2</sub> x<sub>t-2</sub> + …….. + β<sub>n</sub> x <sub>t-n</sub> + u<sub>t</sub>          ;         t = 1, 2, …., T.       (1)</span></div>
<div><span><br></span></div>
<div><span>This is called a “finite” DL model if the value of n is finite. </span></div>
<div><span><br></span></div>
<div><span>We could add an intercept into the model, and/or add other regressors, but that won’t alter the basic ideas in the following discussion. So let’s keep the model as simple as possible. </span><span>We’ll presume that the error term, u</span><sub>t</sub><span> , satisfies all of the usual assumptions – but that can be relaxed too.</span><br><span><br></span><span>If the maximum lag length in the model, n, is much less than T, then we could just apply OLS to estimate the regression coefficients. However, even if this is feasible, in the sense that there are positive degrees of freedom, this may not be the smartest way in which to proceed. For most economic time-series, x, the successive lags of the variable are likely to be highly correlated with each other. Inevitably, this will result in quite severe multicollinearity.</span><br><span><br></span><span>How can we deal with this?</span>
<p><span></span> <span>In response, Shirley Almon (1965) suggested a pretty neat way of re-formulating the model prior to its estimation. She made use of </span><span>Weierstrass’s Approximation Theorem, which tells us (roughly) that: “Every continuous function defined on a closed interval [a, b] can be uniformly approximated, arbitrarily closely, by a polynomial function of finite degree, P.”</span>
<div><span><br></span></div>
<div><span>Notice that the theorem <i>doesn’t tell us </i>what the value of P will be. This presents a type of model-selection problem that we have to solve. The flip-side of this is that if we <i>select</i> a value for P, and get it wrong, then there will be model mis-specification issues that we have to face. In fact, we can re-cast these issues in terms of those associated with the incorrect imposition of linear restrictions on the parameters of our model.</span><br><span><br></span><span>(Almon actually used Lagrangian interpolation in her application of Weierstrass’s Theorem to this problem, but there’s a simpler (and numerically equivalent) way of describing her idea.)</span><br><span><br></span><span>Let’s look into this in model in more detail.</span><br><span><br></span><span>Here’s equation (1) again:</span><br><span><br></span>
<div><span>          y</span><sub>t</sub><span> </span><span>= β</span><sub>0</sub><span> </span><span>x</span><sub>t</sub><span> + β</span><sub>1</sub><span> </span><span>x</span><sub>t-1</sub><span> + β</span><sub>2</sub><span> </span><span>x</span><sub>t-2</sub><span> + …….. + β</span><sub>n</sub><span> </span><span>x</span><span> </span><sub>t-n</sub><span> + u</span><sub>t</sub><span>          ;         t = 1, 2, …., T.       (1)</span></div>
<p></div>
</div>
<div><span>What we’re going to do is to treat the values of the regression coefficients, β<sub>i</sub>, as unknown functions of “i” That is, we’</span><span>ll set β</span><sub>i</sub><span> = g(i). Then we’ll approximate g(i) using a polynomial, f(i), of order P. Typically, P will take a small value, such 2, 3, or 4.</span><br><span><br></span><span>That is, we’ll write:</span><br><span><br></span><span>               β<sub>i</sub> = a<sub>0</sub> + a<sub>1</sub>i + a<sub>2</sub>i<sup>2</sup> + …. + a<sub>P</sub>i<sup>P</sup>                      ;     i = 1, 2, ….., n                      (2)</span></div>
<p><span>Substituting (2) into (1), we get:</span><span><br></span><span><span>    y</span><sub>t</sub><span> </span><span>= a</span><sub>0</sub><span> </span><span>x</span><sub>t</sub><span> + (</span></span><span>a</span><sub>0</sub><span> + a</span><sub>1</sub><span> + a</span><sub>2</sub><span> + …. + a</span><sub>P</sub><span>)</span><span> </span><span>x</span><sub>t-1</sub><span> + (</span><span>a</span><sub>0</sub><span> + 2a</span><sub>1</sub><span> + 4a</span><sub>2</sub><span> + …. + 2</span><sup>P</sup><span>a</span><sub>P</sub><span>) </span><span>x</span><sub>t-2</sub><span> + …….. </span><br><span>       + (</span><span>a</span><sub>0</sub><span> + na</span><sub>1</sub><span> + n</span><sup>2</sup><span>a</span><sub>2</sub><span> + …. + n</span><sup>P</sup><span>a</span><sub>P</sub><span>) </span><span>x</span><span> </span><sub>t-n</sub><span> + u</span><sub>t</sub><span>          ;         t = 1, 2, …., T.                     (3)</span><br><span><br></span><span>Re-arranging the right-hand side of (3), and gathering up terms, we get:</span><br><span><br></span><span><span>y</span><sub>t</sub><span> </span><span>= a</span><sub>0</sub><span> (</span><span>x</span><sub>t</sub><span> + </span></span><span>x</span><sub>t-1 </sub><span><span>+ </span></span><span> </span><span>x</span><sub>t-2</sub><span> + ……+ </span><span> </span><span>x</span><span> </span><sub>t-n</sub><span><span>) +  </span></span><span>a</span><sub>1</sub><span> (</span><span>x</span><sub>t-1</sub><span> + 2</span><span>x</span><sub>t-2</sub><span> + </span><span>…. + n</span><span>x</span><sub>t-n</sub><span>)</span><span> +</span><span> </span><span>a</span><sub>2</sub><span> (</span><span>x</span><sub>t-1</sub><span>+ 4</span><span>x</span><sub>t-2</sub><span> + 9</span><span>x</span><sub>t-3 </sub><span>+…… </span><br><span></span><br><span>     + </span><span>n</span><sup>2 </sup><span>x</span><sub>t-n</sub><span>)</span><span> + ……… + </span><span>a</span><sub>P </sub><span>(</span><span>x</span><sub>t-1</sub><span> + </span><span>2</span><sup>P</sup><span>x</span><sub>t-2</sub><span> + </span><span>…. + </span><span>n</span><sup>P</sup><span>x</span><sub>t-n</sub><span>)</span><span>  + </span><span>u</span><sub>t</sub><span>     </span><span>;         t = 1, 2, …., T.                                                                                                                                                       (4)</span><br><span>If we’ve decided on a maximum lag-length (n), and we have chosen a degree (P) for the approximating polynomial, f(.), then we can re-write (4) as:</span><br><span><br></span><span><span>         y</span><sub>t</sub><span> </span><span>= a</span><sub>0</sub><span> z<sub>0t</sub> </span></span><span><span>+ </span></span><span>a</span><sub>1</sub><span> z<sub>1t</sub></span><span> +</span><span> </span><span>a</span><sub>2</sub><span> z<sub>2t</sub></span><span> + ……… + </span><span>a</span><sub>P </sub><span><span>z<sub>Pt</sub> </span>+ </span><span>u</span><sub>t</sub><span>     </span><span>;         t = 1, 2, …., T.       </span><span>    (5)</span><span>                                                                                                                                            </span><br><span>where:</span><br><span><br></span><span>      z<sub>0t</sub> = </span><span><span>(</span><span>x</span><sub>t</sub><span> + </span></span><span>x</span><sub>t-1 </sub><span><span>+ </span></span><span> </span><span>x</span><sub>t-2</sub><span> + ……+ </span><span> </span><span>x</span><span> </span><sub>t-n</sub><span><span>) </span></span><br><span><br></span><span>      z<sub>1t</sub> = </span><span>(</span><span>x</span><sub>t-1</sub><span> + 2</span><span>x</span><sub>t-2</sub><span> + </span><span>…. + n</span><span>x</span><sub>t-n</sub><span>)</span><br><span><br></span><span>      z<sub>2t</sub> = </span><span> (</span><span>x</span><sub>t-1 </sub><span>+ </span><span>4</span><span>x</span><sub>t-2</sub><span> + 9</span><span>x</span><sub>t-3 </sub><span>+…… +</span><span> </span><span>n</span><sup>2 </sup><span>x</span><sub>t-n</sub><span>)</span><span> </span><br><span>      .</span><br><span>      .</span><br><span>      .</span><br><span><span>      z</span><sub>Pt</sub> = </span><span>(</span><span>x</span><sub>t-1</sub><span> + </span><span>2</span><sup>P</sup><span>x</span><sub>t-2</sub><span> + </span><span>…. + </span><span>n</span><sup>P</sup><span>x</span><sub>t-n</sub><span>) .</span><br><span><br></span>
<div><span><span>Notice that if P is much smaller than n in value, then the number of regression coefficients that have to be estimated in (5) is much less than in (1). We have effectively imposed (n – P) exact linear restrictions on the original  coefficient vector. If these restrictions are incorrect, then there will be serious implications for the properties of our final estimator. Positively, however,, the z variables are likely to exhibit far less multicollinearity than do the successive lags of x itself in model (1).</span></span></div>
<p><span>For a given n and P, we can construct the z variables, then estimate a<sub>0</sub>, a<sub>1</sub>,….., a<sub>P</sub> by applying OLS to (5), and finally “recover” the estimates for the β<sub>i</sub>‘s using (2):</span><br><span>  </span><span>      β<sub>i</sub>*= a<sub>0</sub>*+ a<sub>1</sub>*i + a<sub>2</sub>*i<sup>2</sup> + …. + a<sub>P</sub>*i<sup>P</sup>                      ;     i = 1, 2, ….., n              (6)</span><span><br></span><span><br></span><br><span>where a * superscript denotes an OLS estimate.</span></p>
<p><span>Because the relationship between the </span><span>β</span><sub>i</sub><span>*’s and the </span><span>a<span>j</span></span><span>*</span><span>‘s in (6) is a linear one, it is trivial to “recover” the standard errors for the former estimates form the covariance matrix associated with the latter estimates.</span><br><span><br></span>
<div><span>All of this is described in some detail in an old discussion paper by Smith and Giles (1976), referenced below.</span></div>
<div><span><br></span></div>
<div><span>Now let’s consider a specific example, to make all of this more “concrete”.</span></div>
<div><span><br></span></div>
<div><span><b>An Example</b></span></div>
<div><span><br></span><span>Here’s the original model, again:</span><br><span><br></span></div>
<div><span>        y<sub>t</sub> = β<sub>0</sub> x<sub>t</sub> + β<sub>1</sub> x<sub>t-1</sub> + β<sub>2</sub> x<sub>t-2</sub> + …….. + β<sub>n</sub> x <sub>t-n</sub> + u<sub>t</sub>          ;         t = 1, 2, …., T.       (7)</span></div>
<p>
<div><span><br></span></div>
<p><span></span>
<div><span>Let’s choose P = 2. This is very restrictive indeed, in terms of the “shapes” that the lag distribution can take. However, it will simplify the discussion here. More complex (and realistic) cases are discussed in detail by Smith and Giles (1976).</span></div>
<p><span></span>
<div><span><br></span></div>
<p><span></span>
<div><span>So, we have:</span></div>
<p><span></span>
<div><span><br></span></div>
<p><span></span>
<div><span>        β<sub>i</sub> = a<sub>0</sub> + a<sub>1</sub>i + a<sub>2</sub>i<sup>2</sup>                      ;     i = 1, 2, ….., n                                              (8)</span></div>
<p><span></span>
<div><span><br></span></div>
<p><span></span>
<div><span>which implies that</span></div>
<p><span>
<div></div>
<div>        y<sub>t</sub> = a<sub>0</sub> x<sub>t</sub> + (a<sub>0</sub> + a<sub>1</sub> + a<sub>2</sub>) x<sub>t-1</sub> + (a<sub>0</sub> + 2a<sub>1</sub> + 4a<sub>2</sub>) x<sub>t-2</sub> + …….. + (a<sub>0</sub> + na<sub>1 </sub>+ n<sup>2</sup>a<sub>2</sub>) x <sub>t-n</sub> </div>
<div>              + u<sub>t</sub>          ;         t = 1, 2, …., T</div>
<div></div>
<div>or, </div>
<div>    y<sub>t</sub> = a<sub>0</sub> (x<sub>t</sub> + x<sub>t-1</sub> + x<sub>t-2</sub> + …….. + x <sub>t-n</sub>) +  a<sub>1 </sub>(x<sub>t-1</sub> + 2x<sub>t-2</sub> + …….. + nx <sub>t-n</sub>) </div>
<div>         +  a<sub>2 </sub>(x<sub>t-1</sub> + 4x<sub>t-2</sub> + …….. + n<sup>2</sup>x <sub>t-n</sub>) + u<sub>t</sub>          ;         t = 1, 2, …., T</div>
<div></div>
<div>or,</div>
<p>
<div>    y<sub>t</sub> = a<sub>0</sub> z<sub>0t</sub> +  a<sub>1 </sub>z<sub>1t</sub>  + a<sub>2 </sub>z<sub>2t</sub><sub> </sub>+ u<sub>t</sub>          ;         t = 1, 2, …., T                                  (9)</div></span>
<div>
<div></div>
</div>
<p><span></span>
<div><span>Here,</span></div>
<div></div>
<div><span>    z<sub>0t </sub>= (x<sub>t</sub> + x<sub>t-1</sub> + x<sub>t-2</sub> + …….. + x <sub>t-n</sub>) </span></div>
<p><span><sub>    </sub><span>z</span><sub>1t</sub><span>  = </span></span><span>(x</span><sub>t-1</sub><span> + 2</span><span>x</span><sub>t-2</sub><span> + …….. + n</span><span>x </span><sub>t-n</sub><span>)</span></p>
<div><span><br></span></div>
<div><span>   z</span><sub>2t</sub><sub> </sub><span>= (x</span><sub>t-1</sub><span> + 4</span><span>x</span><sub>t-2</sub><span> + …….. + n</span><sup>2</sup><span>x </span><sub>t-n</sub><span>)                   </span><span>;         t = 1, 2, …., T</span></div>
<div><span><br></span></div>
<div><span>We construct the z variables; estimate the coefficients in (9) by OLS; and then create estimates of the original </span><span> β</span><sub>i</sub><span>‘s using (8). Effectively, we now have (particular) restricted least squares estimates of the original coefficients in (7).</span></div>
<div><span><br></span></div>
<div><span><b>An Extension</b></span></div>
<div><span><b><br></b></span></div>
<div><span>Often, we’ll have economic information that will suggest something further about the pattern (lag distribution) that the values of the </span><span>β</span><sub>i</sub><span>‘s should follow. For instance, we may know that it makes sense for the lag weights to “die out” to zero when i = n+1. Or we may want the <i>slope</i> of the lag distribution to be zero when i = n. There are lots of such pieces of prior information that we may want to impose on the problem, and some of these are discussed by Smith and Giles (1976), together with graphs and details of the associated formulae.</span></div>
<div><span><br></span></div>
<div><span>Of course, these shape restrictions <i>add to</i> those already in play as a result of choosing a value for P. They further extend the chance that we may be imposing false restrictions on the parameter space, and this would lead our OLS estimates to be both biased and inconsistent. So, extreme care should be taken, and there are some important model-selection issues to be taken into account here.</span></div>
<div><span><br></span></div>
<div><span>Let’s illustrate this by extending the previous example. We’ll stick with the choice of P = 2, but we’ll add the restriction that the derivative of f(i) should be zero when i = n. This is Case 5 in the paper by Smith and Giles (1976).</span></div>
<div><span><br></span></div>
<div><span>Noting that </span><span>β</span><sub>i</sub><span> </span><span>= </span><span>f(i) = </span><span>a</span><sub>0</sub><span> + a</span><sub>1</sub><span>i + a</span><sub>2</sub><span>i</span><sup>2</sup><span> </span><span> , it follows that f ‘(i) = </span><span>a</span><sub>1</sub><span> + 2a</span><sub>2</sub><span>i</span><span>, and we’re going to set </span></div>
<div><span><br></span></div>
<div><span>       f ‘(n) = </span><span>a</span><sub>1</sub><span> + 2na</span><sub>2 </sub><span>= 0 ,</span></div>
<div><span><br></span></div>
<div><span>implying that  </span><span>a</span><sub>1</sub><span> = – 2na</span><sub>2</sub><span>.</span></div>
<div><span><br></span></div>
<div><span>Now we can eliminate </span><span>a</span><sub>1</sub><span> </span><span>from the problem (that’s a linear restriction that we’re imposing, right there).</span></div>
<div><span><br></span></div>
<div><span>Looking back at equation (9) we can see that the resulting equation that we’ll be estimating is now of the form:</span></div>
<div><span><br></span></div>
<div><span>     y</span><sub>t</sub><span> = a</span><sub>0</sub><span> z</span><sub>0t</sub><span> </span><span>+ </span><span>a</span><sub>2 </sub><span>(z</span><sub>2t</sub><sub> </sub><span>– 2n </span><span>z</span><sub>1t</sub><span>) + u</span><sub>t</sub><span>          ;         t = 1, 2, …., T                                  (10)</span></div>
<div><span><br></span></div>
<div><span>Then, the estimates of the original regression coefficients are</span></div>
<div><span><br></span></div>
<div><span>      β</span><sub>i</sub><span>*</span><span>= </span><span>a</span><sub>0</sub><span>*+ a</span><sub>1</sub><span>*i + a</span><sub>2</sub><span>*</span><span>i</span><sup>2                 </sup><span>;     i = 1, 2, …., n.</span></div>
<div><span><br></span></div>
<div><span>So, what are the take-away messages here? They can be summarized pretty simply:</span>
<ul>
<li><span>The Almon estimator provides a rather neat way of circumventing the multicollinearity problems that would arise if we simply estimated a DL model, with lots of lags, directly by OLS.</span></li>
<li><span>It does this by approximating the “shape” of the distribution of the lag coefficients through time  by a polynomial of order P.</span></li>
<li><span>The value of P has to be chosen by the user, and this leads to a model-selection problem.</span></li>
<li><span>The choice of P also affects the form of certain exact linear restrictions that are effectively being placed on the regression coefficients.</span></li>
<li><span>This leads to the possibility that false restrictions are imposed, and this would lead to the resulting estimator being both biased and inconsistent.</span></li>
<li><span>Additional restrictions can be placed on the lag distribution, based on our knowledge of the underlying economics of the relationship we’re estimating.</span></li>
<li><span>Applying such restrictions should also be undertaken with care, again to avoid adversely affecting the properties of our estimator.</span></li>
</ul>
<div><span>Some of the potential model-selection and mis-specification issues that can plague the Almon DL estimator can be resolved in a straightforward manner if one takes a Bayesian approach to the problem. For more details, and an empirical application, see Giles (1977).</span></div>
</div>
<div><span><br></span></div>
<div><b><span>References</span></b></div>
<p><span><br></span>
<div><span><a target="_blank" rel="nofollow" href="http://almon%2C%20s.%2C%201965.%20the%20distributed%20lag%20between%20capital%20appropriations%20and%20net%20expenditures.%20econometrica%2C%2033%2C%20178-196./">Almon, S</a>.<span>, 1965. The distributed lag between capital appropriations and net expenditures. </span><i>Econometrica</i><span>, 33, 178-196.</span></span></div>
<p><a target="_blank" rel="nofollow" href="http://docentes.fe.unl.pt/~psc/MIDAS.pdf"><span></span><br></a><a target="_blank" rel="nofollow" href="http://docentes.fe.unl.pt/~psc/MIDAS.pdf"><span></span></a>
<div><span><a target="_blank" rel="nofollow" href="http://docentes.fe.unl.pt/~psc/MIDAS.pdf">Ghysels, E., P. Santa-Clara, &amp; R. Valkanov</a>, 2004. The MIDAS touch: Mixed data sampling regression models. Mimeo.</span><br><span><br></span></div>
<div><span><a target="_blank" rel="nofollow" href="http://www.tandfonline.com/doi/abs/10.1080/00036847700000022#.VvbD1OIrLDc">Giles, D.E.A.</a>, 1977. Current payments for New Zealand’s imports: A Bayesian analysis. <i>Applied Economics</i>, 9, 185-201.</span></div>
<div></div>
<p><a target="_blank" rel="nofollow" href="http://web.uvic.ca/~dgiles/blog/Almon.pdf">Smith, R.G. &amp; D.E.A. Giles</a><span>,1976. The Almon estimator: Methodology and users’ guide. Discussion Paper E76/3, Economic Department, Reserve Bank of New Zealand.</span><br><span><br></span><span></span>
<div><span>Weierstrass, K., 1885. Über die analytische Darstellbarkeit sogenannter willkürlicher Functionen einer reellen Veränderlichen. </span><i>Sitzungsberichte der Königlich Preußischen Akademie der Wissenschaften zu Berlin</i><span>, (II).</span><br><span><br></span></div>
<p><span></span><br><center><span>© 2017, David E. Giles </span></center></div>
<p>
<div>
<div>To <strong>leave a comment</strong> for the author, please follow the link and comment on their blog: <strong><a href="http://davegiles.blogspot.com/2017/01/explaining-almon-distributed-lag-model.html"> Econometrics Beat: Dave Giles' Blog</a></strong>.</div>
<hr>
<a rel="nofollow" href="https://www.r-bloggers.com/">R-bloggers.com</a> offers <strong><a rel="nofollow" href="https://feedburner.google.com/fb/a/mailverify?uri=RBloggers">daily e-mail updates</a></strong> about <a title="The R Project for Statistical Computing" rel="nofollow" href="https://www.r-project.org/">R</a> news and <a title="R tutorials" rel="nofollow" href="https://www.r-bloggers.com/search/tutorial">tutorials</a> on topics such as: <a title="Data science" rel="nofollow" href="https://www.r-bloggers.com/search/data%20science">Data science</a>, <a title="Big Data" rel="nofollow" href="https://www.r-bloggers.com/search/Big%20Data">Big Data, <a title="R jobs" rel="nofollow" href="https://www.r-users.com/">R jobs</a>, visualization (<a title="ggplot and ggplot2 tutorials" rel="nofollow" href="https://www.r-bloggers.com/search/ggplot2">ggplot2</a>, <a title="Boxplots using lattice and ggplot2 tutorials" rel="nofollow" href="https://www.r-bloggers.com/search/boxplot">Boxplots</a>, <a title="Maps and gis" rel="nofollow" href="https://www.r-bloggers.com/search/map">maps</a>, <a title="Animation in R" rel="nofollow" href="https://www.r-bloggers.com/search/animation">animation</a>), programming (<a title="RStudio IDE for R" rel="nofollow" href="https://www.r-bloggers.com/search/RStudio">RStudio</a>, <a title="Sweave and literate programming" rel="nofollow" href="https://www.r-bloggers.com/search/sweave">Sweave</a>, <a title="LaTeX in R" rel="nofollow" href="https://www.r-bloggers.com/search/LaTeX">LaTeX</a>, <a title="SQL and databases" rel="nofollow" href="https://www.r-bloggers.com/search/SQL">SQL</a>, <a title="Eclipse IDE for R" rel="nofollow" href="https://www.r-bloggers.com/search/eclipse">Eclipse</a>, <a title="git and github, Version Control System" rel="nofollow" href="https://www.r-bloggers.com/search/git">git</a>, <a title="Large data in R using Hadoop" rel="nofollow" href="https://www.r-bloggers.com/search/hadoop">hadoop</a>, <a title="Web Scraping of google, facebook, yahoo, twitter and more using R" rel="nofollow" href="https://www.r-bloggers.com/search/Web+Scraping">Web Scraping</a>) statistics (<a title="Regressions and ANOVA analysis tutorials" rel="nofollow" href="https://www.r-bloggers.com/search/regression">regression</a>, <a title="principal component analysis tutorial" rel="nofollow" href="https://www.r-bloggers.com/search/PCA">PCA</a>, <a title="Time series" rel="nofollow" href="https://www.r-bloggers.com/search/time+series">time series</a>, <a title="finance trading" rel="nofollow" href="https://www.r-bloggers.com/search/trading">trading</a>) and more...
<img height="1" alt="" width="1" src="http://feeds.feedburner.com/~r/RBloggers/~4/Vikw1c_mG7k"></a></div>