- 根据4个要素的48个样本数据,计算得到的简单相关系数如下,试计算各级偏相关系数和复相关系数,并对其显著性进行检验。


1. import math
2. import numpy as np
3. import pandas as pd
4. import pingouin as pg
5.
6. a=np.array([[1,0.9954,0.9994,0.9989],
7. [0.9954,1,0.9926,0.9923],
8. [0.9904,0.9926,1,0.9977],
9. [0.9989,0.9923,0.9977,1]],dtype=float)
10.
11. r231=(a[1,2]-a[0,1]*a[0,2])/((1-a[0,1]**2)*(1-a[0,2]**2))**0.5
12.
13. r241=(a[1,3]-a[0,1]*a[0,3])/((1-a[0,1]**2)*(1-a[0,3]**2))**0.5
14.
15. r341=(a[2,3]-a[0,2]*a[0,3])/((1-a[0,2]**2)*(1-a[0,3]**2))**0.5
16.
17. r132=(a[0,2]-a[0,1]*a[1,2])/((1-a[0,1]**2)*(1-a[1,2]**2))**0.5
18.
19. r142=(a[0,3]-a[0,1]*a[1,3])/((1-a[0,1]**2)*(1-a[1,3]**2))**0.5
20.
21. r342=(a[2,3]-a[1,2]*a[1,3])/((1-a[1,2]**2)*(1-a[1,3]**2))**0.5
22.
23. r123=(a[0,1]-a[0,2]*a[1,2])/((1-a[0,2]**2)*(1-a[1,2]**2))**0.5
24.
25. r143=(a[0,3]-a[0,2]*a[2,3])/((1-a[0,2]**2)*(1-a[2,3]**2))**0.5
26.
27. r243=(a[1,3]-a[1,2]*a[2,3])/((1-a[1,2]**2)*(1-a[2,3]**2))**0.5
28.
29. r124=(a[0,1]-a[0,3]*a[1,3])/((1-a[0,3]**2)*(1-a[1,3]**2))**0.5
30.
31. r134=(a[0,2]-a[0,3]*a[2,3])/((1-a[0,3]**2)*(1-a[2,3]**2))**0.5
32.
33. r234=(a[1,2]-a[1,3]*a[2,3])/((1-a[1,3]**2)*(1-a[2,3]**2))**0.5
34.
35. print(r231)
36. print(r241)
37. print(r341)
38. print(r132)
39. print(r142)
40. print(r342)
41. print(r123)
42. print(r134)
43. print(r234)

1. t231=(r231/((1-r231**2)**0.5))*(45**0.5)
2.
3. t241=(r241/((1-r241**2)**0.5))*(45**0.5)
4.
5. t341=(r341/((1-r341**2)**0.5))*(45**0.5)
6.
7. t132=(r143/((1-r132**2)**0.5))*(45**0.5)
8.
9. t142=(r231/((1-r142**2)**0.5))*(45**0.5)
10.
11. t342=(r342/((1-r342**2)**0.5))*(45**0.5)
12.
13. t123=(r123/((1-r123**2)**0.5))*(45**0.5)
14.
15. t134=(r134/((1-r134**2)**0.5))*(45**0.5)
16.
17. t234=(r234/((1-r234**2)**0.5))*(45**0.5)
18.
19. print(t231)
20. print(t241)
21. print(t341)
22. print(t132)
23. print(t142)
24. print(t342)
25. print(t123)
26. print(t134)
27. print(t234)

1. r1234=(r123-r143*r243)/((1-r143**2)*(1-r243**2))**0.5
2.
3. r1324=(r132-r142*r342)/((1-r142**2)*(1-r342**2))**0.5
4.
5. r1423=(r142-r132*r342)/((1-r132**2)*(1-r342**2))**0.5
6.
7. r2314=(r231-r241*r341)/((1-r241**2)*(1-r341**2))**0.5
8.
9. r2413=(r241-r231*r341)/((1-r231**2)*(1-r341**2))**0.5
10.
11. r3412=(r341-r231*r241)/((1-r231**2)*(1-r241**2))**0.5
12.
13. print(r1234)
14. print(r1324)
15. print(r1423)
16. print(r2314)
17. print(r2413)
18. print(r3412)
#二级偏相关系数的显著性检验,也采用的是T检验,代码实现(python):
1. t1234=(r1234/((1-r1234**2)**0.5))*(45**0.5)
2.
3. t1324=(r1324/((1-r1324**2)**0.5))*(45**0.5)
4.
5. t1423=(r1423/((1-r1423**2)**0.5))*(45**0.5)
6.
7. t2314=(r2314/((1-r2314**2)**0.5))*(45**0.5)
8.
9. t2413=(r2413/((1-r2413**2)**0.5))*(45**0.5)
10.
11. t3412=(r3412/((1-r3412**2)**0.5))*(45**0.5)
12.
13. print(t1234)
14. print(t1324)
15. print(t1423)
16. print(t2314)
17. print(t2413)
18. print(t3412)

1. ry1234=(1-(1-0.9954**2)*(1-r132**2)*(1-r1423**2))
2.
3. ry2134=(1-(1-0.9926**2)*(1-r243**2)*(1-r3412**2))
4.
5. ry3124=(1-(1-0.9977**2)*(1-r341**2)*(1-r2413**2))
6.
7. ry4123=(1-(1-0.9989**2)*(1-r241**2)*(1-r1234**2))
8. print(ry1234)
9. print(ry2134)
10. print(ry3124)
11. print(ry4123)

1. F1234=(ry1234**2/(1-ry1234**2))*(44/3)
2. F2134=(ry2134**2/(1-ry2134**2))*(44/3)
3. F3124=(ry3124**2/(1-ry3124**2))*(44/3)
4. F4123=(ry4123**2/(1-ry4123**2))*(44/3)
5.
6. print(F1234)
7. print(F2134)
8. print(F3124)
9. print(F4123)