我正在做一个基本的python类的作业,我很困惑.有人能帮我计算皮尔逊r检验,返回两组变量的相关分数和p值吗?您将使用预先加载的DataFrame,其中包含有关全国不同地区的医疗费用以及其他人口统计数据的信息,包括年龄、性别、体重指数( BMI )、儿童人数、吸烟者与不吸烟者之间的信息。
在这个挑战中,你将重点关注年龄和收费、体重指数和收费之间的关系。
在开始之前,我们将向您介绍一个新的Python概念,以帮助您完成这项任务:一次为多个变量分配值。
在Python中,可以(而且通常非常方便)一次(在同一代码行)为多个变量赋值。
考虑以下代码:
a,b= 5,10打印(A)打印(B)以上相当于此代码:
A=5b= 10 print(a) print(b) --要使用的珠光体方法--同时返回两个值,因此需要同时将它们赋值给两个变量,就像上面的代码一样。
对于年龄和收费之间的相关性,将测试值分配给变量ac,将p值分配给ap。把结果都打印出来。
对于bmi和收费之间的相关性,将测试值分配给变量bc,将p值分配给bp。把结果都打印出来。
你会注意到它们都有显著的p值(小于0.05)。然而,你的结果应该表明,年龄与收费的相关性比bmi更高。有意思的!
代码
导入库
从进口统计数据中进口熊猫作为pd
负载DataFrame
df = pd.read_csv('https://tf-assets-prod.s3.amazonaws.com/tf-curric/data-analytics-bootcamp/medicalcosts.csv')
使用“珠光体”相关检验检查age与charges之间的相关性并打印结果。
ac,ap = stats.(,)打印()
使用“珠光体”相关检验检查bmi与charges之间的相关性并打印结果。
bc,bp = stats.(,)打印()
发布于 2022-10-17 18:28:06
下面是您需要得到的结果,要求在说明(ps )。确保安装了枕骨 ):
import pandas as pd
from scipy import stats
df = pd.read_csv('https://tf-assets-prod.s3.amazonaws.com/tf-curric/data-analytics-bootcamp/medicalcosts.csv')
ac, ap = stats.pearsonr(df.age, df.charges)
print(ac)
print(ap)
bc, bp = stats.pearsonr(df.bmi, df.charges)
print(bc)
print(bp)一个解决这个问题的好方法是搜索您正在使用的库的文档并找到所需的函数,这样您就可以更好地了解如何使用它。
统计函数scipy.stats.pearsonr有两个必需的参数x和y,它返回一个PearsonRResult。从这些文档中,您可以看到,除了r统计数据和p值之外,还可以在不同的置信度水平上计算置信区间(使用函数confidence_interval(),默认情况下它使用0.95 confidence_level计算一个区间)。
如果只将函数的结果分配给一个varible,则该变量的类型为PearsonRResult,您可以使用点符号访问它的属性:
age_pearson_r_test = stats.pearsonr(df.age, df.charges)
print(age_pearson_r_test.statistic)
print(age_pearson_r_test.pvalue)
print(age_pearson_r_test.confidence_interval())
print(age_pearson_r_test.confidence_interval(confidence_level=0.99))其中产出:
0.29900813459514475
4.886820193672555e-29
ConfidenceInterval(low=0.24941385646250505, high=0.3470380706330515)
ConfidenceInterval(low=0.23354154009423367, high=0.36177608359744545)如果您对为函数的结果分配两个变量感到困惑,那么类似的示例可以帮助您更好地了解正在发生的事情:
def test_function():
return 1,2
tuple_result = test_function()
int_result_1, int_result_2 = test_function()
print(type(tuple_result))
print(tuple_result)
print(type(int_result_1))
print(int_result_1)
print(type(int_result_2))
print(int_result_2)其中产出:
<class 'tuple'>
(1, 2)
<class 'int'>
1
<class 'int'>
2https://stackoverflow.com/questions/74099662
复制相似问题