Data Frames - Part 1
Figure 1
![Screenshot of Diabetes Data](../fig/diabetes_data_screenshot.png)
Figure 2
![Screenshot of subfolder 'data'](../fig/subfolder_data.png)
Figure 3
![](../fig/01-data_frames_1-rendered-unnamed-chunk-34-1.png)
Figure 4
![](../fig/01-data_frames_1-rendered-unnamed-chunk-35-3.png)
Figure 5
![](../fig/01-data_frames_1-rendered-unnamed-chunk-37-5.png)
Figure 6
![](../fig/01-data_frames_1-rendered-unnamed-chunk-38-7.png)
Figure 7
![](../fig/01-data_frames_1-rendered-unnamed-chunk-39-9.png)
Figure 8
![](../fig/01-data_frames_1-rendered-unnamed-chunk-40-11.png)
Figure 9
![](../fig/01-data_frames_1-rendered-unnamed-chunk-41-13.png)
Figure 10
![](../fig/01-data_frames_1-rendered-unnamed-chunk-42-15.png)
Figure 11
![](../fig/01-data_frames_1-rendered-unnamed-chunk-43-17.png)
Figure 12
![](../fig/01-data_frames_1-rendered-unnamed-chunk-44-19.png)
Figure 13
![](../fig/01-data_frames_1-rendered-unnamed-chunk-48-21.png)
Figure 14
![](../fig/01-data_frames_1-rendered-unnamed-chunk-53-23.png)
Data Frames - Part 2
Figure 1
![](../fig/02-data_frames_2-rendered-unnamed-chunk-3-1.png)
Figure 2
![](../fig/02-data_frames_2-rendered-unnamed-chunk-7-3.png)
Figure 3
![](../fig/02-data_frames_2-rendered-unnamed-chunk-8-5.png)
Figure 4
![](../fig/02-data_frames_2-rendered-unnamed-chunk-9-7.png)
Figure 5
![](../fig/02-data_frames_2-rendered-unnamed-chunk-10-9.png)
Figure 6
![](../fig/02-data_frames_2-rendered-unnamed-chunk-21-11.png)
Figure 7
![](../fig/02-data_frames_2-rendered-unnamed-chunk-22-13.png)
Figure 8
![](../fig/02-data_frames_2-rendered-unnamed-chunk-24-15.png)
Figure 9
![](../fig/02-data_frames_2-rendered-unnamed-chunk-26-17.png)
Figure 10
![](../fig/02-data_frames_2-rendered-unnamed-chunk-27-19.png)
Figure 11
![](../fig/02-data_frames_2-rendered-unnamed-chunk-30-21.png)
Figure 12
![](../fig/02-data_frames_2-rendered-unnamed-chunk-31-23.png)
Figure 13
![](../fig/02-data_frames_2-rendered-unnamed-chunk-32-25.png)
Figure 14
![](../fig/02-data_frames_2-rendered-unnamed-chunk-35-27.png)
Figure 15
![](../fig/02-data_frames_2-rendered-unnamed-chunk-38-29.png)
Figure 16
![](../fig/02-data_frames_2-rendered-unnamed-chunk-39-31.png)
Image Handling
Figure 1
![Figure 1: Example image, rat cerebellum](../fig/rat_cerebellum.jpg)
Figure 2
![](../fig/03-image_handling-rendered-unnamed-chunk-4-1.png)
Figure 3
![](../fig/03-image_handling-rendered-unnamed-chunk-5-3.png)
Figure 4
![](../fig/03-image_handling-rendered-unnamed-chunk-6-5.png)
Figure 5
![](../fig/03-image_handling-rendered-unnamed-chunk-8-7.png)
Figure 6
![](../fig/03-image_handling-rendered-unnamed-chunk-9-9.png)
Figure 7
![](../fig/03-image_handling-rendered-unnamed-chunk-10-11.png)
Figure 8
![](../fig/03-image_handling-rendered-unnamed-chunk-11-13.png)
Figure 9
![](../fig/03-image_handling-rendered-unnamed-chunk-13-15.png)
Figure 10
![](../fig/03-image_handling-rendered-unnamed-chunk-15-17.png)
Figure 11
![](../fig/03-image_handling-rendered-unnamed-chunk-16-19.png)
Figure 12
![](../fig/03-image_handling-rendered-unnamed-chunk-20-21.png)
Figure 13
![](../fig/03-image_handling-rendered-unnamed-chunk-22-23.png)
Figure 14
![](../fig/03-image_handling-rendered-unnamed-chunk-26-25.png)
Figure 15
![](../fig/03-image_handling-rendered-unnamed-chunk-29-27.png)
Figure 16
![](../fig/03-image_handling-rendered-unnamed-chunk-30-29.png)
Figure 17
![](../fig/03-image_handling-rendered-unnamed-chunk-31-31.png)
Figure 18
![](../fig/03-image_handling-rendered-unnamed-chunk-33-33.png)
Figure 19
![](../fig/03-image_handling-rendered-unnamed-chunk-34-35.png)
Figure 20
![](../fig/03-image_handling-rendered-unnamed-chunk-35-37.png)
Figure 21
![](../fig/03-image_handling-rendered-unnamed-chunk-36-39.png)
Time Series
Figure 1
![](../fig/04-time_series-rendered-unnamed-chunk-5-1.png)
Figure 2
![](../fig/04-time_series-rendered-unnamed-chunk-6-3.png)
Figure 3
![](../fig/04-time_series-rendered-unnamed-chunk-9-5.png)
Figure 4
![](../fig/04-time_series-rendered-unnamed-chunk-11-7.png)
Figure 5
![](../fig/04-time_series-rendered-unnamed-chunk-12-9.png)
Figure 6
![](../fig/04-time_series-rendered-unnamed-chunk-13-11.png)
Figure 7
Fourier Transform of EEG data
We import the Fourier transform function fft
from
scipy.fftpack and can use it to transform all columns
at the same time.
First, we obtain a Fourier spectrum for every data column, so we need to define how many plots we want to have. If we take only columns, we can display them all in one go.
Second, the Fourier transform results in twice the number of complex coefficients (positive and negative) of which we only need the first half.
Third, the Fourier transform outputs complex numbers. To display the ‘amplitude’ of a frequency (the coefficient corresponding to the amplitude of the sine wave with that frequency) we take the absolute value of the complex numbers.
PYTHON
no_win = 2
rows = data_back.shape[0]
freqs = (sr/2)*linspace(0, 1, int(rows/2))
amplitudes_back = (2.0 / rows) * abs(data_back_fft[:rows//2, :2])
fig, axes = subplots(figsize=(6, 5), ncols=1, nrows=no_win, sharex=False)
names = df_back.columns[:2]
for index, ax in enumerate(axes.flat):
axes[index].plot(freqs, amplitudes_back[:, index])
axes[index].set_xlim(0, 8)
axes[index].set(ylabel=f'Amplitude {names[index]}')
axes[index].set(xlabel='Frequency (Hz)');
show()
![](../fig/04-time_series-rendered-unnamed-chunk-15-13.png)
We can see that in these two channels, the main amplitude contributions lie in the low frequencies, below 2 Hz.
Let us compare the corresponding figure for the case of seizure activity:
PYTHON
fig, axes = subplots(figsize=(6, 5), ncols=1, nrows=no_win, sharex=False)
names = df_epil.columns[:2]
amplitudes_epil = (2.0 / rows) * abs(data_epil_fft[:rows//2, :2])
for index, ax in enumerate(axes.flat):
axes[index].plot(freqs, amplitudes_epil[:, index])
axes[index].set_xlim(0, 12)
axes[index].set(ylabel=f'Amplitude {names[index]}')
axes[index].set(xlabel='Frequency (Hz)');
show()
![](../fig/04-time_series-rendered-unnamed-chunk-17-15.png)
As we can see above in the Fourier spectra above, the amplitudes are high for low frequencies and tend to decrease with increasing frequency. Sometimes it is useful to see the high frequencies enhanced. This can be achieved with a logarithmic plot of the powers.
PYTHON
fig, axes = subplots(figsize=(6, 6), ncols=1, nrows=no_win, sharex=False)
for index, ax in enumerate(axes.flat):
axes[index].plot(freqs, amplitudes_back[:, index])
axes[index].set_xlim(0, 30)
axes[index].set(ylabel=f'Amplitude {names[index]}')
axes[index].set_yscale('log')
axes[no_win-1].set(xlabel='Frequency (Hz)');
fig.suptitle('Logarithmic Fourier Spectra of Background EEG', fontsize=16);
show()
![](../fig/04-time_series-rendered-unnamed-chunk-18-17.png)
And for the seizure data:
PYTHON
fig, axes = subplots(figsize=(6, 10), ncols=1, nrows=no_win, sharex=False)
for index, ax in enumerate(axes.flat):
axes[index].plot(freqs, amplitudes_epil[:, index])
axes[index].set_xlim(0, 30)
axes[index].set(ylabel=f'Power {names[index]}')
axes[index].set_yscale('log')
axes[no_win-1].set(xlabel='Frequency (Hz)');
fig.suptitle('Logarithmic Fourier Spectra of Seizure EEG', fontsize=16);
show()
![](../fig/04-time_series-rendered-unnamed-chunk-19-19.png)
In the spectrum of the absence data, it is now more obvious that there are further maxima at 6, 9, 12, and perhaps 15Hz. These are integer multiples or ‘harmonics’ of the basic frequency at around 3Hz, also referred to as the fundamental frequency.
A feature that can be used as a summary statistic, is to caclulate the band power for each channel. The band power can be obtained as the sum of all powers within a specified range of frequencies, also called the ‘band’. The band power thus represents a single number.
PYTHON
data_epil_filt = data_filter(data_epil, sr, 4, 12)
data_epil_fft = fft(data_epil_filt, axis=0)
rows = data_epil.shape[0]
freqs = (sr/2)*linspace(0, 1, int(rows/2))
amplitudes_epil = (2.0 / rows) * abs(data_epil_fft[:rows//2, :no_win])
fig, axes = subplots(figsize=(6, 10), ncols=1, nrows=no_win, sharex=False)
for index, ax in enumerate(axes.flat):
axes[index].plot(freqs, amplitudes_epil[:, index])
axes[index].set_xlim(0, 12)
axes[index].set(ylabel=f'Amplitudes {names[index]}')
axes[no_win-1].set(xlabel='Frequency (Hz)');
fig.suptitle('Fourier Spectra of Seizure EEG', fontsize=16);
show()
![](../fig/04-time_series-rendered-unnamed-chunk-20-21.png)
Figure 8
![](../fig/04-time_series-rendered-unnamed-chunk-15-13.png)
Figure 9
![](../fig/04-time_series-rendered-unnamed-chunk-17-15.png)
Figure 10
![](../fig/04-time_series-rendered-unnamed-chunk-18-17.png)
Figure 11
![](../fig/04-time_series-rendered-unnamed-chunk-20-21.png)
Figure 12
![](../fig/04-time_series-rendered-unnamed-chunk-21-23.png)
Figure 13
![](../fig/04-time_series-rendered-unnamed-chunk-22-25.png)
Figure 14
![](../fig/04-time_series-rendered-unnamed-chunk-23-27.png)
Figure 15
![](../fig/04-time_series-rendered-unnamed-chunk-27-29.png)
Figure 16
![](../fig/04-time_series-rendered-unnamed-chunk-28-31.png)
Figure 17
![](../fig/04-time_series-rendered-unnamed-chunk-30-33.png)
Figure 18
### Q5 ### Correlation Matrix
Figure 19
![](../fig/04-time_series-rendered-unnamed-chunk-33-37.png)
Figure 20
![](../fig/04-time_series-rendered-unnamed-chunk-34-39.png)
Figure 21
![](../fig/04-time_series-rendered-unnamed-chunk-35-41.png)
Figure 22
![](../fig/04-time_series-rendered-unnamed-chunk-38-43.png)