<p><div><div><div><div data-show-faces="false" data-height="21" data-width="100" data-layout="button_count" data-send="true" data-href="https://www.r-bloggers.com/quantile-regression-home-made/"></div></div><div></div></div><div></div></div>
<div>
(This article was first published on <strong><a href="https://freakonometrics.hypotheses.org/53223"> R-english – Freakonometrics</a></strong>, and kindly contributed to <a rel="nofollow" href="https://www.r-bloggers.com/">R-bloggers)</a> </div>
<p>After my <a rel="nofollow" href="https://freakonometrics.hypotheses.org/category/r/from-scatch" target="_blank">series of post</a> on classification algorithms, it’s time to get back to R codes, this time for quantile regression. Yes, I still want to get a better understanding of optimization routines, in R. Before looking at the quantile regression, let us compute the median, or the quantile, from a sample.</p>
<h2>Median</h2>
<p>Consider a sample <img alt="\{y_1,\cdots,y_n\}" title="\{y_1,\cdots,y_n\}" src="https://s0.wp.com/latex.php?latex=%5C%7By_1%2C%5Ccdots%2Cy_n%5C%7D&bg=ffffff&fg=000&s=0" class="latex">. To compute the median, solve<img alt="\min_\mu \left\lbrace\sum_{i=1}^n|y_i-\mu|\right\rbrace" title="\min_\mu \left\lbrace\sum_{i=1}^n|y_i-\mu|\right\rbrace" src="https://s0.wp.com/latex.php?latex=%5Cmin_%5Cmu+%5Cleft%5Clbrace%5Csum_%7Bi%3D1%7D%5En%7Cy_i-%5Cmu%7C%5Cright%5Crbrace&bg=ffffff&fg=000&s=0" class="latex">which can be solved using linear programming techniques. More precisely, this problem is equivalent to<img alt="\min_{\mu,\mathbf{a},\mathbf{b}}\left\lbrace\sum_{i=1}^na_i+b_i\right\rbrace" title="\min_{\mu,\mathbf{a},\mathbf{b}}\left\lbrace\sum_{i=1}^na_i+b_i\right\rbrace" src="https://s0.wp.com/latex.php?latex=%5Cmin_%7B%5Cmu%2C%5Cmathbf%7Ba%7D%2C%5Cmathbf%7Bb%7D%7D%5Cleft%5Clbrace%5Csum_%7Bi%3D1%7D%5Ena_i%2Bb_i%5Cright%5Crbrace&bg=ffffff&fg=000&s=0" class="latex">with <img alt="a_i,b_i\geq 0" title="a_i,b_i\geq 0" src="https://s0.wp.com/latex.php?latex=a_i%2Cb_i%5Cgeq+0&bg=ffffff&fg=000&s=0" class="latex"> and <img alt="y_i-\mu=a_i-b_i" title="y_i-\mu=a_i-b_i" src="https://s0.wp.com/latex.php?latex=y_i-%5Cmu%3Da_i-b_i&bg=ffffff&fg=000&s=0" class="latex">, <img alt="\forall i=1,\cdots,n" title="\forall i=1,\cdots,n" src="https://s0.wp.com/latex.php?latex=%5Cforall+i%3D1%2C%5Ccdots%2Cn&bg=ffffff&fg=000&s=0" class="latex">.<br>
To illustrate, consider a sample from a lognormal distribution,</p>
<div><table><tr><td><pre>1
2
3
4
5
</pre></td><td><pre>n <span>=</span> <span>101</span> 
<span>set.<span>seed</span></span><span>(</span><span>1</span><span>)</span>
y <span>=</span> <span>rlnorm</span><span>(</span>n<span>)</span>
<span>median</span><span>(</span>y<span>)</span>
<span>[</span><span>1</span><span>]</span> <span>1.077415</span></pre></td></tr></table></div>
<p>For the optimization problem, use the matrix form, with <img alt="3n" title="3n" src="https://s0.wp.com/latex.php?latex=3n&bg=ffffff&fg=000&s=0" class="latex"> constraints, and <img alt="2n+1" title="2n+1" src="https://s0.wp.com/latex.php?latex=2n%2B1&bg=ffffff&fg=000&s=0" class="latex"> parameters,</p>
<div><table><tr><td><pre>1
2
3
4
5
6
7
</pre></td><td><pre><span>library</span><span>(</span>lpSolve<span>)</span>
A1 <span>=</span> <span>cbind</span><span>(</span><span>diag</span><span>(</span><span>2</span><span>*</span>n<span>)</span>,<span>0</span><span>)</span> 
A2 <span>=</span> <span>cbind</span><span>(</span><span>diag</span><span>(</span>n<span>)</span>, <span>-</span><span>diag</span><span>(</span>n<span>)</span>, <span>1</span><span>)</span>
r <span>=</span> lp<span>(</span><span>&quot;min&quot;</span>, <span>c</span><span>(</span><span>rep</span><span>(</span><span>1</span>,<span>2</span><span>*</span>n<span>)</span>,<span>0</span><span>)</span>,
<span>rbind</span><span>(</span>A1, A2<span>)</span>,<span>c</span><span>(</span><span>rep</span><span>(</span><span>&quot;&amp;gt;=&quot;</span>, <span>2</span><span>*</span>n<span>)</span>, <span>rep</span><span>(</span><span>&quot;=&quot;</span>, n<span>)</span><span>)</span>, <span>c</span><span>(</span><span>rep</span><span>(</span><span>0</span>,<span>2</span><span>*</span>n<span>)</span>, y<span>)</span><span>)</span>
<span>tail</span><span>(</span>r$solution,<span>1</span><span>)</span> 
<span>[</span><span>1</span><span>]</span> <span>1.077415</span></pre></td></tr></table></div>
<p>It looks like it’s working well…</p>
<h2>Quantile</h2>
<p>Of course, we can adapt our previous code for quantiles</p>
<div><table><tr><td><pre>1
2
3
4
</pre></td><td><pre>tau <span>=</span> .3
<span>quantile</span><span>(</span>x,tau<span>)</span>
      <span>30</span><span>%</span> 
<span>0.6741586</span></pre></td></tr></table></div>
<p>The linear program is now<img alt="\min_{\mu,\mathbf{a},\mathbf{b}}\left\lbrace\sum_{i=1}^n\tau a_i+(1-\tau)b_i\right\rbrace" title="\min_{\mu,\mathbf{a},\mathbf{b}}\left\lbrace\sum_{i=1}^n\tau a_i+(1-\tau)b_i\right\rbrace" src="https://s0.wp.com/latex.php?latex=%5Cmin_%7B%5Cmu%2C%5Cmathbf%7Ba%7D%2C%5Cmathbf%7Bb%7D%7D%5Cleft%5Clbrace%5Csum_%7Bi%3D1%7D%5En%5Ctau+a_i%2B%281-%5Ctau%29b_i%5Cright%5Crbrace&bg=ffffff&fg=000&s=0" class="latex">with <img alt="a_i,b_i\geq 0" title="a_i,b_i\geq 0" src="https://s0.wp.com/latex.php?latex=a_i%2Cb_i%5Cgeq+0&bg=ffffff&fg=000&s=0" class="latex"> and <img alt="y_i-\mu=a_i-b_i" title="y_i-\mu=a_i-b_i" src="https://s0.wp.com/latex.php?latex=y_i-%5Cmu%3Da_i-b_i&bg=ffffff&fg=000&s=0" class="latex">, <img alt="\forall i=1,\cdots,n" title="\forall i=1,\cdots,n" src="https://s0.wp.com/latex.php?latex=%5Cforall+i%3D1%2C%5Ccdots%2Cn&bg=ffffff&fg=000&s=0" class="latex">. The R code is now</p>
<div><table><tr><td><pre>1
2
3
4
5
6
</pre></td><td><pre>A1 <span>=</span> <span>cbind</span><span>(</span><span>diag</span><span>(</span><span>2</span><span>*</span>n<span>)</span>,<span>0</span><span>)</span> 
A2 <span>=</span> <span>cbind</span><span>(</span><span>diag</span><span>(</span>n<span>)</span>, <span>-</span><span>diag</span><span>(</span>n<span>)</span>, <span>1</span><span>)</span>
r <span>=</span> lp<span>(</span><span>&quot;min&quot;</span>, <span>c</span><span>(</span><span>rep</span><span>(</span>tau,n<span>)</span>,<span>rep</span><span>(</span><span>1</span><span>-</span>tau,n<span>)</span>,<span>0</span><span>)</span>,
<span>rbind</span><span>(</span>A1, A2<span>)</span>,<span>c</span><span>(</span><span>rep</span><span>(</span><span>&quot;&amp;gt;=&quot;</span>, <span>2</span><span>*</span>n<span>)</span>, <span>rep</span><span>(</span><span>&quot;=&quot;</span>, n<span>)</span><span>)</span>, <span>c</span><span>(</span><span>rep</span><span>(</span><span>0</span>,<span>2</span><span>*</span>n<span>)</span>, y<span>)</span><span>)</span>
<span>tail</span><span>(</span>r$solution,<span>1</span><span>)</span> 
<span>[</span><span>1</span><span>]</span> <span>0.6741586</span></pre></td></tr></table></div>
<p>So far so good…</p>
<h2>Quantile Regression (simple)</h2>
<p>Consider the following dataset, with rents of flat, in a major German city, as function of the surface, the year of construction, etc.</p>
<div><table><tr><td><pre>1
</pre></td><td><pre>base<span>=</span><span>read.<span>table</span></span><span>(</span><span>&quot;http://freakonometrics.free.fr/rent98_00.txt&quot;</span>,header<span>=</span>TRUE<span>)</span></pre></td></tr></table></div>
<p>The linear program for the quantile regression is now<img alt="\min_{\mu,\mathbf{a},\mathbf{b}}\left\lbrace\sum_{i=1}^n\tau a_i+(1-\tau)b_i\right\rbrace" title="\min_{\mu,\mathbf{a},\mathbf{b}}\left\lbrace\sum_{i=1}^n\tau a_i+(1-\tau)b_i\right\rbrace" src="https://s0.wp.com/latex.php?latex=%5Cmin_%7B%5Cmu%2C%5Cmathbf%7Ba%7D%2C%5Cmathbf%7Bb%7D%7D%5Cleft%5Clbrace%5Csum_%7Bi%3D1%7D%5En%5Ctau+a_i%2B%281-%5Ctau%29b_i%5Cright%5Crbrace&bg=ffffff&fg=000&s=0" class="latex">with <img alt="a_i,b_i\geq 0" title="a_i,b_i\geq 0" src="https://s0.wp.com/latex.php?latex=a_i%2Cb_i%5Cgeq+0&bg=ffffff&fg=000&s=0" class="latex"> and <img alt="y_i-[\beta_0^\tau+\beta_1^\tau x_i]=a_i-b_i" title="y_i-[\beta_0^\tau+\beta_1^\tau x_i]=a_i-b_i" src="https://s0.wp.com/latex.php?latex=y_i-%5B%5Cbeta_0%5E%5Ctau%2B%5Cbeta_1%5E%5Ctau+x_i%5D%3Da_i-b_i&bg=ffffff&fg=000&s=0" class="latex"><img alt="\forall i=1,\cdots,n" title="\forall i=1,\cdots,n" src="https://s0.wp.com/latex.php?latex=%5Cforall+i%3D1%2C%5Ccdots%2Cn&bg=ffffff&fg=000&s=0" class="latex">. So use here</p>
<div><table><tr><td><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td><pre><span>require</span><span>(</span>lpSolve<span>)</span> 
tau <span>=</span> .3
n<span>=</span><span>nrow</span><span>(</span>base<span>)</span>
X <span>=</span> <span>cbind</span><span>(</span> <span>1</span>, base$area<span>)</span>
y <span>=</span> base$rent_euro
A1 <span>=</span> <span>cbind</span><span>(</span><span>diag</span><span>(</span><span>2</span><span>*</span>n<span>)</span>, <span>0</span>,<span>0</span><span>)</span> 
A2 <span>=</span> <span>cbind</span><span>(</span><span>diag</span><span>(</span>n<span>)</span>, <span>-</span><span>diag</span><span>(</span>n<span>)</span>, X<span>)</span> 
r <span>=</span> lp<span>(</span><span>&quot;min&quot;</span>,
       <span>c</span><span>(</span><span>rep</span><span>(</span>tau,n<span>)</span>, <span>rep</span><span>(</span><span>1</span><span>-</span>tau,n<span>)</span>,<span>0</span>,<span>0</span><span>)</span>, <span>rbind</span><span>(</span>A1, A2<span>)</span>,
       <span>c</span><span>(</span><span>rep</span><span>(</span><span>&quot;&amp;gt;=&quot;</span>, <span>2</span><span>*</span>n<span>)</span>, <span>rep</span><span>(</span><span>&quot;=&quot;</span>, n<span>)</span><span>)</span>, <span>c</span><span>(</span><span>rep</span><span>(</span><span>0</span>,<span>2</span><span>*</span>n<span>)</span>, y<span>)</span><span>)</span> 
<span>tail</span><span>(</span>r$solution,<span>2</span><span>)</span>
<span>[</span><span>1</span><span>]</span> <span>148.946864</span>   <span>3.289674</span></pre></td></tr></table></div>
<p>Of course, we can use R function to fit that model</p>
<div><table><tr><td><pre>1
2
3
4
5
</pre></td><td><pre><span>library</span><span>(</span>quantreg<span>)</span>
rq<span>(</span>rent_euro~area, tau<span>=</span>tau, <span>data</span><span>=</span>base<span>)</span>
Coefficients<span>:</span>
<span>(</span>Intercept<span>)</span>        area 
 <span>148.946864</span>    <span>3.289674</span></pre></td></tr></table></div>
<p>Here again, it seems to work quite well. We can use a different probability level, of course, and get a plot</p>
<div><table><tr><td><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td><pre><span>plot</span><span>(</span>base$area,base$rent_euro,xlab<span>=</span><span>expression</span><span>(</span><span>paste</span><span>(</span><span>&quot;surface (&quot;</span>,m<span>^</span><span>2</span>,<span>&quot;)&quot;</span><span>)</span><span>)</span>,
     ylab<span>=</span><span>&quot;rent (euros/month)&quot;</span>,<span>col</span><span>=</span><span>rgb</span><span>(</span><span>0</span>,<span>0</span>,<span>1</span>,.4<span>)</span>,cex<span>=</span>.5<span>)</span>
sf<span>=</span><span>0</span><span>:</span><span>250</span>
yr<span>=</span>r$solution<span>[</span><span>2</span><span>*</span>n<span>+</span><span>1</span><span>]</span><span>+</span>r$solution<span>[</span><span>2</span><span>*</span>n<span>+</span><span>2</span><span>]</span><span>*</span>sf
<span>lines</span><span>(</span>sf,yr,lwd<span>=</span><span>2</span>,<span>col</span><span>=</span><span>&quot;blue&quot;</span><span>)</span>
tau <span>=</span> .9
r <span>=</span> lp<span>(</span><span>&quot;min&quot;</span>,
       <span>c</span><span>(</span><span>rep</span><span>(</span>tau,n<span>)</span>, <span>rep</span><span>(</span><span>1</span><span>-</span>tau,n<span>)</span>,<span>0</span>,<span>0</span><span>)</span>, <span>rbind</span><span>(</span>A1, A2<span>)</span>,
       <span>c</span><span>(</span><span>rep</span><span>(</span><span>&quot;&amp;gt;=&quot;</span>, <span>2</span><span>*</span>n<span>)</span>, <span>rep</span><span>(</span><span>&quot;=&quot;</span>, n<span>)</span><span>)</span>, <span>c</span><span>(</span><span>rep</span><span>(</span><span>0</span>,<span>2</span><span>*</span>n<span>)</span>, y<span>)</span><span>)</span> 
<span>tail</span><span>(</span>r$solution,<span>2</span><span>)</span>
<span>[</span><span>1</span><span>]</span> <span>121.815505</span>   <span>7.865536</span>
yr<span>=</span>r$solution<span>[</span><span>2</span><span>*</span>n<span>+</span><span>1</span><span>]</span><span>+</span>r$solution<span>[</span><span>2</span><span>*</span>n<span>+</span><span>2</span><span>]</span><span>*</span>sf
<span>lines</span><span>(</span>sf,yr,lwd<span>=</span><span>2</span>,<span>col</span><span>=</span><span>&quot;blue&quot;</span><span>)</span></pre></td></tr></table></div>
<p><img src="https://i0.wp.com/freakonometrics.hypotheses.org/files/2018/06/Capture-d%E2%80%99e%CC%81cran-2018-06-14-a%CC%80-21.12.34.png?resize=426%2C373&ssl=1" alt="" width="426" data-recalc-dims="1" height="373"></p>
<h2>Quantile Regression (multiple)</h2>
<p>Now that we understand how to run the optimization program with one covariate, why not try with two ? For instance, let us see if we can explain the rent of a flat as a (linear) function of the surface and the age of the building.</p>
<div><table><tr><td><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td><pre><span>require</span><span>(</span>lpSolve<span>)</span> 
tau <span>=</span> .3
n<span>=</span><span>nrow</span><span>(</span>base<span>)</span>
X <span>=</span> <span>cbind</span><span>(</span> <span>1</span>, base$area, base$yearc <span>)</span>
y <span>=</span> base$rent_euro
A1 <span>=</span> <span>cbind</span><span>(</span><span>diag</span><span>(</span><span>2</span><span>*</span>n<span>)</span>, <span>0</span>,<span>0</span>,<span>0</span><span>)</span> 
A2 <span>=</span> <span>cbind</span><span>(</span><span>diag</span><span>(</span>n<span>)</span>, <span>-</span><span>diag</span><span>(</span>n<span>)</span>, X<span>)</span> 
r <span>=</span> lp<span>(</span><span>&quot;min&quot;</span>,
       <span>c</span><span>(</span><span>rep</span><span>(</span>tau,n<span>)</span>, <span>rep</span><span>(</span><span>1</span><span>-</span>tau,n<span>)</span>,<span>0</span>,<span>0</span>,<span>0</span><span>)</span>, <span>rbind</span><span>(</span>A1, A2<span>)</span>,
       <span>c</span><span>(</span><span>rep</span><span>(</span><span>&quot;&amp;gt;=&quot;</span>, <span>2</span><span>*</span>n<span>)</span>, <span>rep</span><span>(</span><span>&quot;=&quot;</span>, n<span>)</span><span>)</span>, <span>c</span><span>(</span><span>rep</span><span>(</span><span>0</span>,<span>2</span><span>*</span>n<span>)</span>, y<span>)</span><span>)</span> 
<span>tail</span><span>(</span>r$solution,<span>3</span><span>)</span>
<span>[</span><span>1</span><span>]</span> <span>0.000000</span> <span>3.257562</span> <span>0.077501</span></pre></td></tr></table></div>
<p>Unfortunately, this time, it is not working well…</p>
<div><table><tr><td><pre>1
2
3
4
5
</pre></td><td><pre><span>library</span><span>(</span>quantreg<span>)</span>
rq<span>(</span>rent_euro~area<span>+</span>yearc, tau<span>=</span>tau, <span>data</span><span>=</span>base<span>)</span>
Coefficients<span>:</span>
 <span>(</span>Intercept<span>)</span>         area        yearc 
<span>-</span><span>5542.503252</span>     <span>3.978135</span>     <span>2.887234</span></pre></td></tr></table></div>
<p>Results are quite different. And actually, another technique can confirm the later (<a rel="nofollow" href="https://en.wikipedia.org/wiki/Iteratively_reweighted_least_squares" target="_blank">IRLS</a> – Iteratively Reweighted Least Squares)</p>
<div><table><tr><td><pre>1
2
3
4
5
6
7
8
</pre></td><td><pre>eps <span>=</span> <span>residuals</span><span>(</span><span>lm</span><span>(</span>rent_euro~area<span>+</span>yearc, <span>data</span><span>=</span>base<span>)</span><span>)</span>
<span>for</span><span>(</span>s <span>in</span> <span>1</span><span>:</span><span>500</span><span>)</span><span>{</span>
  reg <span>=</span> <span>lm</span><span>(</span>rent_euro~area<span>+</span>yearc, <span>data</span><span>=</span>base, <span>weights</span><span>=</span><span>(</span>tau<span>*</span><span>(</span>eps<span>&amp;</span>gt<span>;</span><span>0</span><span>)</span><span>+</span><span>(</span><span>1</span><span>-</span>tau<span>)</span><span>*</span><span>(</span>eps<span>&amp;</span>lt<span>;</span><span>0</span><span>)</span><span>)</span><span>/</span><span>abs</span><span>(</span>eps<span>)</span><span>)</span>
  eps <span>=</span> <span>residuals</span><span>(</span>reg<span>)</span>
<span>}</span>
reg$coefficients
 <span>(</span>Intercept<span>)</span>         area        yearc 
<span>-</span><span>5484.443043</span>     <span>3.955134</span>     <span>2.857943</span></pre></td></tr></table></div>
<p>I could not figure out what went wrong with the linear program. Not only coefficients are very different, but also predictions…</p>
<div><table><tr><td><pre>1
2
3
</pre></td><td><pre>yr <span>=</span> r$solution<span>[</span><span>2</span><span>*</span>n<span>+</span><span>1</span><span>]</span><span>+</span>r$solution<span>[</span><span>2</span><span>*</span>n<span>+</span><span>2</span><span>]</span><span>*</span>base$area<span>+</span>r$solution<span>[</span><span>2</span><span>*</span>n<span>+</span><span>3</span><span>]</span><span>*</span>base$yearc
<span>plot</span><span>(</span><span>predict</span><span>(</span>reg<span>)</span>,yr<span>)</span>
<span>abline</span><span>(</span>a<span>=</span><span>0</span>,b<span>=</span><span>1</span>,lty<span>=</span><span>2</span>,<span>col</span><span>=</span><span>&quot;red&quot;</span><span>)</span></pre></td></tr></table></div>
<p><img src="https://i0.wp.com/freakonometrics.hypotheses.org/files/2018/06/Capture-d%E2%80%99e%CC%81cran-2018-06-14-a%CC%80-21.22.06.png?resize=426%2C373&ssl=1" alt="" width="426" data-recalc-dims="1" height="373"><br>
It’s now time to investigate….</p>
	<p>
<div>
<div>To <strong>leave a comment</strong> for the author, please follow the link and comment on their blog: <strong><a href="https://freakonometrics.hypotheses.org/53223"> R-english – Freakonometrics</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 rel="nofollow" href="https://www.r-project.org/" title="The R Project for Statistical Computing">R</a> news and <a rel="nofollow" href="https://www.r-bloggers.com/search/tutorial" title="R tutorials">tutorials</a> on topics such as: <a rel="nofollow" href="https://www.r-bloggers.com/search/data%20science" title="Data science">Data science</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/Big%20Data" title="Big Data">Big Data, <a rel="nofollow" href="https://www.r-users.com/" title="R jobs">R jobs</a>, visualization (<a rel="nofollow" href="https://www.r-bloggers.com/search/ggplot2" title="ggplot and ggplot2 tutorials">ggplot2</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/boxplot" title="Boxplots using lattice and ggplot2 tutorials">Boxplots</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/map" title="Maps and gis">maps</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/animation" title="Animation in R">animation</a>), programming (<a rel="nofollow" href="https://www.r-bloggers.com/search/RStudio" title="RStudio IDE for R">RStudio</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/sweave" title="Sweave and literate programming">Sweave</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/LaTeX" title="LaTeX in R">LaTeX</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/SQL" title="SQL and databases">SQL</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/eclipse" title="Eclipse IDE for R">Eclipse</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/git" title="git and github, Version Control System">git</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/hadoop" title="Large data in R using Hadoop">hadoop</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/Web+Scraping" title="Web Scraping of google, facebook, yahoo, twitter and more using R">Web Scraping</a>) statistics (<a rel="nofollow" href="https://www.r-bloggers.com/search/regression" title="Regressions and ANOVA analysis tutorials">regression</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/PCA" title="principal component analysis tutorial">PCA</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/time+series" title="Time series">time series</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/trading" title="finance trading">trading</a>) and more...
<img width="1" alt="" src="http://feeds.feedburner.com/~r/RBloggers/~4/7R4Ugo4RrkQ" height="1"></a></div>