#python #pandas
Вопрос:
import libraries
import pandas as pd
from scipy import stats
from scipy.stats import ttest_ind
df = pd.read_csv('https://tf-assets-prod.s3.amazonaws.com/tf-curric/data-analytics-bootcamp/medicalcosts.csv')
создайте два отдельных кадра данных для секса
df_male = df.loc[df['sex'] == 'male']
df_female = df.loc[df['sex'] == 'female']
Запустите t-тест, сравнивая столбец зарядов между мужчинами и женщинами, и распечатайте результаты
tc, pc = stats.pearsonr(df_male.charges, df_female.charges)
print(tc)
print(pc)
Запустите t-тест, сравнивая столбец ИМТ между мужчинами и женщинами, и распечатайте результаты
tb, pb = stats.pearsonr(df_male.bmi, df_female.bmi)
print(tb)
print(tb)
Ответ №1:
Для корреляции Пирсона вы смотрите на связь между двумя переменными. Это означает, что переменные будут одинаковой длины и stats.pearsonr
ожидается, что два входных сигнала будут иметь одинаковую длину.
В вашем примере вы пытаетесь провести корреляцию между различными наблюдениями, что не совсем имеет смысл. Поэтому он выдает ошибку:
len(df_male.charges)
676
len(df_female.charges)
662
Для t-теста это будет работать:
ttest_ind(df_male.bmi, df_female.bmi)
Ttest_indResult(statistic=1.696752635752224, pvalue=0.08997637178984932)
Комментарии:
1. Я понял, что прочитал его недостаточно внимательно, предыдущий вопрос был с использованием pearsonr. Тем не менее, я ценю ответ.