Estou trabalhando com um conjunto de dados parecido com este e estou interessado em ver como a pressão arterial afeta alguns pacientes.
df = {'Person ID': [1,2,3,4,5,6,7,8],
'BMI': ['Overweight','Normal','Normal','Obese','Obese','Underweight','Normal','Obese'],
'Sleep Disorder': ['Insomnia',float('nan'),float('nan'),'Sleep Apnea','Sleep Apnea',float('nan'),float('nan'),'Insomnia'],
'Illness':['Ill', 'Healthy','Healthy','Ill','Ill','Healthy','Healthy','Ill'],
'Blood Pressure': ['125/82','132/87','128/85','126/83','126/83','115/78','139/91','142/92']}
Saída:
Person ID BMI Sleep Disorder Illness Blood Pressure Sleep Duration
0 1 Overweight Insomnia Ill 125/82 6.1
1 2 Normal NaN Healthy 132/87 6.2
2 3 Normal NaN Healthy 128/85 6.2
3 4 Obese Sleep Apnea Ill 126/83 5.9
4 5 Obese Sleep Apnea Ill 126/83 5.9
5 6 Underweight NaN Healthy 115/78 8.1
6 7 Normal NaN Healthy 139/91 8.1
7 8 Obese Insomnia Ill 142/92 8.1
O principal problema é que Blood Pressure
não é um Int nem um Float, então como posso medir uma correlação ou que tipo de correlação pode ser usada para comparar "Ill"
pessoas "Healthy"
?
A ideia é replicar isso:
graph_bp = sns.scatterplot(data = sleep_dataset, x = "Blood Pressure", y = "Sleep Duration", hue = "Health State")
graph_bp.set_title("Relation between age and sleep duration")
graph_bp.set_xlabel("Blood Pressure")
graph_bp.set_ylabel("Sleep Duration")
cor_bp = sleep_dataset["Blood Pressure"].corr(sleep_dataset["Sleep Duration"])
print("Correlation with age: " + str(cor_bp))
Para obter alguma informação sobre Pressão Arterial, mas não há nenhum int associado. Uma ideia é separar os valores de maior e menor e fazer a diferença, mas não parece uma boa ideia pois diria que uma pessoa com 140/100 é igual a 100/60, como você faria gráfico fora disso?
A correlação pode ser com um dos números ou com ambos. Do ponto de vista científico, você deve calcular ambas as correlações de forma independente ou encontrar um indicador significativo derivado da combinação de ambas (muito mais difícil).
Imagine que uma determinada doença afete apenas uma das pressões, ou as afete de formas opostas. Ao usar uma agregação, você perderá informações e potencialmente perderá o que procura.
Em qualquer caso, você deve converter a string em dois números, o que pode ser feito com:
Saída:
Então você pode representar graficamente uma das pressões:
Ou ambas as pressões: