# How to compute raw and central moments using R with examples

## Moments using R

In this tutorial, you will learn about how to compute raw and central moments of a data set using R.

Before we discuss R functions to compute moments, let us see why we need moments and how moments are defined.

## Why we need to find moments of a data set?

Moments of a data set are very useful to describe the nature of a data set.

Moments are useful in describing

• center of a data set,
• variation in a data set,
• skewness of a data set, and
• kurtosis of a data set.

## Raw moments of a data set

Let $x_1, x_2,\cdots, x_n$ be $n$ observations. Then the $r^{th}$ raw moment is denoted by $\mu_r^\prime$ and is given by

 \begin{aligned} \mu_r^\prime & =\frac{1}{n}\sum_{i=1}^{n}x_i^r,\\ & \quad r = 0,1,2,\cdots. \end{aligned}

• $\mu_0^\prime=0$ (always).
• $\mu_1^\prime=\overline{x}$ mean of a data set.

## Central moments of a data set

Let $x_1, x_2,\cdots, x_n$ be $n$ observations.The sample mean of $X$ is denoted by $\overline{x}$ and is given by

 $$\begin{eqnarray*} \overline{x}& =\frac{1}{n}\sum_{i=1}^{n}x_i \end{eqnarray*}$$

Then the $r^{th}$ central moment is denoted by $\mu_r$ and is given by

 $$\begin{eqnarray*} \mu_r & =\frac{1}{n}\sum_{i=1}^{n}(x_i-\overline{x})^r,\\ & \quad r = 0,1,2,\cdots. \end{eqnarray*}$$

• $\mu_0=0$ (always).
• $\mu_1=1$ (always).
• $\mu_2=Var(X)$ (variance of $X$).

## How to find raw and moments of a data set using R?

The base package in R doesn't have any function to compute the moments, skewness and kurtosis of a data set. The moment package contains functions to compute raw moments, central moments, skewness and kurtosis.

To get moments of a data set, we need to install the moments package if not installed. Once it is installed we can load the moments package using library() function.

## load the package
library(moments)

The raw moments and central moments can be calculated using all.moments() function from moments package.

The syntax to compute raw and central moments of a data set using R is

all.moments(x,order.max=2,central=FALSE)

where

• x : a numeric vector of data
• order.max : the maximum order of the moments to be computed (default value is 2).
• central : a logical value (FALSE for raw moments or TRUE for central moments)

## Numerical Problem for moments calculations

To understand the use of all.moments() function, let us take the following numerical problem.

### Raw and Central Moments Example

The hourly earning (in dollars) of sample of 7 workers are : $26, 21, 24, 22, 25, 24, 23$.

(a) Compute raw moments.
(b) Compute central moments.
(c) Convert raw moments to central moments.
(d) Convert central moments to raw moments.

### How to use all.moments() function to compute raw moments in R?

Let us define a data set as

## define a vector of earnings
hourly.earning <-c(26, 21, 24, 22, 25, 24, 23)
# display the vector
hourly.earning
 26 21 24 22 25 24 23

(a) Raw moments of hourly earnings:

## Raw moments
raw.mom <- all.moments(hourly.earning,order.max = 4)
## display the result
raw.mom
      1.00000     23.57143    558.14286  13275.00000 317104.42857

It returns the value as vector. The first value is the $0^{th}$ order raw moment $\mu_0^\prime$ (which is always 1), the second value is the $1^{st}$ order raw moment $\mu_1^\prime$ (which is the mean), the third value is the $2^{nd}$ order raw moment $\mu_2^\prime$, the fourth value is the $3^{rd}$ order raw moment $\mu_3^\prime$ and the fifth value is the $4^{th}$ order raw moment $\mu_4^\prime$.

The Raw moments of hourly earnings are as follows:

 \begin{aligned} \mu_0^\prime &= 1\\ \mu_1^\prime & = 23.5714286\\ \mu_2^\prime & = 558.1428571\\ \mu_3^\prime & = 1.3275\times 10^{4}\\ \mu_4^\prime & = 3.1710443\times 10^{5} \end{aligned}

### How to use all.moments() function to compute central moments in R?

(b) Central moments of hourly earnings:

## Central moments
cent.mom <- all.moments(hourly.earning,order.max = 4,central = TRUE)
## display the result
cent.mom
  1.000000e+00 -1.522592e-15  2.530612e+00 -5.247813e-01  1.270637e+01

It returns the value as vector. The first value is the $0^{th}$ order central moment $\mu_0^\prime$ (which is always 1), the second value is the $1^{st}$ order raw moment $\mu_1^\prime$ (which is the mean), the third value is the $2^{nd}$ order raw moment $\mu_2^\prime$, the fourth value is the $3^{rd}$ order raw moment $\mu_3^\prime$ and the fifth value is the $4^{th}$ order raw moment $\mu_4^\prime$.

The Central moments of hourly earnings are as follows:

 \begin{aligned} \mu_0 &= 1\\ \mu_1 & = -1.5225916\times 10^{-15}\\ \mu_2 & = 2.5306122\\ \mu_3 & = -0.5247813\\ \mu_4 & = 12.7063723 \end{aligned}

### How to convert raw moments to central moments?

The first four central moments in terms of raw moments are

 \begin{aligned} \mu_1 &= 0\\ \mu_2 &= \mu_2^\prime - {\mu_1^\prime}^2\\ \mu_3 &= \mu_3^\prime - 3\mu_2^\prime \mu_1^\prime + 2 {\mu_1^\prime}^3\\ \mu_4 &= \mu_4^\prime - 4\mu_3^\prime \mu_1^\prime + 6 \mu_2^\prime{\mu_1^\prime}^2-3{\mu_1^\prime}^4. \end{aligned}

(c) Raw moments to central moments of hourly earnings:

Given the raw moments of a data set, the function raw2central() converts raw moments to central moments of a data set.

## Raw Moments to Central Moments
R2C<-raw2central(raw.mom)
## display the result
R2C
  1.0000000  0.0000000  2.5306122 -0.5247813 12.7063723

The Central moments of hourly earnings from raw moments are as follows:

 \begin{aligned} \mu_0 &= 1\\ \mu_1 & = 0\\ \mu_2 & = 2.5306122\\ \mu_3 & = -0.5247813\\ \mu_4 & = 12.7063723 \end{aligned}

### How to convert central moments to raw moments?

The first four raw in terms of central moments are

 \begin{aligned} \mu_1^\prime &= \overline{x}\\ \mu_2^\prime &= \mu_2 + {\mu_1^\prime}^2\\ \mu_3^\prime &= \mu_3 + 3\mu_2 \mu_1^\prime + {\mu_1^\prime}^3\\ \mu_4^\prime &= \mu_4 + 4\mu_3 \mu_1^\prime + 6 \mu_2{\mu_1^\prime}^2+{\mu_1^\prime}^4. \end{aligned}

(d) Central moments to raw moments of hourly earnings:

Given the central moments of a data set, the function central2raw() converts central moments to raw moments of a data set.

## Compute mean of data set
eta <- mean(hourly.earning)
## display the result
eta
 23.57143
## Central Moments to Raw Moments
C2R<-central2raw(cent.mom,eta=eta)
## display the result
C2R
      1.00000     23.57143    558.14286  13275.00000 317104.42857

The Raw moments of hourly earnings from central moments are as follows:

 \begin{aligned} \mu_0^\prime &= 1\\ \mu_1^\prime & = 23.5714286\\ \mu_2^\prime & = 558.1428571\\ \mu_3^\prime & = 1.3275\times 10^{4}\\ \mu_4^\prime & = 3.1710443\times 10^{5} \end{aligned}

## Endnote

In this tutorial, you learned about how to compute the raw moments, central moments of a data set using R. You also learned about how to convert raw moments to central moments and central moments to raw moments using R programming.