Python Code For Cross Stat
Python Code For Cross Stat
X = data[:,0]
Y = data[:,1]
Resistivity = data[:,2]
Permeability = data[:,3]
def correlation(x,y):
n = len(x)
mean_x = sum(x)/n
mean_y = sum(y)/n
return covariance(x,y)/(std_x*std_y)
n = len(x)
mean_x = sum(x) / n
mean_y = sum(y) / n
def cross_semivariance(pairs):
n = len(pairs)
return gamma
pairs = []
if direction == 'horizontal':
for i in range(len(resis)):
#print(f"{perm[i]}, {resis[j]}")
for i in range(len(resis)):
return pairs
results = {'horizontal': {'Lag': [], 'Number of Pairs': [], 'Cross-Covariance': [], 'Cross-Correlation': [],
'Cross-Semivariance': []},
'vertical': {'Lag': [], 'Number of Pairs': [], 'Cross-Covariance': [], 'Cross-Correlation': [], 'Cross-
Semivariance': []}}
if not pairs:
continue
semi = cross_semivariance(pairs)
results[direction]['Lag'].append(lag)
results[direction]['Number of Pairs'].append(len(pairs))
results[direction]['Cross-Covariance'].append(cov)
results[direction]['Cross-Correlation'].append(corr)
results[direction]['Cross-Semivariance'].append(semi)
return results
# Calculate cross-statistics
# Print results
print(f"\n{direction.capitalize()} Direction:")
print(f"{'Lag':<10}{'Number of Pairs':<20}{'Cross-Covariance':<20}{'Cross-Correlation':<20}{'Cross-
Semivariance':<20}")
for i in range(len(cross_statistics[direction]['Lag'])):
print(f"{cross_statistics[direction]['Lag'][i]:<10}{cross_statistics[direction]['Number of
Pairs'][i]:<20}{cross_statistics[direction]['Cross-
Covariance'][i]:<20.4f}{cross_statistics[direction]['Cross-
Correlation'][i]:<20.4f}{cross_statistics[direction]['Cross-Semivariance'][i]:<20.4f}")
def plot_pairs_scatter(cross_statistics):
plt.figure(figsize=(15, 10))
if not pairs:
continue
plt.subplot(2, 3, i + 1)
plt.xlabel('Resistivity')
plt.ylabel('Permeability')
plt.xlim(240)
#plt.grid()
plt.tight_layout()
plt.show()
plot_pairs_scatter(cross_statistics)
lags = cross_statistics[direction]['Lag']
values = cross_statistics[direction][metric]
plt.xlabel('Lag')
plt.ylabel(metric)
plt.grid()
plt.legend()
plt.tight_layout()
plt.show()
plot_cross_statistics(cross_statistics)