x1_mean
=
df[
'x1'
].mean()
x2_mean
=
df[
'x2'
].mean()
x3_mean
=
df[
'x3'
].mean()
x4_mean
=
df[
'x4'
].mean()
y1_mean
=
df[
'y1'
].mean()
y2_mean
=
df[
'y2'
].mean()
y3_mean
=
df[
'y3'
].mean()
y4_mean
=
df[
'y4'
].mean()
x1_std
=
df[
'x1'
].std()
x2_std
=
df[
'x2'
].std()
x3_std
=
df[
'x3'
].std()
x4_std
=
df[
'x4'
].std()
y1_std
=
df[
'y1'
].std()
y2_std
=
df[
'y2'
].std()
y3_std
=
df[
'y3'
].std()
y4_std
=
df[
'y4'
].std()
correlation_x1y1
=
np.corrcoef(df[
'x1'
],df[
'y1'
])[
0
,
1
]
correlation_x2y2
=
np.corrcoef(df[
'x2'
],df[
'y2'
])[
0
,
1
]
correlation_x3y3
=
np.corrcoef(df[
'x3'
],df[
'y3'
])[
0
,
1
]
correlation_x4y4
=
np.corrcoef(df[
'x4'
],df[
'y4'
])[
0
,
1
]
m1,c1
=
np.polyfit(df[
'x1'
], df[
'y1'
],
1
)
m2,c2
=
np.polyfit(df[
'x2'
], df[
'y2'
],
1
)
m3,c3
=
np.polyfit(df[
'x3'
], df[
'y3'
],
1
)
m4,c4
=
np.polyfit(df[
'x4'
], df[
'y4'
],
1
)
RSSY_1
=
((df[
'y1'
]
-
(m1
*
df[
'x1'
]
+
c1))
*
*
2
).
sum
()
RSSY_2
=
((df[
'y2'
]
-
(m2
*
df[
'x2'
]
+
c2))
*
*
2
).
sum
()
RSSY_3
=
((df[
'y3'
]
-
(m3
*
df[
'x3'
]
+
c3))
*
*
2
).
sum
()
RSSY_4
=
((df[
'y4'
]
-
(m4
*
df[
'x4'
]
+
c4))
*
*
2
).
sum
()
TSS_1
=
((df[
'y1'
]
-
y1_mean)
*
*
2
).
sum
()
TSS_2
=
((df[
'y2'
]
-
y2_mean)
*
*
2
).
sum
()
TSS_3
=
((df[
'y3'
]
-
y3_mean)
*
*
2
).
sum
()
TSS_4
=
((df[
'y4'
]
-
y4_mean)
*
*
2
).
sum
()
R2_1
=
1
-
(RSSY_1
/
TSS_1)
R2_2
=
1
-
(RSSY_2
/
TSS_2)
R2_3
=
1
-
(RSSY_3
/
TSS_3)
R2_4
=
1
-
(RSSY_4
/
TSS_4)
summary_stats
=
pd.DataFrame({
'Mean_x'
: [x1_mean, x2_mean, x3_mean, x4_mean],
'Variance_x'
: [x1_std
*
*
2
, x2_std
*
*
2
, x3_std
*
*
2
, x4_std
*
*
2
],
'Mean_y'
: [y1_mean, y2_mean, y3_mean, y4_mean],
'Variance_y'
: [y1_std
*
*
2
, y2_std
*
*
2
, y3_std
*
*
2
, y4_std
*
*
2
],
'Correlation'
: [correlation_x1y1, correlation_x2y2, correlation_x3y3, correlation_x4y4],
'Linear Regression slope'
: [m1, m2, m3, m4],
'Linear Regression intercept'
: [c1, c2, c3, c4]},
index
=
[
'I'
,
'II'
,
'III'
,
'IV'
])
print
(summary_stats.T)