Librerias
Librerias
In [195]:
import pandas as pd
import numpy as np
In [196]:
FILENAME = '[Link]'
cols = [Link]
[Link]()
dataset
<class '[Link]'>
dtypes: Int64(19)
Out[196]:
S Br Ini C In Fi
V Mon Oli Per Inf Sp
G c e tia L U or iti n
a o_or go ive rat in g
e h as l_ L L B ti al al
A ri _Pol clo V ntr en al_ r
n o tf Sy S S A c _ _
g c ysy nal E icu tor Co o
d o e m S S E al E E
e e mpt _B P lar ial rd u
e li e pt E E P _ D D
ll oma an _M _M _M p
r n di o P P M S S
a tic ds RI RI RI
g ng m RI S S
3 2
0 1 1 1 2 1 0 1 1 0 0 0 1 0 1 1 1 1
4 0
6 2
1 1 3 2 10 2 1 1 0 1 0 0 0 0 1 2 2 1
1 5
2 2
2 1 3 1 3 1 1 0 0 0 0 0 1 0 0 1 1 1
2 0
4 1
3 2 1 1 7 2 1 0 1 1 0 1 1 0 0 1 1 1
1 5
3 2
4 2 2 1 6 2 0 1 0 0 0 1 0 0 0 1 1 1
4 0
. . . . .
.. .. .. .. ..
. . ... ... ... ... . . ... ... ... ... ... ... .
. . . . .
. . . . .
< <
2
3 N N
6 2 8 3 1 9 2 0 0 0 0 0 0 0 0 0 2
1 A A
8
> >
< <
2
2 1 N N
6 1 3 3 5 2 1 0 0 0 0 0 0 0 1 2
1 5 A A
9
> >
S Br Ini C In Fi
V Mon Oli Per Inf Sp
G c e tia L U or iti n
a o_or go ive rat in g
e h as l_ L L B ti al al
A ri _Pol clo V ntr en al_ r
n o tf Sy S S A c _ _
g c ysy nal E icu tor Co o
d o e m S S E al E E
e e mpt _B P lar ial rd u
e li e pt E E P _ D D
ll oma an _M _M _M p
r n di o P P M S S
a tic ds RI RI RI
g ng m RI S S
< <
2
1 1 N N
7 2 3 3 13 2 0 1 1 1 0 0 0 0 1 2
9 2 A A
0
> >
< <
2
3 1 N N
7 2 3 3 15 2 1 1 1 1 0 1 1 1 0 2
2 5 A A
1
> >
< <
2
7 N N
7 2 6 3 3 2 1 0 0 1 0 0 0 0 0 0 2
7 A A
2
> >
Pre-procesamiento
• Limpieza de datos
Schooling: Se imputa el dato faltante usando la mediana de la variable dado que es una
variable numerica entera
In [197]:
cleaned_dataset = [Link]()
imputer = SimpleImputer(strategy='median')
cleaned_dataset['Schooling'] = imputer.fit_transform(
cleaned_dataset[['Schooling']])
cleaned_dataset['Schooling'] = cleaned_dataset['Schooling'].astype('int64')
cleaned_dataset.info()
<class '[Link]'>
Initial_Symptoms: Se imputa el dato faltante usando la moda de la variable dado que es una
variable categorica
In [198]:
imputer = SimpleImputer(strategy='most_frequent')
cleaned_dataset['Initial_Symptom'] = imputer.fit_transform(
cleaned_dataset[['Initial_Symptom']])
cleaned_dataset['Initial_Symptom'] = cleaned_dataset['Initial_Symptom'].astype(
'int64')
cleaned_dataset.info()
<class '[Link]'>
Dada la ausencia total de los datos de las variables initial_edss y final_edss para el grupo 2
(no EMCD) y considerando que estas variables representan una escala de discapacidad
aplicable a pacientes con esclerosis múltiple clínicamente definida (EMCD), parece
estructuralmente coherente que estos datos estén faltantes para un grupo que no desarrolló
la enfermedad. La eliminación de estas variables es justificada porque su inclusión con datos
imputados artificialmente o su uso incompleto podría inducir un sesgo significativo en el
análisis. Además, la imputación no sería apropiada dado que no hay base para estimar la
discapacidad en pacientes que no han progresado a EMCD. Por lo tanto, para mantener la
integridad y la precisión del análisis de clustering destinado a identificar patrones predictivos
de progresión a EM desde SCA, es prudente excluir estas variables del análisis global y
concentrarse en otras características clínicas y demográficas presentes en ambos grupos.
In [199]:
cleaned_dataset = cleaned_dataset.drop(
cleaned_dataset.info()
<class '[Link]'>
Se normalizan las variables numericas para que todas tengan la misma escala y no se vean
afectadas por la magnitud de los valores al momento de realizar el clustering.
In [200]:
normalized_dataset = cleaned_dataset.copy()
scaled_dataset = StandardScaler().fit_transform(
normalized_dataset[['Age', 'Schooling']])
Para escoger el numero de clusters se utiliza el metodo del codo y el metodo de la silueta.
In [201]:
RANDOM_STATE = 9
cost = []
for n in range_num_clusters:
kproto = KPrototypes(n_clusters=n,
clusters = kproto.fit_predict(
dataset, categorical=categorical_index)
[Link](kproto.cost_)
[Link](figsize=(10, 6))
ax = [Link](x=range_num_clusters, y=cost,
marker='o', dashes=False)
[Link]()
def silhouette_method(dataset, start, end):
categorical_index.insert(0, 0)
silhouette_avg_scores = []
for n in range_num_clusters:
kproto = KPrototypes(n_clusters=n,
clusters = kproto.fit_predict(
dataset, categorical=categorical_index)
silhouette_avg_scores.append(score)
[Link](figsize=(10, 6))
ax = [Link](x=range_num_clusters, y=silhouette_avg_scores,
marker='o', dashes=False)
ax.set_title(f'Método de la silueta')
[Link]()
cluster_dataset = normalized_dataset.copy()
elbow_method(cluster_dataset.to_numpy(), 2, 10)
silhouette_method(cluster_dataset.to_numpy(), 2, 10)
Segun los dos metodos se tiene lo siguiente:
1. Método del Codo: En el grafico se puede observar una desaceleración del descenso
en el costo alrededor de 4 clusters, sugiriendo que 4 podría ser un buen número de
clusters.
2. Método de la Silueta: El gráfico muestra una disminución general en el puntaje
después de 3 clusters, pero se observa un pequeño pico en 4 clusters antes de
continuar descendiendo, lo cual podría indicar que 3 o 4 es un buen número de
clusters.
In [202]:
X = cluster_dataset.to_numpy()
categorical_index.insert(0, 0)
n_jobs=-1, random_state=RANDOM_STATE)
clusters = kproto.fit_predict(
X, categorical=categorical_index)
# print(kproto.cluster_centroids_)
# print(clusters)
In [203]:
# Cálculo del Puntaje de Silueta
se deja una funcion para pasar los datos categoricos a su valor escrito
In [204]:
def set_categorical_values(dataset):
dataset = [Link]()
dataset["Gender"] = dataset["Gender"].map(gender)
dataset["Breastfeeding"] = dataset["Breastfeeding"].map(breastfeeding)
dataset["Varicella"] = dataset["Varicella"].map(varicella)
dataset["Initial_Symptom"] = dataset["Initial_Symptom"].map(
initial_symptom)
dataset["Mono_or_Polysymptomatic"] = dataset["Mono_or_Polysymptomatic"].map(
mono_or_polysymptomatic)
dataset["Oligoclonal_Bands"] = dataset["Oligoclonal_Bands"].map(
oligoclonal_bands)
dataset[var] = dataset[var].map(neg_pos)
dataset["group"] = dataset["group"].map(group)
return dataset
Se muestra la cantidad de datos en cada cluster divididos por el grupo al que pertenecen
(EMCD [1] o no EMCD [2])
In [205]:
[Link](figsize=(10, 6))
ax = [Link](x=var, data=dataset,
if(not name):
name = var
[Link](f"Distribución de {name}")
total = float(len(dataset))
for p in [Link]:
height = p.get_height()
[Link](x=p.get_x()+(p.get_width()/2),
y=height - height/2,
s=f'{height:.0f}\n{height/total:.1%}',
ha='center',
fontdict={'size': p.get_width()*16},
[Link]()
analisys_dataset = cleaned_dataset.copy()
analisys_dataset['Cluster'] = clusters
analisys_dataset_cat = set_categorical_values(analisys_dataset)
plot_frecuency(analisys_dataset_cat, 'Cluster')
Resumen para el analisis de las variables numericas para cada cluster asignado
In [206]:
numeric_summary = analisys_dataset.groupby('Cluster').agg(
numeric_summary
Out[206]:
Age Schooling
medi mi ma medi mi ma
mean std mean std
an n x an n x
Clust
er
Resumen para el analisis de las variables categoricas para cada cluster asignado
In [207]:
variables_categoricas = [Link][3:16]
categoryc_summary = analisys_dataset_cat.groupby('Cluster').agg(
[lambda x: [Link](x).iat[0]])[variables_categoricas]
categoryc_summary
Out[207]:
G Bre Va Initi Mono_ Olig LL U Peri Co Infr Spi
B
e ast ri al_ or_Pol oclo S LS V vent rti aten nal_
A
n fee ce Sy ysymp nal_ S S E ricul cal tori Cor
E
d din ll mpt tomati Ban E E P ar_M _M al_ d_M
P
er g a om c ds P P RI RI MRI RI
C
l
u
s
t
e
r
Fe Sen
Po N N N N
m sori Polisin Ne Neg Neg
sit Neg eg eg eg eg Neg
0 en Si al y tomáti gat ativ ativ
iv ativo ati ati ati ati ativo
in Mot co ivo o o
o vo vo vo vo
o or
M
N Po Po Po N
as Polisin Po Neg
eg Mot Neg sit sit sit eg Posit Posi
1 cu Si tomáti siti ativ
ati or ativo iv iv iv ati ivo tivo
lin co vo o
vo o o o vo
o
Fe Sen
N Po Po N N
m sori Polisin Po Neg
eg Neg sit sit eg eg Posit Posi
2 en Si al y tomáti siti ativ
ati ativo iv iv ati ati ivo tivo
in Mot co vo o
vo o o vo vo
o or
G Bre Va Initi Mono_ Olig LL U Peri Co Infr Spi
B
e ast ri al_ or_Pol oclo S LS V vent rti aten nal_
A
n fee ce Sy ysymp nal_ S S E ricul cal tori Cor
E
d din ll mpt tomati Ban E E P ar_M _M al_ d_M
P
er g a om c ds P P RI RI MRI RI
C
l
u
s
t
e
r
Fe De
N N N N N
m sco Polisin Ne Neg Neg
eg Vis Neg eg eg eg eg Neg
3 en no tomáti gat ativ ativ
ati ual ativo ati ati ati ati ativo
in cid co ivo o o
vo vo vo vo vo
o o
In [208]:
plot_frecuency(
In [209]:
# Histograma de la edad por grupo
[Link]()
[Link]()
Analisis de Componentes Principales (PCA)
In [210]:
pca_dataset = cluster_dataset.copy()
pca_dataset['Cluster'] = clusters
pca = PCA()
X_pca = pca.fit_transform(pca_dataset)
# Valores propios
eigenvalues = pca.explained_variance_
# Obtener los vectores de las variables
dataset_columns = pca_dataset.columns
# print(pca_df)
pca_df
# sum(eigenvalues) * 100
# Mostrar la tabla
# print(pca_df)
pca_dataset['PCA1'] = X_pca[:, 0]
pca_dataset['PCA2'] = X_pca[:, 1]
[Link](figsize=(10, 8))
[Link](title='Cluster')
[Link](True)
[Link]()
In [211]:
pca_df
Out[211]:
P P P P P P P P P
P P P P P P P P P
C C C C C C C C C
C C C C C C C C C
1 1 1 1 1 1 1 1 1
1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8
1
2. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
7.
3 0 8 5 3 3 2 2 2 1 1 1 1 1 0 0 0
9
9 4 5 4 8 4 7 3 1 9 7 5 3 2 9 7 4
Lamb 8
8 4 8 2 3 9 0 4 0 8 5 5 7 0 6 9 9
da 8
3 5 8 1 7 6 8 0 3 0 8 6 8 9 9 0 7
4
7 6 4 9 5 5 0 6 5 4 1 7 2 9 1 3 4
0
0 3 2 7 6 2 6 5 5 6 5 4 5 4 5 7 1
6
7
9. 4. 3. 2. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
Explic 1.
4 1 3 1 5 3 0 9 8 7 6 6 5 4 3 3 1
acion 1
8 2 9 4 1 8 7 2 3 8 9 1 4 7 8 1 9
de 1
1 9 5 3 7 2 0 5 1 2 5 5 4 8 3 2 6
Varia 4
5 5 2 4 1 2 5 3 6 9 0 4 8 3 1 4 6
nza 3
7 1 9 9 1 9 9 3 0 4 5 3 7 3 3 6 4
(%) 0
6 5 6 0 7 3 0 8 4 5 7 4 1 2 7 1 2
3
- - - - - - - - - -
0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0 0 0 0 0 0 0 0
0 0 2 1 0 0 0 1 3 0
3 1 6 7 2 1 0 2
Gend 7 4 1 3 2 2 8 4 4 9
0 7 4 7 3 2 0 0
er 1 6 0 1 7 1 6 6 0 9
0 6 8 4 1 5 7 7
3 9 1 1 0 8 7 8 8 2
4 7 8 3 7 0 9 2
7 3 9 8 3 8 9 8 2 3
7 8 1 7 4 6 5 8
8 2 1 4 4 7 1 1 3 6
- - - - - -
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0.
1 4 6 0 1 0 0 0 0 0 0 0
4 0 0 0 0 0
0 9 9 9 1 0 3 1 3 2 0 0
9 0 4 4 0 1
Age 9 2 0 9 5 8 5 3 0 2 0 2
2 2 2 3 4 1
7 7 0 9 0 1 8 3 0 7 5 3
6 0 5 2 4 5
5 8 0 2 5 8 3 2 1 7 1 3
2 9 8 2 9 9
1 0 1 2 9 9 3 5 7 9 3 4
6 1 8 0 0 0
P P P P P P P P P
P P P P P P P P P
C C C C C C C C C
C C C C C C C C C
1 1 1 1 1 1 1 1 1
1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8
- - - - - - - - - - -
0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0 4 1 1 0 0 0
8 0 1 2 1 1 0 0 0 0 0
1 2 8 0 0 1 5
Scho 1 1 4 3 5 1 1 1 1 1 1
4 1 1 6 1 8 6
oling 5 2 1 2 6 5 0 0 5 3 2
9 1 4 1 3 6 6
8 9 0 5 6 3 3 2 1 2 4
2 7 9 2 0 5 3
2 2 8 0 4 0 9 1 3 4 9
6 5 3 0 1 9 3
4 5 4 6 7 6 6 9 5 4 6
- - - - -
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0.
0 1 7 2 1 0 0 1 0 0 0 0 0
1 0 0 0 0
Breas 1 9 4 8 0 1 1 9 2 4 1 1 0
9 3 3 3 0
tfeedi 3 0 6 2 1 4 4 2 6 6 0 6 0
1 2 4 5 1
ng 7 8 8 6 7 0 2 2 7 8 9 7 4
9 4 2 2 7
0 3 7 0 5 2 1 4 0 7 4 5 5
2 7 0 2 2
5 7 7 6 1 2 3 3 5 5 1 8 3
4 3 8 2 1
- - - - -
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0.
0 2 4 3 0 0 2 0 0 0 0 0 0
0 2 0 0 0
0 8 4 1 4 4 7 4 4 3 0 2 0
Varic 6 3 9 6 1
5 6 8 0 5 6 7 2 9 0 2 1 9
ella 2 1 1 9 0
9 9 2 1 0 0 8 2 8 4 1 6 9
6 1 0 8 9
8 4 7 7 5 0 3 9 4 1 5 0 1
9 5 2 2 4
8 0 3 4 5 1 0 7 6 9 9 8 6
3 5 8 9 3
- - - - - - - - - -
4. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
2 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
Initial 1 1 2 0 0 1 0 1
2 5 0 0 0 1 0 0 0 0
_Sym 4 3 0 7 4 0 5 4
1 3 8 8 9 7 5 2 7 2
ptom 7 4 0 1 0 0 9 1
0 4 7 6 7 0 6 6 0 1
3 5 0 0 6 1 9 4
1 3 9 2 3 0 2 0 1 0
0 8 2 4 0 3 6 5
9 0 6 9 1 6 2 8 1 9
P P P P P P P P P
P P P P P P P P P
C C C C C C C C C
C C C C C C C C C
1 1 1 1 1 1 1 1 1
1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8
- - - - - - - - -
0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0.
Mono 2 0 0 1 1 0 0 0 0
0 0 0 0 1 0 0 2 1
_or_P 6 3 5 0 8 8 4 8 0
1 2 4 1 3 0 4 6 4
olysy 1 9 3 2 4 8 7 0 1
4 7 0 5 0 2 1 1 0
mpto 3 9 5 4 8 6 9 8 0
0 9 9 9 5 4 8 9 0
matic 7 1 5 2 4 2 7 5 4
6 7 5 2 5 2 2 9 6
5 2 2 5 9 1 9 2 7
7 4 7 7 3 3 2 4 6
- - - - - - -
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0.
0 0 0 0 4 2 2 0 0 0 0
Oligo 0 1 0 0 0 0 0
6 2 1 3 2 0 2 3 4 4 0
clona 3 1 8 7 4 3 0
5 5 0 7 1 7 2 3 1 4 1
l_Ban 2 7 7 0 4 1 9
4 6 6 8 6 0 4 9 4 1 2
ds 9 0 7 0 1 5 3
6 1 6 5 5 4 1 2 6 7 3
5 0 0 2 2 9 9
5 1 2 2 4 0 3 3 9 4 2
2 5 4 0 0 1 6
- - - - - - - - -
0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0.
1 3 0 0 0 0 0 1 0
0 0 0 1 2 0 0 0 1
1 0 4 1 0 2 5 7 0
LLSSE 1 7 0 6 0 1 6 2 3
0 9 2 8 9 4 6 7 7
P 7 9 6 8 4 6 2 6 3
1 7 7 2 0 3 3 7 0
7 3 2 6 0 4 8 3 6
5 6 6 0 8 8 1 0 5
2 7 2 4 8 8 6 8 9
3 4 6 1 4 9 0 3 8
2 3 0 1 1 5 3 1 6
- - - - - - - -
0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0.
1 0 2 0 0 0 0 0 1 1
0 0 1 1 0 1 1 0
2 0 8 3 6 7 8 2 3 3
ULSS 8 0 6 4 0 0 1 1
4 0 2 9 9 9 3 9 9 6
EP 4 6 6 0 0 7 6 6
8 2 8 7 1 0 3 8 0 4
1 4 6 5 3 2 2 1
8 2 4 8 3 8 8 9 4 5
9 2 8 6 0 2 0 5
7 2 3 4 6 4 6 8 7 9
8 6 1 4 2 1 0 9
P P P P P P P P P
P P P P P P P P P
C C C C C C C C C
C C C C C C C C C
1 1 1 1 1 1 1 1 1
1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8
- - - - - - - - -
0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0.
0 0 0 0 2 0 1 1 1
1 0 0 0 0 1 0 0 0
8 0 0 1 4 0 3 3 7
7 8 2 5 0 8 5 1 0
VEP 9 9 4 1 6 0 6 3 9
3 0 0 4 4 3 1 4 3
1 5 1 0 2 0 9 2 2
2 0 5 6 0 3 6 0 3
8 1 4 9 2 3 8 1 4
7 4 4 3 6 7 0 5 3
1 7 2 5 3 1 9 6 1
5 4 1 3 6 2 2 0 7
- - - - - - - -
0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0.
0 0 0 0 0 0 0 0 0 2
0 0 0 0 0 0 0 0
3 1 4 2 2 0 5 2 3 1
4 3 1 2 3 0 3 0
BAEP 6 1 0 6 6 8 4 3 0 5
1 1 6 2 3 3 9 7
5 2 0 3 7 3 1 0 3 9
9 7 3 4 4 4 3 6
8 1 6 4 3 2 1 8 1 1
0 0 7 1 3 2 4 0
2 4 2 4 3 9 6 3 1 5
1 5 5 5 0 0 7 5
- - - - - - - - - - - -
0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
1 2 1 1 1 0
Periv 0 0 0 0 1 0 0 0 1 0 1 0
6 4 1 8 7 0
entric 5 5 0 1 2 1 6 5 8 2 1 8
8 5 8 6 4 6
ular_ 5 1 9 6 6 9 1 6 2 2 0 4
9 9 7 2 0 4
MRI 3 5 0 4 7 9 5 8 2 7 5 8
2 9 5 8 1 8
3 7 2 9 9 2 9 8 1 1 3 3
8 0 4 4 3 8
2 8 6 9 9 1 3 6 9 7 1 6
- - - - - - - - - -
0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0 0 2 0 0 0 0 0
0 0 2 0 2 1 1 0 0 0
Corti 0 5 3 8 2 5 2 1
1 5 2 1 5 9 3 0 1 2
cal_M 6 6 4 1 4 3 3 1
2 7 7 4 0 9 3 1 7 8
RI 6 7 5 6 0 5 6 2
1 6 5 2 9 5 5 4 4 7
6 6 8 0 7 5 7 7
8 4 2 2 5 8 5 0 1 7
1 0 2 2 0 5 8 4
6 3 5 6 1 5 1 6 2 9
P P P P P P P P P
P P P P P P P P P
C C C C C C C C C
C C C C C C C C C
1 1 1 1 1 1 1 1 1
1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8
- - - - - - - - - -
0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
1 1 0 1 0 2 0 1
Infrat 0 0 0 0 0 1 1 0 0 0
1 9 5 5 5 1 9 8
entori 2 2 5 4 5 2 0 2 5 1
7 5 1 1 2 4 6 1
al_MR 8 8 8 3 1 4 2 8 3 2
9 5 9 0 1 1 7 1
I 3 2 0 5 8 6 9 9 2 0
6 1 9 2 7 6 8 9
4 0 6 4 0 1 4 6 1 9
6 7 9 0 7 3 2 0
3 0 5 2 3 0 2 3 3 1
- - - - - - - - -
0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0.
1 0 0 1 0 0 0 0 0
0 0 0 2 1 2 1 1 0
Spina 1 5 8 2 1 3 7 0 0
0 4 7 2 5 1 5 0 7
l_Cor 2 6 9 1 8 1 6 3 2
0 7 3 1 8 8 5 2 9
d_MRI 7 9 3 7 4 7 3 0 1
1 5 8 7 9 0 1 6 7
4 8 0 1 2 0 2 5 3
5 9 9 1 1 2 5 8 1
5 9 4 9 7 7 4 0 6
2 2 2 1 6 9 0 4 1
- - - - - - - - - -
0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
1 1 0 0 1 0 0 0
1 0 2 1 1 0 0 1 1 0
1 1 1 6 1 0 2 7
9 2 3 8 1 9 0 5 5 2
group 2 0 8 2 5 1 5 1
7 9 4 1 9 7 3 7 4 8
4 3 0 7 4 0 0 4
7 0 0 7 2 7 1 2 7 7
0 1 5 1 0 1 5 8
2 0 5 1 6 8 7 4 1 8
4 9 2 7 6 8 9 2
0 3 0 6 0 2 7 0 1 0
- - - - - - - - - - - -
1. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
1 1 0 0 0 0
0 0 1 0 1 1 1 0 0 0 0 0
6 7 9 0 3 0
Clust 5 4 1 7 9 4 3 0 1 2 0 0
2 5 8 2 5 2
er 4 7 8 7 4 1 8 2 6 2 3 6
7 0 1 7 1 1
2 5 6 2 6 6 3 1 3 6 8 1
9 9 8 9 9 6
9 0 7 3 0 0 2 9 3 6 2 1
8 9 0 5 1 0
9 5 3 2 5 1 2 9 6 1 3 8