scipy 我如何使用Python中的统计技术来估计任意两个变量之间的因果关系或因果效应?

jq6vz3qz  于 2022-11-10  发布在  Python
关注(0)|答案(1)|浏览(193)

我对统计学和Python中的因果推理或因果关系的概念还很陌生。
我有一个 Dataframe test,如下所示:

x   y
0   0.03    315.98
1   -0.03   316.91
2   0.06    317.64
3   0.03    318.45
4   0.05    318.99
... ... ...
58  0.92    406.76
59  0.84    408.72
60  0.97    411.66
61  1.01    414.24
62  0.84    416.45

test.to_dict()给出为:

{'x': {0: 0.03,
  1: -0.03,
  2: 0.06,
  3: 0.03,
  4: 0.05,
  5: -0.2,
  6: -0.11,
  7: -0.06,
  8: -0.02,
  9: -0.08,
  10: 0.05,
  11: 0.02,
  12: -0.08,
  13: 0.01,
  14: 0.16,
  15: -0.07,
  16: -0.01,
  17: -0.1,
  18: 0.18,
  19: 0.07,
  20: 0.16,
  21: 0.26,
  22: 0.32,
  23: 0.14,
  24: 0.31,
  25: 0.16,
  26: 0.12,
  27: 0.18,
  28: 0.32,
  29: 0.39,
  30: 0.27,
  31: 0.45,
  32: 0.4,
  33: 0.22,
  34: 0.23,
  35: 0.31,
  36: 0.44,
  37: 0.33,
  38: 0.46,
  39: 0.61,
  40: 0.38,
  41: 0.39,
  42: 0.53,
  43: 0.62,
  44: 0.62,
  45: 0.53,
  46: 0.67,
  47: 0.63,
  48: 0.66,
  49: 0.54,
  50: 0.65,
  51: 0.72,
  52: 0.61,
  53: 0.64,
  54: 0.67,
  55: 0.74,
  56: 0.89,
  57: 1.01,
  58: 0.92,
  59: 0.84,
  60: 0.97,
  61: 1.01,
  62: 0.84},
 'y': {0: 315.98,
  1: 316.91,
  2: 317.64,
  3: 318.45,
  4: 318.99,
  5: 319.62,
  6: 320.04,
  7: 321.37,
  8: 322.18,
  9: 323.05,
  10: 324.62,
  11: 325.68,
  12: 326.32,
  13: 327.46,
  14: 329.68,
  15: 330.19,
  16: 331.12,
  17: 332.03,
  18: 333.84,
  19: 335.41,
  20: 336.84,
  21: 338.76,
  22: 340.12,
  23: 341.48,
  24: 343.15,
  25: 344.85,
  26: 346.35,
  27: 347.61,
  28: 349.31,
  29: 351.69,
  30: 353.2,
  31: 354.45,
  32: 355.7,
  33: 356.54,
  34: 357.21,
  35: 358.96,
  36: 360.97,
  37: 362.74,
  38: 363.88,
  39: 366.84,
  40: 368.54,
  41: 369.71,
  42: 371.32,
  43: 373.45,
  44: 375.98,
  45: 377.7,
  46: 379.98,
  47: 382.09,
  48: 384.02,
  49: 385.83,
  50: 387.64,
  51: 390.1,
  52: 391.85,
  53: 394.06,
  54: 396.74,
  55: 398.81,
  56: 401.01,
  57: 404.41,
  58: 406.76,
  59: 408.72,
  60: 411.66,
  61: 414.24,
  62: 416.45}}

在该 Dataframe 中有两个变量xy。x是自变量,y是因变量。
我可以使用以下公式计算两者之间的相关性:

test.corr()

它返回:

x   y
x   1.000000    0.961354
y   0.961354    1.000000

这意味着,xy之间的相关性为96%,但这并没有显示出两个变量之间的因果关系。
如何在Python中用统计学方法显示x导致y,并通过某个值来显示效果?

anauzrmj

anauzrmj1#

相关性是一个始终可以从数据中计算出来的数字--有一个简单的数学公式。
另一方面,因果关系是关于xy的真实的影响的知识。例如,另一个变量z可能是xy都发生变化的原因,那么xy是相关的,但是如果x发生变化,并不意味着y也会发生变化。也许x有一个不同的改变原因,而这个原因根本不会改变y,这意味着x不会导致y
值可能是相关的,但x可能不会导致y,而且仅从普通数字无法判断这一点。
网上有大量的例子说明“相关性”和“因果关系”之间的区别。

相关问题