<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/factor-analysis-introduction-with-the-principal-component-method-and-r/"></div></div><div></div></div><div></div></div>
<div>
(This article was first published on <strong><a href="http://www.aaronschlegel.com/factor-analysis-introduction-principal-component-method-r/"> R – Aaron Schlegel</a></strong>, and kindly contributed to <a rel="nofollow" href="https://www.r-bloggers.com/">R-bloggers)</a> </div>
<p>Factor analysis is a controversial technique that represents the variables of a dataset <span data-display="false" class="wp-katex-eq">y_1, y_2, \cdots, y_p</span> as linearly related to random, unobservable variables called factors, denoted <span data-display="false" class="wp-katex-eq">f_1, f_2, \cdots, f_m</span> where <span data-display="false" class="wp-katex-eq">m \lt p</span>. The factors are representative of ‘latent variables’ underlying the original variables. The existence of the factors is hypothetical as they cannot be measured or observed. Thus factor analysis remains controversial among statisticians (Rencher, 2002, pp. 443) and continues to be heavily researched.</p>
<p>The goal of factor analysis, similar to principal component analysis, is to reduce the original variables into a smaller number of factors that allows for easier interpretation. PCA and factor analysis still defer in several respects. One difference is principal components are defined as linear combinations of the variables while factors are defined as linear combinations of the underlying latent variables.</p>
<h6>Factor Analysis</h6>
<p>As mentioned, the factor analysis model is a linear combination of the underlying latent variables, <span data-display="false" class="wp-katex-eq">f_1, f_2, \cdots, f_m</span>, that are hypothetical in nature and may not actually exist. For the variables in any of the observation vectors in a sample, the model is defined as:</p>
<p><span data-display="true" class="wp-katex-eq"> y_1 – \mu_1 = \lambda_{11} f_1 + \lambda_{12} f_2 + \cdots + \lambda_{1m} f_m + \epsilon_1 </span><br>
<span data-display="true" class="wp-katex-eq"> y_2 – \mu_2 = \lambda_{21} f_1 + \lambda_{22} f_2 + \cdots + \lambda_{2m} f_m + \epsilon_2 </span><br>
<span data-display="true" class="wp-katex-eq"> \vdots </span><br>
<span data-display="true" class="wp-katex-eq"> y_p – \mu_p = \lambda_{p1} f_1 + \lambda_{p2} f_2 + \cdots + \lambda_{pm} f_m + \epsilon_p </span></p>
<p>Where <span data-display="false" class="wp-katex-eq">\mu</span> is the mean vector and <span data-display="false" class="wp-katex-eq">\epsilon</span> is a random error term to show the relationship between the factors is not exact. There are several assumptions that must be made regarding the relationships of the factor model described above.</p>
<ul>
<li>Assume the unobservable factors (latent variables) are independent of each other and of the error terms. For the factors <span data-display="false" class="wp-katex-eq">j = 1, 2, \cdots, m</span>, the expected value of the <span data-display="false" class="wp-katex-eq">j</span>th factor is <span data-display="false" class="wp-katex-eq">0</span>, <span data-display="false" class="wp-katex-eq">E(f_j) = 0</span>. The variance of the factor model is <span data-display="false" class="wp-katex-eq">1</span>, <span data-display="false" class="wp-katex-eq">var(f_j) = 1</span>, and the covariance of two factor models <span data-display="false" class="wp-katex-eq">f_j</span> and <span data-display="false" class="wp-katex-eq">f_k</span> is <span data-display="false" class="wp-katex-eq">0</span>, <span data-display="false" class="wp-katex-eq">cov(f_j, f_k) = 0</span> where <span data-display="false" class="wp-katex-eq">j \neq k</span>.</li>
<li>Assume the error terms <span data-display="false" class="wp-katex-eq">\epsilon_i</span> are independent of each other. Thus, <span data-display="false" class="wp-katex-eq">E(\epsilon) = 0</span>, <span data-display="false" class="wp-katex-eq">var(\epsilon_i) = \psi_i</span>, and <span data-display="false" class="wp-katex-eq">cov(\epsilon_i, \epsilon_j) = 0</span>.</li>
<li>The covariance of the error terms <span data-display="false" class="wp-katex-eq">\epsilon_i</span> and the factor <span data-display="false" class="wp-katex-eq">f_j</span> is <span data-display="false" class="wp-katex-eq">0</span>, <span data-display="false" class="wp-katex-eq">cov(\epsilon_i, f_j) = 0</span>.</li>
</ul>
<p>Note the assumption <span data-display="false" class="wp-katex-eq">cov(\epsilon_i, \epsilon_j) = 0</span> implies the factors represent all correlations among the observation vectors <span data-display="false" class="wp-katex-eq">y</span>. Thus another difference that separates PCA and factor analysis is that factor analysis accounts for the covariances of correlations among the variables while PCA explains the total variance. With the assumptions made above, the variance of <span data-display="false" class="wp-katex-eq">y_i</span> can be expressed as:</p>
<p><span data-display="true" class="wp-katex-eq"> var(y_i) = \lambda^2_{i1} + \lambda^2_{i2} + \cdots + \lambda^2_{im} + \psi_i </span></p>
<p>Which can be expressed more compactly in matrix notation:</p>
<p><span data-display="true" class="wp-katex-eq"> y – \mu = \Lambda f + \epsilon </span></p>
<p>We therefore have a partitioning of the variance of the observation vector <span data-display="false" class="wp-katex-eq">y_i</span> into a component due to the common factors, which is called the communality and another called the specific variance. Communality is also referred to as common variance and <span data-display="false" class="wp-katex-eq">\psi_i</span> is also known as specificity, unique or residual variance. The factors are grouped into a new term denoting the communality, <span data-display="false" class="wp-katex-eq">h^2_i</span>, with the error term <span data-display="false" class="wp-katex-eq">\psi_i</span> representing the specific variance:</p>
<p><span data-display="true" class="wp-katex-eq"> var(y_i) = (\lambda^2_{i1} + \lambda^2_{i2} + \cdots + \lambda^2_{im}) + \psi_i </span><span data-display="true" class="wp-katex-eq"> = h^2_i + \psi_i </span></p>
<p>Which is the communality plus the specific variance.</p>
<p>It must be noted that factor analysis can fail to fit the data; however, a failed fit can indicate that it is not known how many factors there should be and what the factors are.</p>
<h6>Estimation of Factor Loadings and Communalities with the Principal Component Method</h6>
<p>There are several methods for estimating the factor loadings and communalities, including the principal component method, principal factor method, the iterated principal factor method and maximum likelihood estimation. The principal component method is one of the most common approaches to estimation and will be employed on the rootstock data seen in previous posts.</p>
<p>The principal component method is rather misleading in its naming it that no principal components are calculated. The approach of the principal component method is to calculate the sample covariance matrix <span data-display="false" class="wp-katex-eq">S</span> from a sample of data and then find an estimator, denoted <span data-display="false" class="wp-katex-eq">\hat{\Lambda}</span> that can be used to factor <span data-display="false" class="wp-katex-eq">S</span>.</p>
<p><span data-display="true" class="wp-katex-eq"> S = \hat{\Lambda} \hat{\Lambda}’ </span></p>
<p>Another term, <span data-display="false" class="wp-katex-eq">\Psi</span>, is added to the estimate of <span data-display="false" class="wp-katex-eq">S</span>, making the above <span data-display="false" class="wp-katex-eq">S = \hat{\Lambda} \hat{\Lambda}’ + \hat{\Psi}</span>. <span data-display="false" class="wp-katex-eq">\hat{\Psi}</span> is a diagonal matrix of the specific variances <span data-display="false" class="wp-katex-eq">(\hat{\psi_1}, \hat{\psi_2}, \cdots, \hat{\psi_p})</span>. <span data-display="false" class="wp-katex-eq">\Psi</span> is estimated in other approaches to factor analysis such as the principal factor method and its iterated version but is excluded in the principal component method of factor analysis. The reason for the term’s exclusion is since <span data-display="false" class="wp-katex-eq">\hat{\Psi}</span> equals the specific variances of the variables, it models the diagonal of <span data-display="false" class="wp-katex-eq">S</span> exactly.</p>
<p>Spectral decomposition is employed To factor <span data-display="false" class="wp-katex-eq">S</span> into:</p>
<p><span data-display="true" class="wp-katex-eq"> S = CDC’ </span></p>
<p>Where <span data-display="false" class="wp-katex-eq">C</span> is an orthogonal matrix of the normalized eigenvectors of <span data-display="false" class="wp-katex-eq">S</span> as columns and <span data-display="false" class="wp-katex-eq">D</span> is a diagonal matrix with the diagonal equaling the eigenvalues of <span data-display="false" class="wp-katex-eq">S</span>. Recall that all covariance matrices are positive semidefinite. Thus the eigenvalues must be either positive or zero which allows us to factor the diagonal matrix <span data-display="false" class="wp-katex-eq">D</span> into:</p>
<p><span data-display="true" class="wp-katex-eq"> D = D^{1/2} D^{1/2} </span></p>
<p>The above factor of <span data-display="false" class="wp-katex-eq">D</span> is substituted into the decomposition of <span data-display="false" class="wp-katex-eq">S</span>.</p>
<p><span data-display="true" class="wp-katex-eq"> S = CDC’ = C D^{1/2} D^{1/2} C’ </span></p>
<p>Then rearranging:</p>
<p><span data-display="true" class="wp-katex-eq"> S = (CD^{1/2})(CD^{1/2})’ </span></p>
<p>Which yields the form <span data-display="false" class="wp-katex-eq">S = \hat{\Lambda} \hat{\Lambda}’</span>. Since we are interested in finding <span data-display="false" class="wp-katex-eq">m</span> factors in the data, we want to find a <span data-display="false" class="wp-katex-eq">\hat{\Lambda}</span> that is <span data-display="false" class="wp-katex-eq">p \times m</span> with <span data-display="false" class="wp-katex-eq">m</span> smaller than <span data-display="false" class="wp-katex-eq">p</span>. Thus <span data-display="false" class="wp-katex-eq">D</span> can be defined as a diagonal matrix with <span data-display="false" class="wp-katex-eq">m</span> eigenvalues (making it <span data-display="false" class="wp-katex-eq">m \times m</span>) on the diagonal and <span data-display="false" class="wp-katex-eq">C</span> is therefore <span data-display="false" class="wp-katex-eq">p \times m</span> with the corresponding eigenvectors, which makes <span data-display="false" class="wp-katex-eq">\hat{\Lambda}</span> <span data-display="false" class="wp-katex-eq">p \times m</span>. There are numerous ways to select the number of factors, some of which include finding the number of eigenvalues greater than the average eigenvalue or plotting a scree plot.</p>
<h6>Principal Component Method of Factor Analysis in R</h6>
<p>The following example demonstrates factor analysis using the covariance matrix using the rootstock data seen in other posts. As mentioned in several of those posts, the measurements of the variables are not commensurate and thus using the covariance matrix for factor analysis (or PCA) does not make intuitive sense. In most cases, factoring the correlation matrix is recommended and is, in fact, more straightforward than using the covariance matrix as <span data-display="false" class="wp-katex-eq">R</span> does not need to be decomposed into <span data-display="false" class="wp-katex-eq">CDC’</span> beforehand. The correlation matrix <span data-display="false" class="wp-katex-eq">R</span> of the data is employed for factor analysis in a follow-up post.</p>
<p>The rootstock data contains growth measurements of six different apple tree rootstocks from 1918 to 1934 (Andrews and Herzberg 1985, pp. 357-360) and were obtained from the <a target="_blank" rel="nofollow">companion FTP site</a> of the book Methods of Multivariate Analysis by Alvin Rencher. The data contains four dependent variables as follows:</p>
<ul>
<li>trunk girth at four years (mm <span data-display="false" class="wp-katex-eq">\times</span> 100)</li>
<li>extension growth at four years (m)</li>
<li>trunk girth at 15 years (mm <span data-display="false" class="wp-katex-eq">\times</span> 100)</li>
<li>weight of tree above ground at 15 years (lb <span data-display="false" class="wp-katex-eq">\times</span> 1000)</li>
</ul>
<p>Load the data and name the columns.</p>
<pre>
root &lt;- read.table('ROOT.DAT', col.names = c('Tree.Number', 'Trunk.Girth.4.Years', 'Ext.Growth.4.Years', 'Trunk.Girth.15.Years', 'Weight.Above.Ground.15.Years'))
</pre>
<p>Find the covariance matrix <span data-display="false" class="wp-katex-eq">S</span> with the <code>cov()</code> function.</p>
<pre>
S &lt;- cov(root[,2:5])
S
##                              Trunk.Girth.4.Years Ext.Growth.4.Years
## Trunk.Girth.4.Years                  0.008373360         0.04753083
## Ext.Growth.4.Years                   0.047530829         0.34771174
## Trunk.Girth.15.Years                 0.018858555         0.14295747
## Weight.Above.Ground.15.Years         0.009055532         0.07973026
##                              Trunk.Girth.15.Years
## Trunk.Girth.4.Years                    0.01885855
## Ext.Growth.4.Years                     0.14295747
## Trunk.Girth.15.Years                   0.22137762
## Weight.Above.Ground.15.Years           0.13324894
##                              Weight.Above.Ground.15.Years
## Trunk.Girth.4.Years                           0.009055532
## Ext.Growth.4.Years                            0.079730255
## Trunk.Girth.15.Years                          0.133248936
## Weight.Above.Ground.15.Years                  0.089693957
</pre>
<p>The eigenvalues and eigenvectors are then computed from the covariance matrix with the <code>eigen()</code> function.</p>
<pre>
S.eigen &lt;- eigen(S)
S.eigen
## $values
## [1] 0.495986813 0.162680761 0.006924035 0.001565068
## 
## $vectors
##            [,1]        [,2]        [,3]       [,4]
## [1,] -0.1011191  0.09661363 -0.21551730  0.9664332
## [2,] -0.7516463  0.64386366  0.06099466 -0.1294103
## [3,] -0.5600279 -0.62651631 -0.52992316 -0.1141384
## [4,] -0.3334239 -0.42846553  0.81793239  0.1903481
</pre>
<p>Before proceeding with factoring <span data-display="false" class="wp-katex-eq">S</span> into <span data-display="false" class="wp-katex-eq">CDC’</span>, the number of factors <span data-display="false" class="wp-katex-eq">m</span> must be selected. The last two eigenvalues of <span data-display="false" class="wp-katex-eq">S</span> are practically <span data-display="false" class="wp-katex-eq">0</span>, so <span data-display="false" class="wp-katex-eq">m = 2</span> is likely a good choice. Plot a scree plot to confirm that two factors are appropriate.</p>
<pre>
plot(S.eigen$values, xlab = 'Eigenvalue Number', ylab = 'Eigenvalue Size', main = 'Scree Graph', type = 'b', xaxt = 'n')
axis(1, at = seq(1, 4, by = 1))
</pre>
<p><a target="_blank" rel="nofollow" href="http://www.aaronschlegel.com/?attachment_id=22476"><img sizes="(max-width: 1060px) 100vw, 1060px" alt="Scree plot of eigenvalues" class="wp-image-22476" src="https://i0.wp.com/www.aaronschlegel.com/wp-content/uploads/fa_scree.png?resize=1060%2C757" data-recalc-dims="1"></a></p>
<p>With <span data-display="false" class="wp-katex-eq">m = 2</span> factors, construct the <span data-display="false" class="wp-katex-eq">C</span> and <span data-display="false" class="wp-katex-eq">D</span> matrices from the covariance matrix with the first (largest) two eigenvalues and corresponding eigenvectors.</p>
<pre>
C &lt;- as.matrix(S.eigen$vectors[,1:2])

D &lt;- matrix(0, dim(C)[2], dim(C)[2])
diag(D) &lt;- S.eigen$values[1:2]
</pre>
<p><span data-display="false" class="wp-katex-eq">\hat{\Lambda}</span> is then found from the <span data-display="false" class="wp-katex-eq">C</span> and <span data-display="false" class="wp-katex-eq">D</span> matrices as in <span data-display="false" class="wp-katex-eq">\hat{\Lambda} = CD^{1/2}</span></p>
<pre>
S.loadings &lt;- C %*% sqrt(D)
S.loadings
##             [,1]        [,2]
## [1,] -0.07121445  0.03896785
## [2,] -0.52935694  0.25969406
## [3,] -0.39440707 -0.25269723
## [4,] -0.23481824 -0.17281602
</pre>
<p>Which are the unrotated factor loadings. We can see where the term ‘principal component method’ is derived from as the factors (columns of <span data-display="false" class="wp-katex-eq">\hat{\Lambda}</span>) are proportional to the eigenvectors of <span data-display="false" class="wp-katex-eq">S</span> which are equal to the corresponding coefficient of the principal components.</p>
<pre>
root.pca &lt;- prcomp(root[,2:5])$rotation[,1:2] # Perform PCA on the rootstock data and take the resulting first two PCs

root.pca
##                                     PC1         PC2
## Trunk.Girth.4.Years          -0.1011191  0.09661363
## Ext.Growth.4.Years           -0.7516463  0.64386366
## Trunk.Girth.15.Years         -0.5600279 -0.62651631
## Weight.Above.Ground.15.Years -0.3334239 -0.42846553
</pre>
<pre>
S.eigen$vectors[,1:2]
##            [,1]        [,2]
## [1,] -0.1011191  0.09661363
## [2,] -0.7516463  0.64386366
## [3,] -0.5600279 -0.62651631
## [4,] -0.3334239 -0.42846553
</pre>
<p>The communality, the variance of the variables explained by the common factors, denoted <span data-display="false" class="wp-katex-eq">h^2_i</span>, as noted previously is the sum of squares of the rows of <span data-display="false" class="wp-katex-eq">\hat{\Lambda}</span>.</p>
<p><span data-display="true" class="wp-katex-eq"> \hat{h}^2_i = \sum^m_{j=1} \hat{\lambda}^2_{ij} </span></p>
<pre>
S.h2 &lt;- rowSums(S.loadings^2)
S.h2
## [1] 0.006589992 0.347659774 0.219412829 0.085004979
</pre>
<p>The sum of squares of the columns of <span data-display="false" class="wp-katex-eq">\hat{\Lambda}</span> are the respective eigenvalues of <span data-display="false" class="wp-katex-eq">S</span>.</p>
<pre>
colSums(S.loadings^2)
## [1] 0.4959868 0.1626808
</pre>
<pre>
S.eigen$values[1:2]
## [1] 0.4959868 0.1626808
</pre>
<p>The specific variance, <span data-display="false" class="wp-katex-eq">\psi_i</span>, is a component unique to the particular variable and is found by subtracting the diagonal of <span data-display="false" class="wp-katex-eq">S</span> by the respective communality <span data-display="false" class="wp-katex-eq">\hat{h}^2_i</span>:</p>
<p><span data-display="true" class="wp-katex-eq"> \psi_i = s_{ii} – \hat{h}^2_i </span></p>
<pre>
S.u2 &lt;- diag(S) - S.h2
S.u2
##          Trunk.Girth.4.Years           Ext.Growth.4.Years 
##                 1.783368e-03                 5.197004e-05 
##         Trunk.Girth.15.Years Weight.Above.Ground.15.Years 
##                 1.964786e-03                 4.688978e-03
</pre>
<p>The proportion of variance of the loadings is found by dividing the sum of squares of the columns of <span data-display="false" class="wp-katex-eq">\hat{\Lambda}</span> (the eigenvalues of <span data-display="false" class="wp-katex-eq">S</span>) by the sum of the eigenvalues of <span data-display="false" class="wp-katex-eq">S</span>.</p>
<pre>
prop.loadings &lt;- colSums(S.loadings^2)

prop.var &lt;- cbind(prop.loadings[1] / sum(S.eigen$values), prop.loadings[2] / sum(S.eigen$values))
prop.var
##           [,1]      [,2]
## [1,] 0.7434338 0.2438419
</pre>
<p>The proportion of variance explained by the loadings is computed by dividing the sum of squares of the columns of <span data-display="false" class="wp-katex-eq">\hat{\Lambda}</span> by the sum of those squares.</p>
<pre>
prop.exp &lt;- cbind(prop.loadings[1] / sum(prop.loadings), prop.loadings[2] / sum(prop.loadings))
prop.exp
##           [,1]      [,2]
## [1,] 0.7530154 0.2469846
</pre>
<p>Thus the two factor model represents and explains nearly all of the variance of the variables.</p>
<h6>Factor Analysis with the <code>psych</code> Package</h6>
<p>The <a target="_blank" rel="nofollow" href="https://cran.r-project.org/web/packages/psych/">psych package</a> has many functions available for performing factor analysis.</p>
<pre>
library(psych)
</pre>
<p>The <code>principal()</code> function performs factor analysis with the principal component method as explained above. The rotation is set to <code>none</code> for now as we have not yet done any rotation of the factors. The <code>covar</code> argument is set to <code>TRUE</code> so the function factors the covariance matrix <span data-display="false" class="wp-katex-eq">S</span> of the data as we did above.</p>
<pre>
root.fa.covar &lt;- principal(root[,2:5], nfactors = 2, rotate = 'none', covar = TRUE)
root.fa.covar
## Principal Components Analysis
## Call: principal(r = root[, 2:5], nfactors = 2, rotate = &quot;none&quot;, covar = TRUE)
## Unstandardized loadings (pattern matrix) based upon covariance matrix
##                               PC1   PC2     h2      u2   H2      U2
## Trunk.Girth.4.Years          0.07 -0.04 0.0066 1.8e-03 0.79 0.21298
## Ext.Growth.4.Years           0.53 -0.26 0.3477 5.2e-05 1.00 0.00015
## Trunk.Girth.15.Years         0.39  0.25 0.2194 2.0e-03 0.99 0.00888
## Weight.Above.Ground.15.Years 0.23  0.17 0.0850 4.7e-03 0.95 0.05228
## 
##                        PC1  PC2
## SS loadings           0.50 0.16
## Proportion Var        0.74 0.24
## Cumulative Var        0.74 0.99
## Proportion Explained  0.75 0.25
## Cumulative Proportion 0.75 1.00
## 
##  Standardized loadings (pattern matrix)
##                              item  PC1   PC2   h2      u2
## Trunk.Girth.4.Years             1 0.78 -0.43 0.79 0.21298
## Ext.Growth.4.Years              2 0.90 -0.44 1.00 0.00015
## Trunk.Girth.15.Years            3 0.84  0.54 0.99 0.00888
## Weight.Above.Ground.15.Years    4 0.78  0.58 0.95 0.05228
## 
##                  PC1  PC2
## SS loadings     2.73 1.00
## Proportion Var  0.68 0.25
## Cumulative Var  0.68 0.93
## Cum. factor Var 0.73 1.00
## 
## Mean item complexity =  1.6
## Test of the hypothesis that 2 components are sufficient.
## 
## The root mean square of the residuals (RMSR) is  0 
##  with the empirical chi square  0  with prob >  NA 
## 
## Fit based upon off diagonal values = 1
</pre>
<p>The function’s output matches our calculations. H2 and U2 are the communality and specific variance, respectively, of the standardized loadings obtained from the correlation matrix <span data-display="false" class="wp-katex-eq">R</span>. As the data were not measured on commensurate scales, it is more intuitive to employ the correlation matrix rather than the covariance matrix as the loadings can be dominated by variables with large variances on the diagonal of <span data-display="false" class="wp-katex-eq">S</span>.</p>
<h6>Summary</h6>
<p>I hope this served as a useful introduction to factor analysis. In the next few posts, we will explore the principal component method of factor analysis with the correlation matrix <span data-display="false" class="wp-katex-eq">R</span> as well as rotation of the loadings to help improve interpretation of the factors.</p>
<h6>References</h6>
<p>Rencher, A. (2002). Methods of Multivariate Analysis (2nd ed.). Brigham Young University: John Wiley &amp; Sons, Inc.</p>
<p><a target="_blank" rel="nofollow" href="http://web.stanford.edu/class/psych253/tutorials/FactorAnalysis.html">http://web.stanford.edu/class/psych253/tutorials/FactorAnalysis.html</a></p>
<p><a target="_blank" rel="nofollow" href="http://www.yorku.ca/ptryfos/f1400.pdf">http://www.yorku.ca/ptryfos/f1400.pdf</a></p>
<p>The post <a target="_blank" rel="nofollow" href="http://www.aaronschlegel.com/factor-analysis-introduction-principal-component-method-r/">Factor Analysis Introduction with the Principal Component Method and R</a> appeared first on <a target="_blank" rel="nofollow" href="http://www.aaronschlegel.com/">Aaron Schlegel</a>.</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="http://www.aaronschlegel.com/factor-analysis-introduction-principal-component-method-r/"> R – Aaron Schlegel</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/042AQ2zvQks"></a></div>