In [57]:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
In [58]:
# read data
raw_df = pd.read_csv('../pmsm_temperature_data.csv')
In [59]:
pd.options.display.max_columns = None # to all columns be visualized
raw_df.head(5)
Out[59]:
ambient coolant u_d u_q motor_speed torque i_d i_q pm stator_yoke stator_tooth stator_winding profile_id
0 -0.752143 -1.118446 0.327935 -1.297858 -1.222428 -0.250182 1.029572 -0.245860 -2.522071 -1.831422 -2.066143 -2.018033 4
1 -0.771263 -1.117021 0.329665 -1.297686 -1.222429 -0.249133 1.029509 -0.245832 -2.522418 -1.830969 -2.064859 -2.017631 4
2 -0.782892 -1.116681 0.332771 -1.301822 -1.222428 -0.249431 1.029448 -0.245818 -2.522673 -1.830400 -2.064073 -2.017343 4
3 -0.780935 -1.116764 0.333700 -1.301852 -1.222430 -0.248636 1.032845 -0.246955 -2.521639 -1.830333 -2.063137 -2.017632 4
4 -0.774043 -1.116775 0.335206 -1.303118 -1.222429 -0.248701 1.031807 -0.246610 -2.521900 -1.830498 -2.062795 -2.018145 4
In [60]:
##############################################   Check point  #############################################################
df = raw_df.copy()
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 998070 entries, 0 to 998069
Data columns (total 13 columns):
ambient           998070 non-null float64
coolant           998070 non-null float64
u_d               998070 non-null float64
u_q               998070 non-null float64
motor_speed       998070 non-null float64
torque            998070 non-null float64
i_d               998070 non-null float64
i_q               998070 non-null float64
pm                998070 non-null float64
stator_yoke       998070 non-null float64
stator_tooth      998070 non-null float64
stator_winding    998070 non-null float64
profile_id        998070 non-null int64
dtypes: float64(12), int64(1)
memory usage: 99.0 MB
  • ambient : temperature as measured by a thermal sensor located closely to the stator
  • coolant : coolant temperature. The motor is water cooled. Measurment is taken at outflow.
  • u_d : Voltsge d-component
  • u_q : Voltage q-component
  • motor_speed
  • torque : Torque induced by current
  • i_d : Current d-component
  • i_q : Current q-component
  • pm : Permanent Magnet surface temperature representing the rotor temperature. This was measured with an infrared thermography.
  • stator_yoke : Stator yoke temperature measured with a thermal sensor.
  • stator_tooth : Stator tooth temperature measured with a thermal sensor.
  • stator_winding : Stator winding temperature measured with a thermal sensor.
  • profile_id : To identified Distinctive sessions. Each measurement session has a unique ID. Make sure not to try to estimate from one session onto the other as they are strongly independent.

Distances from the core of motor : pm < stator_tooth < stator_winding < stator_yoke (?).

Each row represents one snapshot of sensor data at a certain time step (0.5s).

Records with the same profile id sorted by time of recording.

In [61]:
# some statistics 
df.describe().T
Out[61]:
count mean std min 25% 50% 75% max
ambient 998070.0 -0.003905 0.993127 -8.573954 -0.599385 0.266157 0.686675 2.967117
coolant 998070.0 0.004723 1.002423 -1.429349 -1.037925 -0.177187 0.650709 2.649032
u_d 998070.0 0.004780 0.997878 -1.655373 -0.826359 0.267542 0.358491 2.274734
u_q 998070.0 -0.005690 1.002330 -1.861463 -0.927390 -0.099818 0.852625 1.793498
motor_speed 998070.0 -0.006336 1.001229 -1.371529 -0.951892 -0.140246 0.853584 2.024164
torque 998070.0 -0.003333 0.997907 -3.345953 -0.266917 -0.187246 0.547171 3.016971
i_d 998070.0 0.006043 0.998994 -3.245874 -0.756296 0.213935 1.013975 1.060937
i_q 998070.0 -0.003194 0.997912 -3.341639 -0.257269 -0.190076 0.499260 2.914185
pm 998070.0 -0.004396 0.995686 -2.631991 -0.672308 0.094367 0.680691 2.917456
stator_yoke 998070.0 0.000609 1.001049 -1.834688 -0.747265 -0.057226 0.697344 2.449158
stator_tooth 998070.0 -0.002208 0.999597 -2.066143 -0.761951 0.005085 0.772239 2.326668
stator_winding 998070.0 -0.003935 0.998343 -2.019973 -0.725622 0.006536 0.725660 2.653781
profile_id 998070.0 50.732001 22.073125 4.000000 32.000000 56.000000 68.000000 81.000000
In [62]:
# Count the number of null values for each column
df.isnull().sum()
Out[62]:
ambient           0
coolant           0
u_d               0
u_q               0
motor_speed       0
torque            0
i_d               0
i_q               0
pm                0
stator_yoke       0
stator_tooth      0
stator_winding    0
profile_id        0
dtype: int64
In [63]:
fig = plt.figure(figsize=(18,6))
grpd = df.groupby(['profile_id'])
_df = grpd.size().sort_values().rename('time').reset_index()
ordered_ids = _df.profile_id.values.tolist()
sns.barplot(y='time', x='profile_id', data=_df, order=ordered_ids)
tcks = plt.yticks(2*3600*np.arange(1, 8), [f'{a} hrs' for a in range(1, 8)]) # 2Hz sample rate

Plot shows that sessions' time are not same and its between almost 20 min to around 6 hours. The short sessions with ids "47","46" might be not very representetive as temperatures inside electric motors neet time to vary. It can understand that longer session are more reliable as well as should properly consider in both train and testing.

In [64]:
len(df.profile_id.unique())
Out[64]:
52

there are 52 indipendent sessions.

In [65]:
df_extra_feat = df.copy()

extra_feats = {
    'i_s': lambda x: np.sqrt(x['i_d']**2 + x['i_q']**2), # current vector norm
    'u_s': lambda x: np.sqrt(x['u_d']**2 + x['u_q']**2), # voltage vector norm
    #'S_el': lambda x: x['i_s']*x['u_s'],                 # apparent power
    #'P_el': lambda x: x['i_d'] * x['u_d'] + x['i_q'] *x['u_q'], # effective power
    #'i_s_x_w': lambda x: x['i_s']*x['motor_speed'],  # Motor speed and current interaction
    #'S_x_w': lambda x: x['S_el']*x['motor_speed'],   # Motor speed and power interaction
}

df = df_extra_feat.assign(**extra_feats)
In [66]:
df.head()
Out[66]:
ambient coolant u_d u_q motor_speed torque i_d i_q pm stator_yoke stator_tooth stator_winding profile_id i_s u_s
0 -0.752143 -1.118446 0.327935 -1.297858 -1.222428 -0.250182 1.029572 -0.245860 -2.522071 -1.831422 -2.066143 -2.018033 4 1.058521 1.338647
1 -0.771263 -1.117021 0.329665 -1.297686 -1.222429 -0.249133 1.029509 -0.245832 -2.522418 -1.830969 -2.064859 -2.017631 4 1.058453 1.338906
2 -0.782892 -1.116681 0.332771 -1.301822 -1.222428 -0.249431 1.029448 -0.245818 -2.522673 -1.830400 -2.064073 -2.017343 4 1.058390 1.343680
3 -0.780935 -1.116764 0.333700 -1.301852 -1.222430 -0.248636 1.032845 -0.246955 -2.521639 -1.830333 -2.063137 -2.017632 4 1.061958 1.343940
4 -0.774043 -1.116775 0.335206 -1.303118 -1.222429 -0.248701 1.031807 -0.246610 -2.521900 -1.830498 -2.062795 -2.018145 4 1.060869 1.345541

It gives better view in order to realized the range of the data

In [67]:
# plot the boxplots of all features
plt.tight_layout(pad=0.9)
fig = plt.figure(figsize=(20,15))
plt.subplots_adjust(wspace=0.2)
nbr_columns = 4
df1 = df.drop(['profile_id'], axis=1)
nbr_graphs = len(df1.columns)
nbr_rows = int(np.ceil(nbr_graphs/nbr_columns))
columns = list(df1.columns.values)

with sns.axes_style("whitegrid"):
    for i in range(0,len(columns)):
        plt.subplot(nbr_rows,nbr_columns,i+1)
        ax1=sns.boxplot(x= columns[i], data= df1, orient="h",color=sns.color_palette("Blues")[3]) 
    plt.show()
<Figure size 432x288 with 0 Axes>
  • Dataset description provides us with no refrences to the units used for each of the samples, making it harder to interpret values measured.
  • Dataset has kind of normalization based by on looking at Histograms.
  • Features like torque,motor speed, rotor temperature (pm), stator yoke,winding and tooth temperature, coolwater temperature are all self-explantory. The active and reactive current and voltage (i_d, i_q, u_d, u_q) of the PMSM require some background knowledge of how a synchronous motor works.
  • The ambient temperature is measured by a thermal sensor located closely to the stator. We can therefore assume that this will have an impact on the selfcooling capacity of the motor. A higher ambient temperature will probably reuslt in a higher temperature for both the motor's stator and rotor.

Correlation analysis

In [84]:
corr = df1.corr()
# generate mask for the upper triangle 
mask = np.zeros_like(corr, dtype=np.bool)
mask[np.triu_indices_from(mask)] = True
# generate a custom diverding colormap
cmap = sns.diverging_palette(220,10,as_cmap=True)

plt.figure(figsize=(30, 8.8))
_ = sns.heatmap(corr,mask=mask,cmap=cmap,center=0,square=True,linewidths=.5, cbar_kws={"shrink":.5},annot=True)
  • The Correlation matric shows there is a significant correlation between the three different stator temperature.
  • We observe a very high positve linear correlation between i_q and torque. Moreover, u_d is highly negative linearly correlated with torque and i_q. Indeed, for the former insight we can refer to electric drive theory, where either higher torque is exclusively dependent on i_q in case of similar sized inductances in d- and q-axis, or increasing with higher i_q and slightly decreasing i_d elsewise (more common in practice).
  • Between features, there is almost high positive linear coorelation between Temperatures and coolant.
  • The features u_s and i_s are not highly linear correlated with respectevely u_d, u_q and i_d, i_q, but we know that they have a strong quadratic correlation.
In [13]:
### bivariate scatterplot

reduced_df = df.drop(['profile_id'], axis=1)  #, 'u_d', 'u_q', 'i_d', 'i_q', 'stator_tooth', 'stator_winding'
plt.rcParams.update({'font.size':25}) # customizing the plt style
g = sns.PairGrid(reduced_df.sample(frac=0.04))  # plotting pairwise relationships in dataset
#g.map_diag(sns.kdeplot) #Plot with a univariate function on each diagonal subplot.
g.map_lower(sns.scatterplot) # bivariate
Out[13]:
<seaborn.axisgrid.PairGrid at 0x7f75425c1790>

The pair scatter-plots give a somewhat clearer where the linear correlation comes from.

Now we make still some analysis, to better understand the correlation within some features.

In [14]:
columns = ['stator_yoke','stator_tooth','stator_winding']
profile_id_list = df.profile_id.unique()
profile_id_list = np.random.choice(profile_id_list, size=6, replace=False)
nbr_column = 2
nbr_graph = len(profile_id_list)
nbr_row = int(np.ceil(nbr_graph/nbr_column))
kolomlijst = list(df.columns.values)
plt.figure(figsize=(30,nbr_row*5))

with sns.axes_style("whitegrid"):    
    for i in range(0,nbr_graph): 
        plt.subplot(nbr_row,nbr_column,i+1) 
        temp = df.loc[df['profile_id'] == profile_id_list[i]]
        temp = temp.loc[:,columns]
        #temp = temp.iloc[::70, :]
        ax1=sns.lineplot(data=temp.loc[:,columns], 
                        dashes = False,
                        palette=sns.color_palette('Dark2',n_colors=len(columns)))
        ax1.set_title("profile id: {0}".format(profile_id_list[i]))
    plt.show    

The lineplots confirm that all three temperatures follow the same trend. The stator winding temperatures shows the biggest variation followed by the stator tooth and stator yoke temperature. This is especially noticeable when there is a lot of variation in the stator winding temperature. If this is the case, the stator tooth** and yoke temperatures follow a smoother path than the temperature recorded on the stator winding. In other words, the heat dissipated by the stator windings takes some time to heat up the stator tooth and yoke due to the thermal inertia of both stator parts.

In [15]:
columns = ['torque', 'i_q', 'u_d']
profile_id_list = df.profile_id.unique()
#[57, 71, 60, 61, 75, 77]
profile_id_list = np.random.choice(profile_id_list, size=8, replace=False)

nbr_column = 2
nbr_graph = len(profile_id_list)
nbr_row = int(np.ceil(nbr_graph/nbr_column))
kolomlijst = list(df.columns.values)
plt.figure(figsize=(30,nbr_row*5))

with sns.axes_style("whitegrid"):    
    for i in range(0,nbr_graph): 
        plt.subplot(nbr_row,nbr_column,i+1) 
        temp = df.loc[df['profile_id'] == profile_id_list[i]]
        temp = temp.loc[:,columns]
        #temp = temp.iloc[::70, :]
        ax1=sns.lineplot(data=temp.loc[:,columns], 
                        dashes = False,
                        palette=sns.color_palette('Dark2',n_colors=len(columns)))
        ax1.set_title("profile id: {0}".format(profile_id_list[i]))
    plt.show

The image confirm what we expected: the 'i_q' and 'torque' curves are almost overlapped, compared to the 'u_q' curve that follows an opposite trend.

In [ ]:
 
In [16]:
columns = ['coolant', 'stator_yoke', 'u_s']
df.profile_id.unique()
#profile_id_list = [57, 71, 60, 61, 75, 77]
profile_id_list = np.random.choice(profile_id_list, size=6, replace=False)
nbr_column = 2
nbr_graph = len(profile_id_list)
nbr_row = int(np.ceil(nbr_graph/nbr_column))
kolomlijst = list(df.columns.values)
plt.figure(figsize=(30,nbr_row*5))

with sns.axes_style("whitegrid"):    
    for i in range(0,nbr_graph): 
        plt.subplot(nbr_row,nbr_column,i+1) 
        temp = df.loc[df['profile_id'] == profile_id_list[i]]
        temp = temp.loc[:,columns]
        #temp = temp.iloc[::70, :]
        ax1=sns.lineplot(data=temp.loc[:,columns], 
                        dashes = False,
                        palette=sns.color_palette('Dark2',n_colors=len(columns)))
        ax1.set_title("profile id: {0}".format(profile_id_list[i]))
    plt.show

We can observe that the coolant and stator_yoke variables follow the same trend. 'Coolant' presents a lot of flat zones, with some sudden changes. The voltage vector (u_s) does not seem to depend on those changes.

In [17]:
reduced_df = df.drop(['u_d', 'u_q', 'i_d', 'i_q', 'stator_tooth', 'stator_winding', 'coolant'], axis=1)
In [18]:
reduced_df.head()
Out[18]:
ambient motor_speed torque pm stator_yoke profile_id i_s u_s
0 -0.752143 -1.222428 -0.250182 -2.522071 -1.831422 4 1.058521 1.338647
1 -0.771263 -1.222429 -0.249133 -2.522418 -1.830969 4 1.058453 1.338906
2 -0.782892 -1.222428 -0.249431 -2.522673 -1.830400 4 1.058390 1.343680
3 -0.780935 -1.222430 -0.248636 -2.521639 -1.830333 4 1.061958 1.343940
4 -0.774043 -1.222429 -0.248701 -2.521900 -1.830498 4 1.060869 1.345541

Aggregating sessions

In [19]:
import math as mt

I want to consider first, all the sections with same duration. Let's take the ones last almost two hours.

I want to split each sessions in a certain number of record such that I can explain the most possible signals.

In [20]:
profile_id_1 = 60
profile_id_2 = 61
profile_id_3 = 77    # Three profiles with same duration

feat_plot_1 = ['stator_yoke','pm']
feat_plot_2 = ['u_s']
feat_plot_3 = ['torque','motor_speed']

temp_1 = reduced_df.loc[df['profile_id'] == profile_id_1]
temp_1 = temp_1.iloc[:, :]

temp_2 = reduced_df.loc[df['profile_id'] == profile_id_2]
temp_2 = temp_2.iloc[:, :]

temp_3 = reduced_df.loc[df['profile_id'] == profile_id_3]
temp_3 = temp_3.iloc[:, :]
"""
fig.add_subplot(ROW,COLUMN,POSITION) 
    ROW=number of rows, 
    COLUMN=number of columns, 
    POSITION= position of the graph you are plotting

"""

with sns.axes_style("whitegrid"):
    fig = plt.figure(figsize=(15, 10))
    ax1 = fig.add_subplot(331)
    ax1 = sns.lineplot(data=temp_1.loc[:,feat_plot_1], dashes = False,
                       palette=sns.color_palette('Blues',n_colors=len(feat_plot_1)),linewidth=0.8)
    ax1.set_title("profile id: {0}".format(profile_id_1))
    
    ax2 = fig.add_subplot(332)
    ax2 = sns.lineplot(data=temp_2.loc[:,feat_plot_1], dashes = False,
                       palette=sns.color_palette('Blues',n_colors=len(feat_plot_1)),linewidth=0.8)
    ax2.set_title("profile id: {0}".format(profile_id_2))
    
    ax3 = fig.add_subplot(333)
    ax3 = sns.lineplot(data=temp_3.loc[:,feat_plot_1], dashes = False,
                       palette=sns.color_palette('Blues',n_colors=len(feat_plot_1)),linewidth=0.8)
    ax3.set_title("profile id: {0}".format(profile_id_3))
    
    ax4 = fig.add_subplot(334)
    ax4 = sns.lineplot(data=temp_1.loc[:,feat_plot_2], dashes = False,
                       palette=sns.color_palette('Dark2',n_colors=len(feat_plot_2)),linewidth=0.8)
    
    ax5 = fig.add_subplot(335)
    ax5 = sns.lineplot(data=temp_2.loc[:,feat_plot_2], dashes = False,
                       palette=sns.color_palette('Dark2',n_colors=len(feat_plot_2)),linewidth=0.8)
    ax6 = fig.add_subplot(336)
    ax6 = sns.lineplot(data=temp_3.loc[:,feat_plot_2], dashes = False,
                       palette=sns.color_palette('Dark2',n_colors=len(feat_plot_2)),linewidth=0.8)
    
    ax7 = fig.add_subplot(337)
    ax7 = sns.lineplot(data=temp_1.loc[:,feat_plot_3], dashes = False,
                       palette=sns.color_palette('YlOrBr',n_colors=len(feat_plot_3)),linewidth=0.8)
    ax8 = fig.add_subplot(338)
    ax8 = sns.lineplot(data=temp_2.loc[:,feat_plot_3], dashes = False,
                       palette=sns.color_palette('YlOrBr',n_colors=len(feat_plot_3)),linewidth=0.8)
    ax9 = fig.add_subplot(339)
    ax9 = sns.lineplot(data=temp_3.loc[:,feat_plot_3], dashes = False,
                       palette=sns.color_palette('YlOrBr',n_colors=len(feat_plot_3)),linewidth=0.8)

    plt.show()

By analysing the first row, we can see a similira pattern:

  • Infact, in the first part, the signals (stator_yoke and pm) are swinging,
  • in the centrale zone, they show a smoother path,
  • In the final area, they start again to fluctuate.

It's interesting to observe, that in the center area, the vector voltage u_s, the torque and the motor_speed are costant.

In [ ]:
 
In [21]:
profile_id_1 = 60
profile_id_2 = 61
profile_id_3 = 77

feat_plot_1 = ['ambient']
feat_plot_2 = ['u_s']
feat_plot_3 = ['i_s']

temp_1 = reduced_df.loc[df['profile_id'] == profile_id_1]
temp_1 = temp_1.iloc[:, :]

temp_2 = reduced_df.loc[df['profile_id'] == profile_id_2]
temp_2 = temp_2.iloc[:, :]

temp_3 = reduced_df.loc[df['profile_id'] == profile_id_3]
temp_3 = temp_3.iloc[:, :]
"""
fig.add_subplot(ROW,COLUMN,POSITION) 
    ROW=number of rows, 
    COLUMN=number of columns, 
    POSITION= position of the graph you are plotting

"""

with sns.axes_style("whitegrid"):
    fig = plt.figure(figsize=(15, 10))
    ax1 = fig.add_subplot(331)
    ax1 = sns.lineplot(data=temp_1.loc[:,feat_plot_1], dashes = False,
                       palette=sns.color_palette('Blues',n_colors=len(feat_plot_1)),linewidth=0.8)
    ax1.set_title("profile id: {0}".format(profile_id_1))
    
    ax2 = fig.add_subplot(332)
    ax2 = sns.lineplot(data=temp_2.loc[:,feat_plot_1], dashes = False,
                       palette=sns.color_palette('Blues',n_colors=len(feat_plot_1)),linewidth=0.8)
    ax2.set_title("profile id: {0}".format(profile_id_2))
    
    ax3 = fig.add_subplot(333)
    ax3 = sns.lineplot(data=temp_3.loc[:,feat_plot_1], dashes = False,
                       palette=sns.color_palette('Blues',n_colors=len(feat_plot_1)),linewidth=0.8)
    ax3.set_title("profile id: {0}".format(profile_id_3))
    
    ax4 = fig.add_subplot(334)
    ax4 = sns.lineplot(data=temp_1.loc[:,feat_plot_2], dashes = False,
                       palette=sns.color_palette('Dark2',n_colors=len(feat_plot_2)),linewidth=0.8)
    
    ax5 = fig.add_subplot(335)
    ax5 = sns.lineplot(data=temp_2.loc[:,feat_plot_2], dashes = False,
                       palette=sns.color_palette('Dark2',n_colors=len(feat_plot_2)),linewidth=0.8)
    ax6 = fig.add_subplot(336)
    ax6 = sns.lineplot(data=temp_3.loc[:,feat_plot_2], dashes = False,
                       palette=sns.color_palette('Dark2',n_colors=len(feat_plot_2)),linewidth=0.8)
    
    ax7 = fig.add_subplot(337)
    ax7 = sns.lineplot(data=temp_1.loc[:,feat_plot_3], dashes = False,
                       palette=sns.color_palette('YlOrBr',n_colors=len(feat_plot_3)),linewidth=0.8)
    ax8 = fig.add_subplot(338)
    ax8 = sns.lineplot(data=temp_2.loc[:,feat_plot_3], dashes = False,
                       palette=sns.color_palette('YlOrBr',n_colors=len(feat_plot_3)),linewidth=0.8)
    ax9 = fig.add_subplot(339)
    ax9 = sns.lineplot(data=temp_3.loc[:,feat_plot_3], dashes = False,
                       palette=sns.color_palette('YlOrBr',n_colors=len(feat_plot_3)),linewidth=0.8)

    plt.show()

We can observe that the ambient temperature present some outliers that have to be handled.

We want to find an adeguate number of rows in which to break up each signals, in order to obtain a similar pattern for each of the areas that will result after the division.

Pm

Profile 60

In [88]:
# The first signal that we want to anylise is pm:
pm60 = reduced_df.loc[df['profile_id'] == profile_id_1]
pm60 = pm60.loc[:, 'pm'].values

fig = plt.figure(figsize=(15, 5))
plt.ylabel('values')
plt.xlabel('time')
plt.xticks(2*1200*np.arange(1, 10), [f'{a} min' for a in np.arange(20, 200, 20)]) # 2Hz sample rate
plt.title("Pm signal for the profile id 60")
plt.plot(pm60)
Out[88]:
[<matplotlib.lines.Line2D at 0x7f7547ed9150>]
In [89]:
pmZom60 = pm60

fig = plt.figure(figsize=(18, 5))
plt.plot(pmZom60, label='pm')
plt.ylabel('values')
plt.xlabel('time')
plt.xticks(2*1200*np.arange(1, 10), [f'{a} min' for a in np.arange(20, 200, 20)]) # 2Hz sample rate

numVertLines = mt.ceil(len(pmZom60)/1850)  # 1850
intervals = np.linspace(1850, len(pmZom60), num= numVertLines)
# single vline with full ymin and ymax
plt.title("Pm signal for the profile id 60")
plt.vlines(x=intervals, ymin=-2, ymax=1.5, colors='green', ls='--', lw=2, label='split lines')
plt.legend()
Out[89]:
<matplotlib.legend.Legend at 0x7f751397dc50>

After a lot of trials, I choose to aggregate the data every 1850 rows, that are more or less equivalent to 15 minutes. I want to check if this choice is reasonable for all the signals and for all profiles.

In [ ]:
 
In [ ]:
 

I observe some results.

Profile 61

In [24]:
# The first signal that we want to anylise is pm:
pm61 = reduced_df.loc[df['profile_id'] == 61]
pm61 = pm61.loc[:, 'pm'].values

fig = plt.figure(figsize=(10, 5))
plt.plot(pm61)
plt.ylabel('values')
plt.xlabel('time')
plt.xticks(2*1200*np.arange(1, 7), [f'{a} min' for a in np.arange(20, 130, 20)]) # 2Hz sample rate
plt.title("Pm signal for the profile id 61")
Out[24]:
Text(0.5, 1.0, 'Pm signal for the profile id 61')
In [25]:
pmZom61 = pm61

fig = plt.figure(figsize=(10, 5))
plt.plot(pmZom61, label= 'pm')
plt.ylabel('values')
plt.xlabel('time')
plt.xticks(2*1200*np.arange(1, 10), [f'{a} min' for a in np.arange(20, 200, 20)]) # 2Hz sample rate

plt.title("Pm signal for the profile id 61")
numVertLines = mt.ceil(len(pmZom61)/1850)
intervals = np.linspace(1850, len(pmZom61), num= numVertLines)
# single vline with full ymin and ymax
plt.vlines(x=intervals, ymin=-0.5, ymax=2, colors='green', ls='--', lw=2, label='split line')
plt.legend()
Out[25]:
<matplotlib.legend.Legend at 0x7f751b7089d0>

Profile 66

In [86]:
# The first signal that we want to anylise is pm:
pm66 = reduced_df.loc[df['profile_id'] == 66]
pm66 = pm66.loc[:, 'pm'].values

fig = plt.figure(figsize=(15, 5))
plt.plot(pm66, label= 'pm')
plt.ylabel('values')
plt.xlabel('time')
plt.xticks(2*1200*np.arange(1, 16), [f'{a} min' for a in np.arange(20, 310, 20)]) # 2Hz sample rate
plt.title("Pm signal for the profile id 66")
plt.legend()
Out[86]:
<matplotlib.legend.Legend at 0x7f751b87e810>
In [87]:
# The first signal that we want to anylise is pm:
pmZom66 = pm66[:30000]

fig = plt.figure(figsize=(12, 5))
plt.plot(pmZom66, label= 'pm')
plt.ylabel('values')
plt.xlabel('time')
plt.xticks(2*1200*np.arange(1, 16), [f'{a} min' for a in np.arange(20, 310, 20)]) # 2Hz sample rate

numVertLines = mt.ceil(len(pmZom66)/1850)
intervals = np.linspace(1850, len(pmZom66), num= numVertLines)
# single vline with full ymin and ymax
plt.title("Pm signal for the profile id 66")
plt.vlines(x=intervals, ymin=-1, ymax=2, colors='green', ls='--', lw=2, label='split line')
plt.legend()
Out[87]:
<matplotlib.legend.Legend at 0x7f7547b2bb10>

Torque

In [90]:
# The first signal that we want to anylise is pm:
torque = reduced_df.loc[reduced_df['profile_id'] == profile_id_1]
torque = torque.loc[:, 'torque'].values

fig = plt.figure(figsize=(15, 5))
plt.plot(torque[:], label= 'torque')

plt.ylabel('values')
plt.xlabel('time')
plt.xticks(2*1200*np.arange(1, 7), [f'{a} min' for a in np.arange(20, 130, 20)]) # 2Hz sample rate
plt.title("Torque signal for the profile id 60")

plt.legend()
Out[90]:
<matplotlib.legend.Legend at 0x7f7518547c50>
In [93]:
# The first signal that we want to anylise is pm:

fig = plt.figure(figsize=(15, 5))
plt.plot(torque, label= 'torque')
plt.ylabel('values')
plt.xlabel('time')
plt.xticks(2*1200*np.arange(1, 7), [f'{a} min' for a in np.arange(20, 130, 20)]) # 2Hz sample rate

numVertLines = mt.ceil(len(torque)/1850)
intervals = np.linspace(1850, len(torque), num= numVertLines)
# single vline with full ymin and ymax
plt.vlines(x=intervals, ymin=-3, ymax=2.7, colors='green', ls='--', lw=2, label='split line')
plt.title("Torque signal for the profile id 60")

plt.legend()
Out[93]:
<matplotlib.legend.Legend at 0x7f75481adc50>

Also for the torque, 1850 seems to be a reasonable number for which to divide the signal.

Ambient

In [30]:
# profile_id_list = df.profile_id.unique()
# profile_id_rand = np.random.choice(profile_id_list, size=1, replace=False)
profile_id_1 = 60
ambient = df.loc[df['profile_id'] == 60]
ambient = ambient.loc[:, 'ambient'].values

fig = plt.figure(figsize=(15, 5))
plt.plot(ambient, label= 'ambient')#[1035:1050]
plt.ylabel('values')
plt.xlabel('time')
plt.xticks(2*1200*np.arange(1, 7), [f'{a} min' for a in np.arange(20, 130, 20)]) # 2Hz sample rate
plt.ylim(-5, 2)

plt.title("Signal of the ambient feature of the profile id {0}".format(profile_id_1))
plt.legend()
Out[30]:
<matplotlib.legend.Legend at 0x7f751b48bb50>

First of all we observe that there are some outliers! It's seems to be reasonable removing all the value below a certain treshold. We want to check if this information is true. That is, we want to check

In [31]:
ambient = reduced_df.loc[reduced_df['profile_id'] == 60]
ambient = ambient.loc[:, 'ambient'].values

fig = plt.figure(figsize=(15, 5))
plt.plot(ambient[1035:1050], label= 'ambient')
plt.ylabel('values')

plt.title("A zoomed area (after 10 minutes) of the 'ambient' signal for the profile id {0}".format(profile_id_1))
Out[31]:
Text(0.5, 1.0, "A zoomed area (after 10 minutes) of the 'ambient' signal for the profile id 60")
In [32]:
ambient = reduced_df.loc[reduced_df['profile_id'] == 60]
ambient = ambient.loc[:, 'ambient'].values

fig = plt.figure(figsize=(15, 5))
plt.plot(ambient[4762:4780], label= 'ambient')#[1035:1050]
plt.ylabel('values')

plt.title("A zoomed area (at 40 minutes) of the 'ambient' signal for the profile id {0}".format(profile_id_1))
#plt.legend()
Out[32]:
Text(0.5, 1.0, "A zoomed area (at 40 minutes) of the 'ambient' signal for the profile id 60")

By zoomming on the areas where outliers are present, we can state that these points are not due to some kind of errors. Infact the peaks are not isolated points, but their neighborhood points go along with the trend.

We want to see if they are consequences of a strange trend of the rotor and stator's temperatures. It could be possible that, in the neighborhood of these points, the activity of the motor would be very few resulting a less values also for the ambient temperature.

In [96]:
columns = ['ambient', 'stator_yoke', 'pm']
#profile_id_list = df.profile_id.unique()
profile_id_list = [57, 71, 60, 61, 75, 77]
#profile_id_list = np.random.choice(profile_id_list, size=12, replace=False)
nbr_column = 3
nbr_graph = len(profile_id_list)
nbr_row = int(np.ceil(nbr_graph/nbr_column))
kolomlijst = list(df.columns.values)
plt.figure(figsize=(30,nbr_row*5))

with sns.axes_style("whitegrid"):    
    for i in range(0,nbr_graph): 
        plt.subplot(nbr_row,nbr_column,i+1) 
        temp = df.loc[df['profile_id'] == profile_id_list[i]]
        temp = temp.loc[:,columns]
        #temp = temp.iloc[::70, :]
        ax1=sns.lineplot(data=temp.loc[:,columns], 
                        dashes = False,
                        palette=sns.color_palette('Dark2',n_colors=len(columns)))
        #plt.xticks(2*1200*np.arange(1, 7), [f'{a} min' for a in np.arange(20, 130, 20)]) # 2Hz sample rate

        ax1.set_title("profile id: {0}".format(profile_id_list[i]))
    plt.show

It's evident that there is no common relationships between these signals. For some sessions and some points, the downward peaks are linked to downward trend of the stator_yoke and pm features, for others, they are associated to an increase values in both these temperatures.

Removing outlier

An idea could be split the data into groups. For each of them taking the mean value and after removing the values that are out of the interval

            (-0.5 + Mean; Mean + 0.5).


At the end replacing these values with the one that we will obtain using the interpolate function of python.

We can see the signal for six different profileId

In [100]:
columns = ['ambient']
profile_id_list = [57, 71, 60, 61, 75, 77]

nbr_column = 3
nbr_graph = len(profile_id_list)
nbr_row = int(np.ceil(nbr_graph/nbr_column))
kolomlijst = list(df.columns.values)
plt.figure(figsize=(30,nbr_row*5))

with sns.axes_style("whitegrid"):    
    for i in range(0,nbr_graph): 
        plt.subplot(nbr_row,nbr_column,i+1) 
        temp = df.loc[df['profile_id'] == profile_id_list[i]]
        temp = temp.loc[:,columns]
        #temp = temp.iloc[::70, :]
        ax1=sns.lineplot(data=temp.loc[:,columns], 
                        dashes = False,
                        palette=sns.color_palette('Dark2',n_colors=len(columns)))
        ax1.set(ylim=(-5,2))
        #ax1.xticks(2*1200*np.arange(1, 7), [f'{a} min' for a in np.arange(20, 130, 20)]) # 2Hz sample rate
        ax1.set_title("profile id: {0}".format(profile_id_list[i]))
    plt.show
In [35]:
# Two functions for detecting and removing the outliers

def discoverOutlier(arrayToDiscover, startInd, radius):
    
    outlierList = list()
    meanVector = np.mean(arrayToDiscover)
    
    for i in range(0, len(arrayToDiscover)):
        ind = arrayToDiscover[i]
        
        if ((abs(ind - meanVector)> radius)):
            outInd = i + startInd
            #print(outInd)
            outlierList.append(outInd)
            
    
    return outlierList

def outlierRemoving(columnWithOutlier, outlierIndexes):
    
    column = columnWithOutlier.copy()
    column[outlierIndexes] = np.nan
    columnWithoutOutlier = column.interpolate(limit_direction= 'forward')
    return columnWithoutOutlier 
In [ ]:
 

I work first of all by considering the signal (ambient) of the profile id 60

In [36]:
outlierIndexes = list()
ambientId60 = df.loc[df['profile_id'] == 60]
startIndex = ambientId60.loc[:,'ambient'].index[0]
ambientId = ambientId60.loc[:,'ambient'].values 
    
lenght = len(ambientId)
    
numIntervals = mt.ceil(lenght/1850)
intervals = np.linspace(1850, lenght, num= numIntervals)
start = 0

for n in intervals:
    n=mt.ceil(n)
    listOut = list(discoverOutlier(ambientId[start:n], startIndex+start, 0.5))
    outlierIndexes.extend(listOut)

    start = n

outlierIndexes
ambientTota = df.loc[df['profile_id'] == 60]
ambientTota = ambientTota.loc[:,'ambient']
    
ambientNoOutlier = outlierRemoving(ambientTota, outlierIndexes)    
In [37]:
ambientNoOutlier.isna().sum()
Out[37]:
0
In [38]:
profile_id_1 = 60
ambient = reduced_df.loc[reduced_df['profile_id'] == 60]
ambient = ambient.loc[:, 'ambient'] #.values

fig = plt.figure(figsize=(15, 5))
plt.plot(ambientNoOutlier.values, label= 'ambient')#[1035:1050]
plt.ylabel('values')
plt.xlabel('time')
plt.xticks(2*1200*np.arange(1, 7), [f'{a} min' for a in np.arange(20, 130, 20)]) # 2Hz sample rate
plt.ylim(-5, 2)

plt.title("Signal of the ambient feature after removing the outliers of the profile id {0}".format(profile_id_1))
plt.legend()
Out[38]:
<matplotlib.legend.Legend at 0x7f751374d750>
In [39]:
profile_id_list = df.profile_id.unique().tolist()
outlierIndexes = list()

for ids in profile_id_list:
    ambientIds = df.loc[df['profile_id'] == ids]
    startIndex = ambientIds.loc[:,'ambient'].index[0]
    #print(startIndex)
    ambientId = ambientIds.loc[:,'ambient'].values 
    
    #end = ambientId.index[len(ambientId.index)]
    
    lenght = len(ambientId)
    
    numIntervals = mt.ceil(lenght/1850)
    intervals = np.linspace(1850, lenght, num= numIntervals)

    start = 0
    for n in intervals:
        n=mt.ceil(n)
        outlierIndexes.extend(discoverOutlier(ambientId[start:n], startIndex+ start, 0.5))
        start = n
        

ambientTotal = df.copy()['ambient']
    
ambientNoOutlier = outlierRemoving(ambientTotal, outlierIndexes)
reduced_df['ambient'] = ambientNoOutlier
In [40]:
print('Number of outlier detected:')
print(len(outlierIndexes))
print('')
print('Number of null values:')
print(sum(reduced_df['ambient'].isnull().values))
Number of outlier detected:
24941

Number of null values:
0
In [41]:
#ambientNoOutlier
#reduced_df['ambient'].interpolate(method='linear', limit_direction='forward')
In [42]:
columns = ['ambient']
#profile_id_list = df.profile_id.unique()
profile_id_list = [57, 71, 60, 61, 75, 77]
#profile_id_list = np.random.choice(profile_id_list, size=12, replace=False)

nbr_column = 3
nbr_graph = len(profile_id_list)
nbr_row = int(np.ceil(nbr_graph/nbr_column))
kolomlijst = list(df.columns.values)
plt.figure(figsize=(30,nbr_row*5))

with sns.axes_style("whitegrid"):    
    for i in range(0,nbr_graph): 
        plt.subplot(nbr_row,nbr_column,i+1) 
        temp = reduced_df.loc[reduced_df['profile_id'] == profile_id_list[i]]
        temp = temp.loc[:,columns]
        #temp = temp.iloc[::70, :]
        ax1=sns.lineplot(data=temp.loc[:,columns], 
                        dashes = False,
                        palette=sns.color_palette('Dark2',n_colors=len(columns)))
        ax1.set(ylim=(-5, 1.7))
        ax1.set_title("profile id: {0}".format(profile_id_list[i]))
    plt.show

We can state that the algorihtm worked and that the outliers have been removing and replacing correctly

In [ ]:
 
In [43]:
# The first signal that we want to anylise is pm:
ambient = reduced_df.loc[reduced_df['profile_id'] == 60]
ambient = ambient.loc[:, 'ambient'].values


fig = plt.figure(figsize=(15, 5))
plt.plot(ambient, label= 'ambient')
plt.legend()
#plt.xticks(2*1200*np.arange(1, 7), [f'{a} min' for a in np.arange(20, 130, 20)]) # 2Hz sample rate
plt.ylim(-2, 2)

numVertLines = mt.ceil(len(ambient)/1850)
intervals = np.linspace(1850, len(ambient), num= numVertLines)
plt.vlines(x=intervals, ymin=-3, ymax=2, colors='green', ls='--', lw=2, label='split line')

# single vline with full ymin and ymax
Out[43]:
<matplotlib.collections.LineCollection at 0x7f7542b95550>

i_s

In [44]:
profile_id_list = reduced_df.profile_id.unique()
profile_id_rand = np.random.choice(profile_id_list, size=1, replace=False)#58

i_s = reduced_df.loc[reduced_df['profile_id'] == 58] #profile_id_rand[0]
i_s = i_s.loc[:, 'i_s'].values

fig = plt.figure(figsize=(15, 5))
plt.plot(i_s, label= 'i_s')#[1035:1050]
plt.title("Signal of i_s feature of the profile id 58") #.format(profile_id_rand)
plt.legend()
plt.ylabel('values')
plt.xlabel('time')
plt.xticks(2*1200*np.arange(1, 19), [f'{a} min' for a in np.arange(20, 280, 20)]) 
numVertLines = mt.ceil(len(i_s)/1850)
intervals = np.linspace(1850, len(i_s), num= numVertLines)
# single vline with full ymin and ymax
plt.vlines(x=intervals, ymin=-3, ymax=3.4, colors='green', ls='--', lw=2, label='vline_multiple - partial height')
Out[44]:
<matplotlib.collections.LineCollection at 0x7f751bec8910>
In [ ]:
 
In [ ]:
 

Extracting statistics from features

In [45]:
import statistics
from scipy.stats import skew, kurtosis
In [46]:
### Distributions

plt.rcParams.update({'font.size':22}) # customizing the plt style
g = sns.PairGrid(reduced_df.drop(['profile_id'], axis=1).sample(frac=0.04))  # plotting pairwise relationships in dataset
g.map_diag(sns.kdeplot) #Plot with a univariate function on each diagonal subplot.
g.map_upper(sns.kdeplot, n_levels=6) # bivariate Kernel Density Estimation
Out[46]:
<seaborn.axisgrid.PairGrid at 0x7f7542bc8250>

Note, however, that these distributions where calculated on a random sample of 4% of the data, so skews and shifts might take place for the full sample.

  • Distributions are not very normal (gaussian)
  • In the upper part of the grid, we can conclude that there are no evident ralationship for each pairs
In [47]:
reduced_df.head()
Out[47]:
ambient motor_speed torque pm stator_yoke profile_id i_s u_s
0 -0.752143 -1.222428 -0.250182 -2.522071 -1.831422 4 1.058521 1.338647
1 -0.771263 -1.222429 -0.249133 -2.522418 -1.830969 4 1.058453 1.338906
2 -0.782892 -1.222428 -0.249431 -2.522673 -1.830400 4 1.058390 1.343680
3 -0.780935 -1.222430 -0.248636 -2.521639 -1.830333 4 1.061958 1.343940
4 -0.774043 -1.222429 -0.248701 -2.521900 -1.830498 4 1.060869 1.345541
In [48]:
profile_id_list = reduced_df.profile_id.unique()

minimum_ambient = list()
maximum_ambient = list()
skewnees_ambient = list()
kurtos_ambient = list()
rootMeanSquare_ambient = list()
mean_ambient = list()

minimum_motorSpeed = list()
maximum_motorSpeed = list()
skewnees_motorSpeed = list()
kurtos_motorSpeed = list()
rootMeanSquare_motorSpeed = list()
mean_motorSpeed = list()

minimum_torque = list()
maximum_torque = list()
skewnees_torque = list()
kurtos_torque = list()
rootMeanSquare_torque = list()
mean_torque = list()

minimum_pm = list()
maximum_pm = list()
skewnees_pm = list()
kurtos_pm = list()
rootMeanSquare_pm = list()
mean_pm = list()

minimum_statorYoke = list()
maximum_statorYoke = list()
skewnees_statorYoke = list()
kurtos_statorYoke = list()
rootMeanSquare_statorYoke = list()
mean_statorYoke = list()

minimum_is = list()
maximum_is = list()
skewnees_is = list()
kurtos_is = list()
rootMeanSquare_is = list()
mean_is = list()

mean_us = list()

for pro_Ids in profile_id_list:
    i_s = reduced_df.loc[reduced_df['profile_id'] == pro_Ids]
    i_s = i_s.loc[:, 'i_s'].values
    
    ambient = reduced_df.loc[reduced_df['profile_id'] == pro_Ids]
    ambient = ambient.loc[:, 'ambient'].values
    
    stator_yoke = reduced_df.loc[reduced_df['profile_id'] == pro_Ids]
    stator_yoke = stator_yoke.loc[:, 'stator_yoke'].values
    
    pm = reduced_df.loc[reduced_df['profile_id'] == pro_Ids]
    pm = pm.loc[:, 'pm'].values
    
    torque = reduced_df.loc[reduced_df['profile_id'] == pro_Ids]
    torque = torque.loc[:, 'torque'].values
    
    motor_speed = reduced_df.loc[reduced_df['profile_id'] == pro_Ids]
    motor_speed = motor_speed.loc[:, 'motor_speed'].values
    
    u_s = reduced_df.loc[reduced_df['profile_id'] == pro_Ids]
    u_s = u_s.loc[:, 'u_s'].values
    
    lenght = len(i_s)
    
    numIntervals = mt.ceil(lenght/1850)
    intervals = np.linspace(1850, lenght, num= numIntervals)

    start = 0
    for n in intervals:
        
        n=mt.ceil(n)
        
        minimum_ambient.append(min(ambient[start:n]))
        maximum_ambient.append(max(ambient[start:n]))
        skewnees_ambient.append(skew(ambient[start:n]))
        kurtos_ambient.append(kurtosis(ambient[start:n]))
        rootMeanSquare_ambient.append(np.sqrt(np.mean(ambient[start:n]**2)))
        mean_ambient.append(statistics.mean(ambient[start:n]))

        minimum_motorSpeed.append(min(motor_speed[start:n]))
        maximum_motorSpeed.append(max(motor_speed[start:n]))
        skewnees_motorSpeed.append(skew(motor_speed[start:n]))
        kurtos_motorSpeed.append(kurtosis(motor_speed[start:n]))
        rootMeanSquare_motorSpeed.append(np.sqrt(np.mean(motor_speed[start:n]**2)))
        mean_motorSpeed.append(statistics.mean(motor_speed[start:n]))

        minimum_torque.append(min(torque[start:n]))
        maximum_torque.append(max(torque[start:n]))
        skewnees_torque.append(skew(torque[start:n]))
        kurtos_torque.append(kurtosis(torque[start:n]))
        rootMeanSquare_torque.append(np.sqrt(np.mean(torque[start:n]**2)))
        mean_torque.append(statistics.mean(torque[start:n]))

        minimum_pm.append(min(pm[start:n]))
        maximum_pm.append(max(pm[start:n]))
        skewnees_pm.append(skew(pm[start:n]))
        kurtos_pm.append(kurtosis(pm[start:n]))
        rootMeanSquare_pm.append(np.sqrt(np.mean(pm[start:n]**2)))
        mean_pm.append(statistics.mean(pm[start:n]))

        minimum_statorYoke.append(min(stator_yoke[start:n]))
        maximum_statorYoke.append(max(stator_yoke[start:n]))
        skewnees_statorYoke.append(skew(stator_yoke[start:n]))
        kurtos_statorYoke.append(kurtosis(stator_yoke[start:n]))
        rootMeanSquare_statorYoke.append(np.sqrt(np.mean(stator_yoke[start:n]**2)))
        mean_statorYoke.append(statistics.mean(stator_yoke[start:n]))

        minimum_is.append(min(i_s[start:n]))
        maximum_is.append(max(i_s[start:n]))
        skewnees_is.append(skew(i_s[start:n]))
        kurtos_is.append(kurtosis(i_s[start:n]))
        rootMeanSquare_is.append(np.sqrt(np.mean(i_s[start:n]**2)))
        mean_is.append(statistics.mean(i_s[start:n]))

        mean_us.append(statistics.mean(u_s[start:n]))
        
        start = n
In [49]:
dataAggreg = list(zip(minimum_ambient, maximum_ambient, skewnees_ambient, kurtos_ambient, rootMeanSquare_ambient, mean_ambient, 
                      minimum_motorSpeed, maximum_motorSpeed, skewnees_motorSpeed, kurtos_motorSpeed, rootMeanSquare_motorSpeed, mean_motorSpeed,
                      minimum_torque, maximum_torque, skewnees_torque, kurtos_torque, rootMeanSquare_torque, mean_torque, 
                      minimum_pm, maximum_pm, skewnees_pm, kurtos_pm, rootMeanSquare_pm, mean_pm, 
                      minimum_statorYoke, maximum_statorYoke, skewnees_statorYoke, kurtos_statorYoke, rootMeanSquare_statorYoke, mean_statorYoke,
                      minimum_is, maximum_is, skewnees_is, kurtos_is, rootMeanSquare_is, mean_is, 
                      mean_us))
aggregated_Data= pd.DataFrame(data=dataAggreg, columns= [
    'minimum_ambient', 'maximum_ambient', 'skewnees_ambient', 'kurtos_ambient', 'rootMeanSquare_ambient', 'mean_ambient',
    'minimum_motorSpeed', 'maximum_motorSpeed', 'skewnees_motorSpeed', 'kurtos_motorSpeed', 'rootMeanSquare_motorSpeed', 'mean_motorSpeed', 
    'minimum_torque', 'maximum_torque', 'skewnees_torque', 'kurtos_torque', 'rootMeanSquare_torque', 'mean_torque', 
    'minimum_pm', 'maximum_pm', 'skewnees_pm', 'kurtos_pm', 'rootMeanSquare_pm', 'mean_pm', 
    'minimum_statorYoke', 'maximum_statorYoke', 'skewnees_statorYoke', 'kurtos_statorYoke', 'rootMeanSquare_statorYoke', 'mean_statorYoke', 
    'minimum_is', 'maximum_is', 'skewnees_is', 'kurtos_is', 'rootMeanSquare_is', 'mean_is', 
    'mean_us'])

The result obtained by aggregating the data, is the following:

In [50]:
aggregated_Data
Out[50]:
minimum_ambient maximum_ambient skewnees_ambient kurtos_ambient rootMeanSquare_ambient mean_ambient minimum_motorSpeed maximum_motorSpeed skewnees_motorSpeed kurtos_motorSpeed rootMeanSquare_motorSpeed mean_motorSpeed minimum_torque maximum_torque skewnees_torque kurtos_torque rootMeanSquare_torque mean_torque minimum_pm maximum_pm skewnees_pm kurtos_pm rootMeanSquare_pm mean_pm minimum_statorYoke maximum_statorYoke skewnees_statorYoke kurtos_statorYoke rootMeanSquare_statorYoke mean_statorYoke minimum_is maximum_is skewnees_is kurtos_is rootMeanSquare_is mean_is mean_us
0 -1.013299 -0.299738 1.529172 2.624493 0.840557 -0.827521 -1.222434 2.024125 -6.829433 48.372817 1.997416 1.957918 -0.404643 -0.247513 -9.290013 96.898451 0.265809 -0.265606 -2.524219 -0.366571 -0.702969 -0.710176 1.308913 -1.141221 -1.834688 -0.856058 -1.195548 0.104083 1.158354 -1.118858 0.245700 1.061958 -4.833939 32.929966 0.835201 0.831009 1.683886
1 -0.987686 -0.199462 0.825680 0.934512 0.709551 -0.692680 2.024113 2.024164 7.322111 86.921904 2.024119 2.024119 -0.266302 0.287730 2.020472 2.115891 0.265175 -0.184445 -0.377852 0.262372 0.991883 1.217223 0.206310 -0.158095 -0.860844 -0.637443 2.064666 7.440780 0.807498 -0.806944 0.790524 1.417418 2.057164 2.274116 0.907889 0.883250 1.640992
2 -0.928489 0.059045 0.088496 -1.229278 0.493878 -0.435483 2.024112 2.024127 0.091408 0.050537 2.024119 2.024119 0.283003 0.290571 -0.196945 -0.427562 0.287220 0.287216 0.262406 1.280228 -0.621249 -0.762511 0.959288 0.915940 -0.636687 -0.264347 -0.588208 -0.221040 0.384326 -0.373790 1.372053 1.403274 0.973967 -0.095441 1.382427 1.382407 1.335422
3 -0.703869 0.293462 0.003178 -0.113398 0.317992 -0.210722 -0.140251 2.024138 -0.916830 -1.155746 1.704222 1.393389 -0.260832 0.804071 -0.873823 -1.142387 0.377757 0.219789 1.202916 2.291651 -0.142925 -1.294445 1.813443 1.784250 -0.780427 0.190087 -1.082580 0.507289 0.266135 -0.105679 0.636603 1.880627 -0.655548 -1.412830 1.616796 1.575714 1.388083
4 -0.950571 -0.144262 1.022447 1.097231 0.627081 -0.608172 -0.140250 -0.140241 0.203611 -0.164875 0.140247 -0.140247 -0.261608 -0.259110 -0.310943 -1.582515 0.260206 -0.260205 -0.824662 1.202056 0.423173 -1.002781 0.578871 -0.015903 -1.440173 -0.781429 1.043693 0.046425 1.284657 -1.272790 1.058018 1.058132 0.027496 -1.279040 1.058074 1.058074 0.965450
5 -0.978234 -0.398330 -0.013936 -0.457884 0.719676 -0.711710 -0.140250 -0.140243 0.204525 -0.079396 0.140247 -0.140247 -0.259696 -0.258909 0.122930 -0.549713 0.259337 -0.259337 -1.442327 -0.825778 0.381400 -1.053769 1.203816 -1.190775 -1.517448 -1.438259 0.621671 -0.856304 1.477881 -1.477735 1.058033 1.058128 0.162955 -1.091841 1.058074 1.058074 0.994516
6 -0.998008 -0.319679 0.512275 0.453420 0.767279 -0.759344 -0.140251 -0.140243 0.277669 -0.038523 0.140247 -0.140247 -0.259539 -0.258866 0.430373 -0.493782 0.259215 -0.259215 -1.682813 -1.443021 0.286227 -1.077330 1.580199 -1.578737 -1.551505 -1.506427 -0.087892 -1.257918 1.526417 -1.526364 1.058033 1.058125 0.231308 -0.927770 1.058074 1.058074 1.001836
7 -1.010941 -0.426393 -0.071446 -0.614767 0.743135 -0.735478 -0.140250 -0.140244 0.136805 -0.327072 0.140247 -0.140247 -0.259445 -0.258788 0.498188 -0.595685 0.259183 -0.259183 -1.790711 -1.678405 0.283117 -1.081167 1.741295 -1.741032 -1.560520 -1.541290 0.035006 -1.444057 1.550733 -1.550722 1.058034 1.058120 0.299269 -0.895811 1.058074 1.058074 1.004303
8 -0.992778 -0.237381 0.078829 1.556189 0.679605 -0.669028 -0.140250 -0.140243 0.337644 -0.049123 0.140247 -0.140247 -0.259446 -0.258833 0.454697 -0.568447 0.259160 -0.259160 -1.843895 -1.784677 0.306458 -1.045790 1.817645 -1.817581 -1.572685 -1.549959 -0.826565 -0.149772 1.559801 -1.559791 1.058034 1.058119 0.271864 -0.782031 1.058074 1.058074 1.005891
9 -0.924658 -0.255231 0.435204 1.426344 0.666803 -0.656970 -0.140252 -0.140057 14.585521 230.799872 0.140246 -0.140246 -0.259361 1.027344 -0.281089 -1.918043 0.790064 0.471435 -1.860569 -1.454019 0.706111 -1.034339 1.738452 -1.733123 -1.572816 -1.140741 0.489954 -1.459083 1.426653 -1.417328 0.896696 1.200593 -0.318907 -1.733618 1.140508 1.138272 1.091926
10 -0.687829 -0.096090 -0.696826 -0.564381 0.325985 -0.296760 -0.140254 -0.140240 0.009803 -0.414549 0.140247 -0.140247 1.019279 1.022370 0.417039 -0.491668 1.020469 1.020469 -1.452874 -1.128835 -0.378262 -1.044766 1.265311 -1.262038 -1.141602 -1.061301 -0.486043 -1.272689 1.091171 -1.090935 1.200544 1.200598 -0.316536 -0.904150 1.200573 1.200573 1.157045
11 -0.441968 0.194702 0.141962 1.100247 0.111836 -0.077391 -0.140253 -0.140240 -0.036415 -0.375153 0.140247 -0.140247 1.018263 1.020742 0.259661 -0.293814 1.019387 1.019387 -1.138228 -1.017548 -0.295000 -1.078496 1.070187 -1.069705 -1.085125 -1.045064 -0.647034 -0.301139 1.061780 -1.061737 1.200545 1.200599 -0.359983 -0.868603 1.200573 1.200573 1.157783
12 -0.144160 0.410569 0.063334 -1.170459 0.156444 0.085863 -0.140253 -0.140134 11.407505 152.781325 0.140247 -0.140247 1.018167 1.967097 -0.369296 -1.859716 1.640288 1.574133 -1.027713 -0.331788 0.640767 -1.091729 0.832593 -0.800226 -1.066434 -0.253395 0.414076 -1.517538 0.832878 -0.779003 1.200542 2.110442 -0.367159 -1.861034 1.792168 1.736042 1.358393
13 -0.146152 0.422747 0.507738 -0.911778 0.159109 0.066949 -0.140253 1.212488 -0.876073 -1.229145 1.016789 0.807150 0.354981 1.954071 0.875657 -1.229143 1.108271 0.834958 -0.332858 -0.023010 -1.327573 0.802471 0.127965 -0.101186 -0.774361 -0.142239 0.070075 -1.723100 0.529546 -0.467965 0.890500 2.190916 0.873177 -1.232112 1.376622 1.259315 1.418258
14 -0.103939 0.593831 0.305992 -0.183542 0.229926 0.179788 -0.951895 1.212488 -4.692120 20.154058 1.200880 1.126217 -0.255888 0.360685 -4.655209 19.849559 0.353641 0.333204 -0.212667 -0.107501 -0.059320 1.532489 0.150246 -0.149278 -0.856606 -0.774594 -0.459084 1.848639 0.796768 -0.796693 0.014765 1.058106 -6.526065 141.702208 0.902777 0.901721 1.358928
15 -0.099615 0.642002 0.555264 0.377794 0.244157 0.206000 -0.951900 -0.951866 0.177585 -1.302634 0.951884 -0.951884 -0.256507 -0.254739 0.501606 -0.814880 0.255701 -0.255701 -1.119122 -0.212956 0.188778 -1.198495 0.747770 -0.699504 -1.745784 -0.858521 1.046624 0.062767 1.479113 -1.461936 1.058033 1.058131 0.231670 -0.942436 1.058073 1.058073 0.776468
16 -0.012393 0.597760 0.307620 -0.518191 0.285216 0.257758 -0.951898 -0.951870 0.266956 -1.145559 0.951885 -0.951885 -0.257664 -0.255465 0.070566 -0.208182 0.256596 -0.256596 -1.593105 -1.117774 0.198681 -1.141782 1.383977 -1.377250 -1.746294 -1.741538 2.939753 9.638882 1.746010 -1.746010 1.058035 1.058126 0.309915 -0.843911 1.058076 1.058076 0.779012
17 0.054690 0.611237 0.267011 -0.289022 0.349738 0.333035 -0.951897 -0.951870 0.171825 -1.168271 0.951884 -0.951884 -0.256547 -0.255944 -0.132662 -0.068137 0.256243 -0.256243 -1.867868 -1.591717 0.190067 -1.164751 1.743311 -1.741526 -1.746695 -1.746294 -4.075296 19.576921 1.746310 -1.746310 1.058041 1.058124 0.487122 -0.408430 1.058074 1.058074 0.777494
18 0.103352 0.626195 0.320800 -0.126589 0.384271 0.372163 -0.951896 -0.951873 0.350515 -0.885472 0.951885 -0.951885 -0.256365 -0.255837 0.189901 -0.252038 0.256124 -0.256124 -2.028761 -1.866213 0.202304 -1.149656 1.954887 -1.954331 -1.748411 -1.746294 -1.278881 0.766689 1.746649 -1.746649 1.058043 1.058122 0.481548 -0.226469 1.058075 1.058075 0.776366
19 -1.535951 -0.770661 -1.159204 1.803295 1.044350 -1.035500 -1.222432 1.483036 -10.004280 101.324812 1.477074 1.457100 0.190466 0.354781 -10.668252 124.343686 0.349902 0.349741 -2.434486 -0.167877 -0.620730 -0.811218 1.193471 -0.993402 -1.832824 -0.734725 -1.298104 0.439667 1.046916 -0.993186 0.380891 1.196590 -10.419600 147.092585 1.145653 1.144831 1.346910
20 -1.474520 -0.526968 -0.416424 1.271620 1.001233 -0.988733 1.483022 1.483036 0.289600 0.243612 1.483028 1.483028 0.348126 0.355175 0.195063 -0.167759 0.351571 0.351569 -0.167484 0.229562 -0.535610 -0.870161 0.135835 0.078625 -0.734725 -0.611006 0.509898 -1.379334 0.693183 -0.691758 1.116470 1.134882 0.179213 -0.537146 1.125035 1.125028 1.350520
21 -1.208997 -0.225614 0.485356 -0.604979 0.765741 -0.730062 1.483022 1.483036 0.154018 0.068569 1.483029 1.483029 0.348006 0.355091 0.225238 -0.310222 0.351242 0.351241 0.229970 0.345097 -0.300410 -1.074083 0.298976 0.297139 -0.667646 -0.570462 -0.053049 0.359974 0.613290 -0.613030 1.114076 1.127127 -0.087404 -0.966834 1.120752 1.120748 1.350694
22 -0.794395 0.254336 -0.099069 -0.660990 0.358962 -0.247678 1.483022 1.483038 0.274226 0.310876 1.483029 1.483029 0.339599 0.354574 -1.645734 2.324948 0.350204 0.350194 0.344739 0.464876 1.402188 2.323625 0.379368 0.378648 -0.624467 0.164565 2.382257 4.513984 0.547505 -0.516718 1.081127 1.124176 -1.853782 2.730935 1.115195 1.115159 1.351091
23 -0.307128 0.689469 0.499005 -0.897381 0.325106 0.186874 1.483022 1.483037 0.211040 0.224913 1.483029 1.483029 0.339172 0.349156 0.440118 0.292236 0.343704 0.343700 0.465327 1.066094 -0.344434 -1.065504 0.835645 0.817076 0.166623 0.613084 -1.567580 1.890348 0.539101 0.530017 1.065465 1.089497 -0.346195 -0.763640 1.078494 1.078480 1.354291
24 -0.295172 0.704007 0.095513 -1.392000 0.393368 0.203670 1.483021 1.483037 0.104565 0.232594 1.483029 1.483029 0.341082 0.346931 0.286887 -0.272073 0.343824 0.343822 1.065517 1.271989 -0.344706 -1.030740 1.185449 1.184028 0.611207 0.617993 1.207882 12.926713 0.614036 0.614036 1.061826 1.075233 -0.112881 -0.818928 1.068799 1.068795 1.358201
25 -0.595870 0.398951 -0.131729 0.051026 0.238654 -0.095841 1.483022 1.483035 0.110028 -0.035338 1.483028 1.483028 0.336919 0.347412 -0.804243 1.037576 0.343684 0.343680 1.271308 1.402574 0.319233 -0.559895 1.323577 1.323219 0.614033 1.135037 2.360936 4.477603 0.685480 0.673831 1.044815 1.073117 -1.600254 2.142725 1.065135 1.065120 1.360110
26 -0.166273 0.818071 -0.063576 -0.913428 0.412491 0.313505 1.483022 1.483035 0.201495 0.256276 1.483028 1.483028 0.337269 0.343100 0.190084 -0.356310 0.339986 0.339984 1.402890 1.748526 -0.397797 -1.014257 1.608651 1.605642 1.135651 1.308254 -2.132854 3.309533 1.278731 1.278169 1.036588 1.053219 0.044979 -0.569506 1.044275 1.044270 1.362036
27 0.227679 1.450913 0.684281 0.438166 0.730514 0.691341 1.483021 1.483035 0.249574 0.074971 1.483027 1.483027 0.338142 0.345188 0.359260 -0.095443 0.341046 0.341044 1.748521 1.872541 -0.308112 -1.079317 1.819048 1.818690 1.301778 1.328842 -0.217062 -0.719502 1.316844 1.316831 1.034375 1.049476 0.354781 -0.422083 1.041229 1.041224 1.363819
28 0.667682 1.666514 0.270108 -1.686699 1.160919 1.091737 1.483021 1.483034 0.215562 0.084868 1.483027 1.483027 0.338779 0.355940 1.301992 0.150556 0.343554 0.343525 1.746932 1.921122 -2.196544 4.991986 1.889223 1.888922 -0.039393 1.331096 -1.709156 1.334419 1.190719 1.117927 1.033408 1.093252 1.408006 0.375127 1.048215 1.048081 1.364326
29 0.650279 1.649830 0.379431 -1.652808 1.144082 1.069873 1.483019 1.483033 0.127293 0.025655 1.483026 1.483026 0.350381 0.357950 0.262868 -0.145725 0.353588 0.353586 0.971640 1.746294 0.445721 -0.990812 1.300028 1.280874 -0.480975 -0.041200 1.833384 2.524112 0.407777 -0.393042 1.086066 1.111661 -0.307978 -0.747232 1.102022 1.102010 1.358354
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
535 -1.000004 -0.726898 0.498004 0.004952 0.906899 -0.905189 -1.222437 1.956068 0.017351 -1.543942 1.102753 0.210744 -3.238316 1.178817 -0.429785 -0.951053 1.435969 -0.877616 -0.624194 0.721245 0.039141 -1.373979 0.426355 0.024795 -0.083552 1.435141 -1.603404 1.665616 1.134317 1.071087 0.084025 3.453361 0.557605 -0.736676 1.719057 1.527185 1.556548
536 -1.299189 -0.718806 -1.369721 11.111625 0.859200 -0.857957 -1.222435 1.993603 1.392051 0.964966 1.014773 -0.484839 -3.328612 1.397617 -0.586749 0.725961 0.980902 -0.595804 0.033338 0.633471 0.427907 -1.022450 0.343114 0.298693 -0.045059 0.678916 0.348217 -0.743854 0.297785 0.241257 0.379884 3.571211 1.917474 4.836324 1.346863 1.272229 1.206692
537 -0.903700 -0.664027 0.591844 0.170404 0.772767 -0.771557 -1.222439 1.932965 0.138901 -1.518675 1.038253 -0.054305 -2.215966 2.515544 0.286261 0.064983 0.934585 -0.126178 0.114277 0.604263 -0.048764 -1.160000 0.376075 0.354613 0.027449 0.440531 0.221779 -1.239851 0.254022 0.225489 0.012847 2.782774 0.794077 0.240544 1.380397 1.277922 1.455723
538 -0.760514 -0.575460 -0.357212 -0.244744 0.656657 -0.655674 -1.222436 1.942137 0.697275 -0.645274 0.925293 -0.264056 -3.156478 2.395005 -0.156111 0.261856 1.011513 -0.104589 0.139968 0.456760 0.372108 -0.710409 0.277113 0.270339 -0.223993 0.552923 -0.456753 -1.249625 0.330671 0.225669 0.137653 3.350751 1.392867 2.756580 1.340605 1.249302 1.245366
539 -0.641533 -0.428251 1.179079 1.691664 0.575598 -0.574087 -1.222437 1.540104 -0.144203 -0.930948 0.750624 -0.007466 -2.364799 2.640228 0.232916 -0.301862 0.959988 -0.290534 -0.021755 0.279735 0.429832 -1.370361 0.147886 0.129264 -0.397535 1.301557 1.112657 -0.200520 0.508161 0.066078 0.026488 2.952416 0.524903 0.303802 1.382062 1.292430 1.387820
540 -0.556428 -0.186277 0.394115 -0.803135 0.406297 -0.394981 -1.222232 1.969188 -0.156537 -0.570415 0.869932 0.364258 -3.048007 1.909039 -0.102399 -0.893130 1.254585 -0.505635 0.135522 1.181006 -1.025568 -0.296630 0.923399 0.872406 1.126318 2.048945 0.150853 -1.406756 1.595533 1.568902 0.065329 3.219221 0.168731 -0.809185 1.582381 1.420324 1.620283
541 -0.441139 -0.138369 -1.193101 0.386350 0.219514 -0.208186 -1.222435 1.989025 -0.270911 -1.594574 1.215237 0.358118 -1.578143 0.933905 0.127804 -0.573682 0.633780 -0.260759 0.681558 1.157351 -0.227505 -0.865785 0.907095 0.900520 0.328787 1.125520 0.633553 -0.107503 0.678286 0.651358 0.024778 2.336617 0.395365 0.209628 1.218905 1.137697 1.431270
542 -0.339394 -0.088432 -1.583936 3.003006 0.167259 -0.162987 -1.222438 1.952850 -0.024923 -1.493737 0.983962 -0.014822 -2.291770 2.291049 0.309653 -0.384243 1.005483 -0.065062 0.775235 1.155788 0.215809 0.220218 0.949842 0.947326 0.358065 0.869355 0.235875 -0.858023 0.598066 0.581476 0.207468 3.014038 0.634015 -0.285001 1.415926 1.286546 1.504159
543 -0.142341 0.078322 1.446020 0.953567 0.089456 -0.074586 -1.222436 1.975360 -0.352389 -1.056325 0.950982 0.231662 -1.790565 2.712250 1.119546 1.902237 0.877631 -0.302364 0.343227 0.804517 0.559274 -0.726362 0.546196 0.534993 0.017712 0.414316 -0.968180 0.134508 0.292611 0.272595 0.019392 3.049961 0.798846 1.640524 1.204692 1.103465 1.535575
544 -0.456306 0.072708 -1.932816 15.981134 0.066168 -0.049451 -1.222436 1.428423 0.418074 -1.319384 0.903906 -0.373941 -2.781836 2.683007 0.168139 -0.860517 1.225673 0.297704 0.340579 0.789688 0.358639 -1.340640 0.558048 0.545420 0.250947 0.951223 -0.269594 -1.272540 0.710467 0.667615 0.042398 3.313955 0.563035 -0.513647 1.539475 1.413514 1.383754
545 -0.339913 0.196175 -0.067268 5.608539 0.061367 0.041932 -1.222436 -1.222426 -0.158458 -0.249562 1.222430 -1.222430 -0.255640 -0.255640 0.000000 -3.000000 0.255640 -0.255640 0.304811 0.591811 0.727027 -0.470714 0.410379 0.403220 0.497152 1.122783 -1.210405 0.256889 0.978529 0.959670 1.058050 1.058113 0.438134 0.183180 1.058073 1.058073 1.321137
546 -1.169342 -0.635557 -0.196906 2.506952 0.758516 -0.756830 -1.222434 1.936067 -0.031568 -1.448871 1.048029 0.178980 -2.975840 1.631050 -0.075111 0.440397 1.106795 -0.643404 -2.457457 -0.838167 -0.211218 -0.088920 1.673056 -1.635917 -1.610376 -0.410879 -1.277731 0.803880 0.882074 -0.830310 0.091030 3.129753 0.936008 0.830511 1.389038 1.267228 1.557740
547 -0.804442 -0.506857 0.030113 -0.402435 0.672646 -0.670058 -1.222436 1.962803 0.609268 -0.858550 1.001538 -0.241122 -1.221281 2.770747 1.554044 1.922794 0.833781 0.208115 -0.995351 -0.101567 1.721010 1.555792 0.775503 -0.737607 -0.408291 1.159875 -0.064859 -1.470662 0.619602 0.375437 0.000822 3.130475 1.425925 2.409873 1.291175 1.163948 1.297958
548 -0.887123 -0.286375 0.254634 0.592861 0.506041 -0.502047 -1.222436 1.969289 -0.385679 -1.410761 1.180211 0.364252 -2.651967 1.941601 0.063068 0.880231 0.818628 -0.365157 -0.142622 0.710270 -1.003626 -0.429678 0.478109 0.410528 0.784685 1.468447 -1.439501 1.528851 1.298555 1.287681 0.030024 2.758075 0.509942 0.262680 1.207663 1.094265 1.567345
549 -0.599208 -0.153628 0.490444 -0.277143 0.401033 -0.389067 -1.222436 1.915814 0.367393 -1.158954 0.967820 -0.021587 -2.567029 1.577842 -0.265197 -0.307695 0.947258 -0.231508 0.472954 0.858306 0.170569 -1.379450 0.647200 0.638323 0.541907 0.869765 0.302094 -1.222229 0.692450 0.686222 0.039789 2.752184 0.849112 1.580300 1.256080 1.172436 1.320723
550 -0.475672 -0.148569 -0.245641 -1.297363 0.306956 -0.291066 -1.222434 1.547956 3.672900 11.640000 1.224723 -1.065685 -1.423362 -0.255640 -4.476378 19.340227 0.353774 -0.299168 -0.006889 0.627332 -0.121642 -1.206308 0.372710 0.324337 -0.556306 0.699377 -0.258322 -1.532987 0.451506 0.108311 0.295109 2.085061 4.551848 32.579715 1.083203 1.074541 1.355591
551 -0.391238 -0.144940 -1.189216 1.098338 0.228324 -0.222908 -1.222435 -1.222426 0.079888 0.243147 1.222430 -1.222430 -0.255640 -0.255640 0.000000 -3.000000 0.255640 -0.255640 -0.530177 -0.007746 0.187712 -1.156076 0.328176 -0.291838 -0.734725 -0.554379 1.067060 -0.533257 0.695463 -0.692638 1.058053 1.058120 0.631848 0.707774 1.058073 1.058073 1.327454
552 -0.233702 -0.140540 -1.489872 1.673813 0.167354 -0.166351 -1.222435 -1.222426 -0.142941 -0.361398 1.222430 -1.222430 -0.255640 -0.255640 0.000000 -3.000000 0.255640 -0.255640 -0.844720 -0.529590 0.172526 -1.171604 0.705472 -0.699575 -0.734911 -0.734725 -8.387291 88.196309 0.734727 -0.734727 1.058050 1.058107 0.530797 0.326153 1.058072 1.058072 1.328180
553 -0.644019 -0.141902 -7.401152 73.728777 0.168895 -0.165453 -1.222434 -1.222426 0.030504 -0.537211 1.222430 -1.222430 -0.255640 -0.255640 0.000000 -3.000000 0.255640 -0.255640 -1.011792 -0.844202 0.441257 -1.166435 0.949898 -0.948507 -0.735302 0.562802 1.615424 1.210116 0.642481 -0.528265 1.058049 1.058112 0.535237 0.246429 1.058072 1.058072 1.328796
554 -0.167028 -0.087752 1.568759 3.583616 0.138128 -0.137731 -1.222435 -1.222425 0.054594 0.164830 1.222430 -1.222430 -0.255640 -0.255640 0.000000 -3.000000 0.255640 -0.255640 -0.987270 -0.570897 -0.049555 -1.237390 0.788267 -0.778487 0.566123 1.355565 -1.362995 0.941398 1.197730 1.182030 1.058051 1.058112 0.656503 0.634543 1.058072 1.058072 1.327940
555 -0.511556 -0.054092 -5.443286 69.381066 0.120575 -0.117892 -1.222435 -1.222425 0.057144 -0.132854 1.222430 -1.222430 -0.255640 -0.255640 0.000000 -3.000000 0.255640 -0.255640 -0.571993 -0.275040 -0.129836 -1.187330 0.423057 -0.414295 1.346885 1.376886 -1.444530 0.484671 1.368346 1.368324 1.058051 1.058113 0.653798 0.586465 1.058072 1.058072 1.326585
556 -0.658809 -0.524274 1.522208 0.898342 0.612148 -0.611448 -1.222435 1.957171 0.616317 -0.852499 0.985611 -0.281948 -2.200468 2.858840 0.802173 -0.196524 1.227357 0.139939 -1.649365 -0.483819 -0.556187 -0.254924 0.973922 -0.927822 -1.192128 0.113876 -2.108535 3.303640 0.368059 -0.207763 0.195161 3.255226 1.018407 0.000507 1.586397 1.429115 1.416597
557 -0.640478 -0.209467 0.602549 -0.089154 0.518433 -0.510695 -1.222436 1.792751 1.907350 2.775565 1.107134 -0.834216 -1.421189 2.236469 2.250054 5.125035 0.528358 -0.096707 -0.642630 -0.165063 -0.421216 -1.504701 0.404318 -0.365407 0.115614 1.669348 -0.872268 -0.658269 1.272909 1.181674 0.068527 2.469922 1.641367 8.867536 1.115817 1.087689 1.284481
558 -0.556045 -0.143673 -0.299243 -1.237996 0.333391 -0.313426 -1.222436 1.941416 0.309364 -1.560687 1.092342 -0.121179 -2.431808 2.471944 0.706831 1.637339 0.891571 -0.266958 -0.170774 0.826246 0.075064 -0.522420 0.426449 0.348459 1.439065 1.770560 -0.406355 -0.056227 1.638623 1.636619 0.073354 2.725298 0.845493 0.764841 1.245696 1.152085 1.444122
559 -0.556780 -0.135307 -1.687240 4.231337 0.199795 -0.192872 -1.222439 1.890895 0.739549 -1.004599 1.058940 -0.432958 -3.288164 1.516477 -1.280434 1.970674 1.025710 -0.403529 0.385911 0.936801 -0.697267 -0.215875 0.723083 0.710251 -0.619614 1.681951 0.341615 -1.483910 0.918280 0.459749 0.118168 3.517123 2.003998 3.527893 1.401890 1.254531 1.405924
560 -0.636849 -0.129552 -11.575601 160.206387 0.154711 -0.152228 -1.222436 1.997176 1.226331 -0.073210 1.176275 -0.562050 -2.988137 2.166892 -0.186623 13.159546 0.609280 -0.345064 -0.317162 0.494810 0.137103 -1.342764 0.241850 0.058695 -1.047716 -0.518126 -0.015880 -1.332019 0.800095 -0.783398 0.179256 3.144260 3.044340 14.565252 1.119364 1.066369 1.391315
561 -0.587347 -0.130962 -12.408841 197.151314 0.150552 -0.148950 -1.222439 1.858156 1.431948 0.660207 1.125211 -0.672799 -1.195458 1.785706 1.825692 3.325096 0.520173 -0.094429 -0.746069 -0.308390 -0.405538 -1.152845 0.516629 -0.501555 -1.324738 -0.939951 -0.958949 0.497364 1.093059 -1.089670 0.193069 2.468388 0.294261 5.014944 1.066121 1.035105 1.325685
562 -0.178140 -0.106726 -0.602059 -0.463666 0.135882 -0.135265 -1.222437 1.604025 1.197231 1.452843 0.917033 -0.635737 -3.276847 2.292855 -0.643166 2.367466 0.974089 -0.445886 -0.944006 -0.744737 0.112263 0.210337 0.853944 -0.852956 -1.354718 -0.882107 -0.980320 -0.372597 1.054546 -1.044445 0.166680 3.503960 2.337673 5.936040 1.345588 1.247082 1.257001
563 -0.143510 -0.106795 -0.312943 1.209110 0.124580 -0.124513 -1.222436 1.847017 0.858079 -0.843144 1.087083 -0.448148 -2.140943 2.336720 0.704464 2.096783 0.804127 -0.133530 -0.973091 -0.791313 0.398323 -0.226068 0.901969 -0.901439 -1.069936 0.109928 1.762694 1.870350 0.899508 -0.848235 0.007740 2.569018 0.899475 1.399187 1.224262 1.128001 1.391771
564 -0.131516 0.078443 0.318117 -0.831621 0.070823 -0.049876 -1.222437 1.940564 -0.382442 -1.611694 1.141185 0.256659 -1.856109 2.158589 1.130624 1.462264 0.776429 -0.346625 -0.802231 0.527993 -0.105485 -1.525975 0.469800 -0.084371 0.111219 1.459583 -0.991372 -0.157321 1.136816 1.077969 0.030285 2.556495 0.323650 2.927493 1.152175 1.095533 1.558935

565 rows × 37 columns

Now we can observe the correlation between the new statistics.

In [51]:
corr = aggregated_Data.corr()
# generate mask for the upper triangle 
mask = np.zeros_like(corr, dtype=np.bool)
mask[np.triu_indices_from(mask)] = True
# generate a custom diverding colormap
cmap = sns.diverging_palette(220,10,as_cmap=True)

plt.figure(figsize=(100, 100))
_ = sns.heatmap(corr,mask=mask,cmap=cmap,center=0,square=True,linewidths=.5, cbar_kws={"shrink":.5},annot=True)

It could be opportune to remove the feature that have very high correlation. We observe that:

  • mean_pm has a correlation equal to 0.96 and 0.97 with respectively minimum_pm and maximum_pm;
  • mean_statorYoke has a correlation equal to 0.94 with minimum_statorYoke and maximum_statorYoke;
  • rootMeanSquare_is has a correlation equal to 0.98 and 0.83 with respectively mean_is and rooMeanSquare_torque;
  • mean_ambient has a correlation equal to 0.98 and 0.98 with respectively minimum_ambient and maximum_ambient;

Then the final dataset containg the aggregated data will be

In [52]:
finalAggrData = aggregated_Data.drop(['minimum_pm', 'maximum_pm', 'minimum_statorYoke', 'maximum_statorYoke', 'mean_is', 'rootMeanSquare_torque', 'minimum_ambient', 'maximum_ambient'], axis=1)
finalAggrData
Out[52]:
skewnees_ambient kurtos_ambient rootMeanSquare_ambient mean_ambient minimum_motorSpeed maximum_motorSpeed skewnees_motorSpeed kurtos_motorSpeed rootMeanSquare_motorSpeed mean_motorSpeed minimum_torque maximum_torque skewnees_torque kurtos_torque mean_torque skewnees_pm kurtos_pm rootMeanSquare_pm mean_pm skewnees_statorYoke kurtos_statorYoke rootMeanSquare_statorYoke mean_statorYoke minimum_is maximum_is skewnees_is kurtos_is rootMeanSquare_is mean_us
0 1.529172 2.624493 0.840557 -0.827521 -1.222434 2.024125 -6.829433 48.372817 1.997416 1.957918 -0.404643 -0.247513 -9.290013 96.898451 -0.265606 -0.702969 -0.710176 1.308913 -1.141221 -1.195548 0.104083 1.158354 -1.118858 0.245700 1.061958 -4.833939 32.929966 0.835201 1.683886
1 0.825680 0.934512 0.709551 -0.692680 2.024113 2.024164 7.322111 86.921904 2.024119 2.024119 -0.266302 0.287730 2.020472 2.115891 -0.184445 0.991883 1.217223 0.206310 -0.158095 2.064666 7.440780 0.807498 -0.806944 0.790524 1.417418 2.057164 2.274116 0.907889 1.640992
2 0.088496 -1.229278 0.493878 -0.435483 2.024112 2.024127 0.091408 0.050537 2.024119 2.024119 0.283003 0.290571 -0.196945 -0.427562 0.287216 -0.621249 -0.762511 0.959288 0.915940 -0.588208 -0.221040 0.384326 -0.373790 1.372053 1.403274 0.973967 -0.095441 1.382427 1.335422
3 0.003178 -0.113398 0.317992 -0.210722 -0.140251 2.024138 -0.916830 -1.155746 1.704222 1.393389 -0.260832 0.804071 -0.873823 -1.142387 0.219789 -0.142925 -1.294445 1.813443 1.784250 -1.082580 0.507289 0.266135 -0.105679 0.636603 1.880627 -0.655548 -1.412830 1.616796 1.388083
4 1.022447 1.097231 0.627081 -0.608172 -0.140250 -0.140241 0.203611 -0.164875 0.140247 -0.140247 -0.261608 -0.259110 -0.310943 -1.582515 -0.260205 0.423173 -1.002781 0.578871 -0.015903 1.043693 0.046425 1.284657 -1.272790 1.058018 1.058132 0.027496 -1.279040 1.058074 0.965450
5 -0.013936 -0.457884 0.719676 -0.711710 -0.140250 -0.140243 0.204525 -0.079396 0.140247 -0.140247 -0.259696 -0.258909 0.122930 -0.549713 -0.259337 0.381400 -1.053769 1.203816 -1.190775 0.621671 -0.856304 1.477881 -1.477735 1.058033 1.058128 0.162955 -1.091841 1.058074 0.994516
6 0.512275 0.453420 0.767279 -0.759344 -0.140251 -0.140243 0.277669 -0.038523 0.140247 -0.140247 -0.259539 -0.258866 0.430373 -0.493782 -0.259215 0.286227 -1.077330 1.580199 -1.578737 -0.087892 -1.257918 1.526417 -1.526364 1.058033 1.058125 0.231308 -0.927770 1.058074 1.001836
7 -0.071446 -0.614767 0.743135 -0.735478 -0.140250 -0.140244 0.136805 -0.327072 0.140247 -0.140247 -0.259445 -0.258788 0.498188 -0.595685 -0.259183 0.283117 -1.081167 1.741295 -1.741032 0.035006 -1.444057 1.550733 -1.550722 1.058034 1.058120 0.299269 -0.895811 1.058074 1.004303
8 0.078829 1.556189 0.679605 -0.669028 -0.140250 -0.140243 0.337644 -0.049123 0.140247 -0.140247 -0.259446 -0.258833 0.454697 -0.568447 -0.259160 0.306458 -1.045790 1.817645 -1.817581 -0.826565 -0.149772 1.559801 -1.559791 1.058034 1.058119 0.271864 -0.782031 1.058074 1.005891
9 0.435204 1.426344 0.666803 -0.656970 -0.140252 -0.140057 14.585521 230.799872 0.140246 -0.140246 -0.259361 1.027344 -0.281089 -1.918043 0.471435 0.706111 -1.034339 1.738452 -1.733123 0.489954 -1.459083 1.426653 -1.417328 0.896696 1.200593 -0.318907 -1.733618 1.140508 1.091926
10 -0.696826 -0.564381 0.325985 -0.296760 -0.140254 -0.140240 0.009803 -0.414549 0.140247 -0.140247 1.019279 1.022370 0.417039 -0.491668 1.020469 -0.378262 -1.044766 1.265311 -1.262038 -0.486043 -1.272689 1.091171 -1.090935 1.200544 1.200598 -0.316536 -0.904150 1.200573 1.157045
11 0.141962 1.100247 0.111836 -0.077391 -0.140253 -0.140240 -0.036415 -0.375153 0.140247 -0.140247 1.018263 1.020742 0.259661 -0.293814 1.019387 -0.295000 -1.078496 1.070187 -1.069705 -0.647034 -0.301139 1.061780 -1.061737 1.200545 1.200599 -0.359983 -0.868603 1.200573 1.157783
12 0.063334 -1.170459 0.156444 0.085863 -0.140253 -0.140134 11.407505 152.781325 0.140247 -0.140247 1.018167 1.967097 -0.369296 -1.859716 1.574133 0.640767 -1.091729 0.832593 -0.800226 0.414076 -1.517538 0.832878 -0.779003 1.200542 2.110442 -0.367159 -1.861034 1.792168 1.358393
13 0.507738 -0.911778 0.159109 0.066949 -0.140253 1.212488 -0.876073 -1.229145 1.016789 0.807150 0.354981 1.954071 0.875657 -1.229143 0.834958 -1.327573 0.802471 0.127965 -0.101186 0.070075 -1.723100 0.529546 -0.467965 0.890500 2.190916 0.873177 -1.232112 1.376622 1.418258
14 0.305992 -0.183542 0.229926 0.179788 -0.951895 1.212488 -4.692120 20.154058 1.200880 1.126217 -0.255888 0.360685 -4.655209 19.849559 0.333204 -0.059320 1.532489 0.150246 -0.149278 -0.459084 1.848639 0.796768 -0.796693 0.014765 1.058106 -6.526065 141.702208 0.902777 1.358928
15 0.555264 0.377794 0.244157 0.206000 -0.951900 -0.951866 0.177585 -1.302634 0.951884 -0.951884 -0.256507 -0.254739 0.501606 -0.814880 -0.255701 0.188778 -1.198495 0.747770 -0.699504 1.046624 0.062767 1.479113 -1.461936 1.058033 1.058131 0.231670 -0.942436 1.058073 0.776468
16 0.307620 -0.518191 0.285216 0.257758 -0.951898 -0.951870 0.266956 -1.145559 0.951885 -0.951885 -0.257664 -0.255465 0.070566 -0.208182 -0.256596 0.198681 -1.141782 1.383977 -1.377250 2.939753 9.638882 1.746010 -1.746010 1.058035 1.058126 0.309915 -0.843911 1.058076 0.779012
17 0.267011 -0.289022 0.349738 0.333035 -0.951897 -0.951870 0.171825 -1.168271 0.951884 -0.951884 -0.256547 -0.255944 -0.132662 -0.068137 -0.256243 0.190067 -1.164751 1.743311 -1.741526 -4.075296 19.576921 1.746310 -1.746310 1.058041 1.058124 0.487122 -0.408430 1.058074 0.777494
18 0.320800 -0.126589 0.384271 0.372163 -0.951896 -0.951873 0.350515 -0.885472 0.951885 -0.951885 -0.256365 -0.255837 0.189901 -0.252038 -0.256124 0.202304 -1.149656 1.954887 -1.954331 -1.278881 0.766689 1.746649 -1.746649 1.058043 1.058122 0.481548 -0.226469 1.058075 0.776366
19 -1.159204 1.803295 1.044350 -1.035500 -1.222432 1.483036 -10.004280 101.324812 1.477074 1.457100 0.190466 0.354781 -10.668252 124.343686 0.349741 -0.620730 -0.811218 1.193471 -0.993402 -1.298104 0.439667 1.046916 -0.993186 0.380891 1.196590 -10.419600 147.092585 1.145653 1.346910
20 -0.416424 1.271620 1.001233 -0.988733 1.483022 1.483036 0.289600 0.243612 1.483028 1.483028 0.348126 0.355175 0.195063 -0.167759 0.351569 -0.535610 -0.870161 0.135835 0.078625 0.509898 -1.379334 0.693183 -0.691758 1.116470 1.134882 0.179213 -0.537146 1.125035 1.350520
21 0.485356 -0.604979 0.765741 -0.730062 1.483022 1.483036 0.154018 0.068569 1.483029 1.483029 0.348006 0.355091 0.225238 -0.310222 0.351241 -0.300410 -1.074083 0.298976 0.297139 -0.053049 0.359974 0.613290 -0.613030 1.114076 1.127127 -0.087404 -0.966834 1.120752 1.350694
22 -0.099069 -0.660990 0.358962 -0.247678 1.483022 1.483038 0.274226 0.310876 1.483029 1.483029 0.339599 0.354574 -1.645734 2.324948 0.350194 1.402188 2.323625 0.379368 0.378648 2.382257 4.513984 0.547505 -0.516718 1.081127 1.124176 -1.853782 2.730935 1.115195 1.351091
23 0.499005 -0.897381 0.325106 0.186874 1.483022 1.483037 0.211040 0.224913 1.483029 1.483029 0.339172 0.349156 0.440118 0.292236 0.343700 -0.344434 -1.065504 0.835645 0.817076 -1.567580 1.890348 0.539101 0.530017 1.065465 1.089497 -0.346195 -0.763640 1.078494 1.354291
24 0.095513 -1.392000 0.393368 0.203670 1.483021 1.483037 0.104565 0.232594 1.483029 1.483029 0.341082 0.346931 0.286887 -0.272073 0.343822 -0.344706 -1.030740 1.185449 1.184028 1.207882 12.926713 0.614036 0.614036 1.061826 1.075233 -0.112881 -0.818928 1.068799 1.358201
25 -0.131729 0.051026 0.238654 -0.095841 1.483022 1.483035 0.110028 -0.035338 1.483028 1.483028 0.336919 0.347412 -0.804243 1.037576 0.343680 0.319233 -0.559895 1.323577 1.323219 2.360936 4.477603 0.685480 0.673831 1.044815 1.073117 -1.600254 2.142725 1.065135 1.360110
26 -0.063576 -0.913428 0.412491 0.313505 1.483022 1.483035 0.201495 0.256276 1.483028 1.483028 0.337269 0.343100 0.190084 -0.356310 0.339984 -0.397797 -1.014257 1.608651 1.605642 -2.132854 3.309533 1.278731 1.278169 1.036588 1.053219 0.044979 -0.569506 1.044275 1.362036
27 0.684281 0.438166 0.730514 0.691341 1.483021 1.483035 0.249574 0.074971 1.483027 1.483027 0.338142 0.345188 0.359260 -0.095443 0.341044 -0.308112 -1.079317 1.819048 1.818690 -0.217062 -0.719502 1.316844 1.316831 1.034375 1.049476 0.354781 -0.422083 1.041229 1.363819
28 0.270108 -1.686699 1.160919 1.091737 1.483021 1.483034 0.215562 0.084868 1.483027 1.483027 0.338779 0.355940 1.301992 0.150556 0.343525 -2.196544 4.991986 1.889223 1.888922 -1.709156 1.334419 1.190719 1.117927 1.033408 1.093252 1.408006 0.375127 1.048215 1.364326
29 0.379431 -1.652808 1.144082 1.069873 1.483019 1.483033 0.127293 0.025655 1.483026 1.483026 0.350381 0.357950 0.262868 -0.145725 0.353586 0.445721 -0.990812 1.300028 1.280874 1.833384 2.524112 0.407777 -0.393042 1.086066 1.111661 -0.307978 -0.747232 1.102022 1.358354
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
535 0.498004 0.004952 0.906899 -0.905189 -1.222437 1.956068 0.017351 -1.543942 1.102753 0.210744 -3.238316 1.178817 -0.429785 -0.951053 -0.877616 0.039141 -1.373979 0.426355 0.024795 -1.603404 1.665616 1.134317 1.071087 0.084025 3.453361 0.557605 -0.736676 1.719057 1.556548
536 -1.369721 11.111625 0.859200 -0.857957 -1.222435 1.993603 1.392051 0.964966 1.014773 -0.484839 -3.328612 1.397617 -0.586749 0.725961 -0.595804 0.427907 -1.022450 0.343114 0.298693 0.348217 -0.743854 0.297785 0.241257 0.379884 3.571211 1.917474 4.836324 1.346863 1.206692
537 0.591844 0.170404 0.772767 -0.771557 -1.222439 1.932965 0.138901 -1.518675 1.038253 -0.054305 -2.215966 2.515544 0.286261 0.064983 -0.126178 -0.048764 -1.160000 0.376075 0.354613 0.221779 -1.239851 0.254022 0.225489 0.012847 2.782774 0.794077 0.240544 1.380397 1.455723
538 -0.357212 -0.244744 0.656657 -0.655674 -1.222436 1.942137 0.697275 -0.645274 0.925293 -0.264056 -3.156478 2.395005 -0.156111 0.261856 -0.104589 0.372108 -0.710409 0.277113 0.270339 -0.456753 -1.249625 0.330671 0.225669 0.137653 3.350751 1.392867 2.756580 1.340605 1.245366
539 1.179079 1.691664 0.575598 -0.574087 -1.222437 1.540104 -0.144203 -0.930948 0.750624 -0.007466 -2.364799 2.640228 0.232916 -0.301862 -0.290534 0.429832 -1.370361 0.147886 0.129264 1.112657 -0.200520 0.508161 0.066078 0.026488 2.952416 0.524903 0.303802 1.382062 1.387820
540 0.394115 -0.803135 0.406297 -0.394981 -1.222232 1.969188 -0.156537 -0.570415 0.869932 0.364258 -3.048007 1.909039 -0.102399 -0.893130 -0.505635 -1.025568 -0.296630 0.923399 0.872406 0.150853 -1.406756 1.595533 1.568902 0.065329 3.219221 0.168731 -0.809185 1.582381 1.620283
541 -1.193101 0.386350 0.219514 -0.208186 -1.222435 1.989025 -0.270911 -1.594574 1.215237 0.358118 -1.578143 0.933905 0.127804 -0.573682 -0.260759 -0.227505 -0.865785 0.907095 0.900520 0.633553 -0.107503 0.678286 0.651358 0.024778 2.336617 0.395365 0.209628 1.218905 1.431270
542 -1.583936 3.003006 0.167259 -0.162987 -1.222438 1.952850 -0.024923 -1.493737 0.983962 -0.014822 -2.291770 2.291049 0.309653 -0.384243 -0.065062 0.215809 0.220218 0.949842 0.947326 0.235875 -0.858023 0.598066 0.581476 0.207468 3.014038 0.634015 -0.285001 1.415926 1.504159
543 1.446020 0.953567 0.089456 -0.074586 -1.222436 1.975360 -0.352389 -1.056325 0.950982 0.231662 -1.790565 2.712250 1.119546 1.902237 -0.302364 0.559274 -0.726362 0.546196 0.534993 -0.968180 0.134508 0.292611 0.272595 0.019392 3.049961 0.798846 1.640524 1.204692 1.535575
544 -1.932816 15.981134 0.066168 -0.049451 -1.222436 1.428423 0.418074 -1.319384 0.903906 -0.373941 -2.781836 2.683007 0.168139 -0.860517 0.297704 0.358639 -1.340640 0.558048 0.545420 -0.269594 -1.272540 0.710467 0.667615 0.042398 3.313955 0.563035 -0.513647 1.539475 1.383754
545 -0.067268 5.608539 0.061367 0.041932 -1.222436 -1.222426 -0.158458 -0.249562 1.222430 -1.222430 -0.255640 -0.255640 0.000000 -3.000000 -0.255640 0.727027 -0.470714 0.410379 0.403220 -1.210405 0.256889 0.978529 0.959670 1.058050 1.058113 0.438134 0.183180 1.058073 1.321137
546 -0.196906 2.506952 0.758516 -0.756830 -1.222434 1.936067 -0.031568 -1.448871 1.048029 0.178980 -2.975840 1.631050 -0.075111 0.440397 -0.643404 -0.211218 -0.088920 1.673056 -1.635917 -1.277731 0.803880 0.882074 -0.830310 0.091030 3.129753 0.936008 0.830511 1.389038 1.557740
547 0.030113 -0.402435 0.672646 -0.670058 -1.222436 1.962803 0.609268 -0.858550 1.001538 -0.241122 -1.221281 2.770747 1.554044 1.922794 0.208115 1.721010 1.555792 0.775503 -0.737607 -0.064859 -1.470662 0.619602 0.375437 0.000822 3.130475 1.425925 2.409873 1.291175 1.297958
548 0.254634 0.592861 0.506041 -0.502047 -1.222436 1.969289 -0.385679 -1.410761 1.180211 0.364252 -2.651967 1.941601 0.063068 0.880231 -0.365157 -1.003626 -0.429678 0.478109 0.410528 -1.439501 1.528851 1.298555 1.287681 0.030024 2.758075 0.509942 0.262680 1.207663 1.567345
549 0.490444 -0.277143 0.401033 -0.389067 -1.222436 1.915814 0.367393 -1.158954 0.967820 -0.021587 -2.567029 1.577842 -0.265197 -0.307695 -0.231508 0.170569 -1.379450 0.647200 0.638323 0.302094 -1.222229 0.692450 0.686222 0.039789 2.752184 0.849112 1.580300 1.256080 1.320723
550 -0.245641 -1.297363 0.306956 -0.291066 -1.222434 1.547956 3.672900 11.640000 1.224723 -1.065685 -1.423362 -0.255640 -4.476378 19.340227 -0.299168 -0.121642 -1.206308 0.372710 0.324337 -0.258322 -1.532987 0.451506 0.108311 0.295109 2.085061 4.551848 32.579715 1.083203 1.355591
551 -1.189216 1.098338 0.228324 -0.222908 -1.222435 -1.222426 0.079888 0.243147 1.222430 -1.222430 -0.255640 -0.255640 0.000000 -3.000000 -0.255640 0.187712 -1.156076 0.328176 -0.291838 1.067060 -0.533257 0.695463 -0.692638 1.058053 1.058120 0.631848 0.707774 1.058073 1.327454
552 -1.489872 1.673813 0.167354 -0.166351 -1.222435 -1.222426 -0.142941 -0.361398 1.222430 -1.222430 -0.255640 -0.255640 0.000000 -3.000000 -0.255640 0.172526 -1.171604 0.705472 -0.699575 -8.387291 88.196309 0.734727 -0.734727 1.058050 1.058107 0.530797 0.326153 1.058072 1.328180
553 -7.401152 73.728777 0.168895 -0.165453 -1.222434 -1.222426 0.030504 -0.537211 1.222430 -1.222430 -0.255640 -0.255640 0.000000 -3.000000 -0.255640 0.441257 -1.166435 0.949898 -0.948507 1.615424 1.210116 0.642481 -0.528265 1.058049 1.058112 0.535237 0.246429 1.058072 1.328796
554 1.568759 3.583616 0.138128 -0.137731 -1.222435 -1.222425 0.054594 0.164830 1.222430 -1.222430 -0.255640 -0.255640 0.000000 -3.000000 -0.255640 -0.049555 -1.237390 0.788267 -0.778487 -1.362995 0.941398 1.197730 1.182030 1.058051 1.058112 0.656503 0.634543 1.058072 1.327940
555 -5.443286 69.381066 0.120575 -0.117892 -1.222435 -1.222425 0.057144 -0.132854 1.222430 -1.222430 -0.255640 -0.255640 0.000000 -3.000000 -0.255640 -0.129836 -1.187330 0.423057 -0.414295 -1.444530 0.484671 1.368346 1.368324 1.058051 1.058113 0.653798 0.586465 1.058072 1.326585
556 1.522208 0.898342 0.612148 -0.611448 -1.222435 1.957171 0.616317 -0.852499 0.985611 -0.281948 -2.200468 2.858840 0.802173 -0.196524 0.139939 -0.556187 -0.254924 0.973922 -0.927822 -2.108535 3.303640 0.368059 -0.207763 0.195161 3.255226 1.018407 0.000507 1.586397 1.416597
557 0.602549 -0.089154 0.518433 -0.510695 -1.222436 1.792751 1.907350 2.775565 1.107134 -0.834216 -1.421189 2.236469 2.250054 5.125035 -0.096707 -0.421216 -1.504701 0.404318 -0.365407 -0.872268 -0.658269 1.272909 1.181674 0.068527 2.469922 1.641367 8.867536 1.115817 1.284481
558 -0.299243 -1.237996 0.333391 -0.313426 -1.222436 1.941416 0.309364 -1.560687 1.092342 -0.121179 -2.431808 2.471944 0.706831 1.637339 -0.266958 0.075064 -0.522420 0.426449 0.348459 -0.406355 -0.056227 1.638623 1.636619 0.073354 2.725298 0.845493 0.764841 1.245696 1.444122
559 -1.687240 4.231337 0.199795 -0.192872 -1.222439 1.890895 0.739549 -1.004599 1.058940 -0.432958 -3.288164 1.516477 -1.280434 1.970674 -0.403529 -0.697267 -0.215875 0.723083 0.710251 0.341615 -1.483910 0.918280 0.459749 0.118168 3.517123 2.003998 3.527893 1.401890 1.405924
560 -11.575601 160.206387 0.154711 -0.152228 -1.222436 1.997176 1.226331 -0.073210 1.176275 -0.562050 -2.988137 2.166892 -0.186623 13.159546 -0.345064 0.137103 -1.342764 0.241850 0.058695 -0.015880 -1.332019 0.800095 -0.783398 0.179256 3.144260 3.044340 14.565252 1.119364 1.391315
561 -12.408841 197.151314 0.150552 -0.148950 -1.222439 1.858156 1.431948 0.660207 1.125211 -0.672799 -1.195458 1.785706 1.825692 3.325096 -0.094429 -0.405538 -1.152845 0.516629 -0.501555 -0.958949 0.497364 1.093059 -1.089670 0.193069 2.468388 0.294261 5.014944 1.066121 1.325685
562 -0.602059 -0.463666 0.135882 -0.135265 -1.222437 1.604025 1.197231 1.452843 0.917033 -0.635737 -3.276847 2.292855 -0.643166 2.367466 -0.445886 0.112263 0.210337 0.853944 -0.852956 -0.980320 -0.372597 1.054546 -1.044445 0.166680 3.503960 2.337673 5.936040 1.345588 1.257001
563 -0.312943 1.209110 0.124580 -0.124513 -1.222436 1.847017 0.858079 -0.843144 1.087083 -0.448148 -2.140943 2.336720 0.704464 2.096783 -0.133530 0.398323 -0.226068 0.901969 -0.901439 1.762694 1.870350 0.899508 -0.848235 0.007740 2.569018 0.899475 1.399187 1.224262 1.391771
564 0.318117 -0.831621 0.070823 -0.049876 -1.222437 1.940564 -0.382442 -1.611694 1.141185 0.256659 -1.856109 2.158589 1.130624 1.462264 -0.346625 -0.105485 -1.525975 0.469800 -0.084371 -0.991372 -0.157321 1.136816 1.077969 0.030285 2.556495 0.323650 2.927493 1.152175 1.558935

565 rows × 29 columns

In [ ]:
finalAggrData.
In [53]:
corr = finalAggrData.corr()
# generate mask for the upper triangle 
mask = np.zeros_like(corr, dtype=np.bool)
mask[np.triu_indices_from(mask)] = True
# generate a custom diverding colormap
cmap = sns.diverging_palette(220,10,as_cmap=True)

plt.figure(figsize=(100, 100))
_ = sns.heatmap(corr,mask=mask,cmap=cmap,center=0,square=True,linewidths=.5, cbar_kws={"shrink":.5},annot=True)

As we expectd, no more high correlation are visible!

In [54]:
#finalAggrData.to_csv('finalAggrData.csv')
In [ ]: