GEOSTATISTIKA TG 3202
MODUL KE – 2
STATISTIKA DASAR 2
Oleh:
Muhammad Ichsan 12117143
Asisten :
Oktaria Futri Ilham 12116089
Muhammad Fadhilah Harahap 12116084
Gita Rusmala 12116090
Helen Zetri 12116014
Adelia Gita Parera 12116123
Fira Pratiwi Darsono 12117151
Dita Aprilia Hutabalian 12116033
Safna Ramadhani 12116096
Mikha Parasian GT 12116042
a. Auto-Korelasi
Peristiwa atau observasi pada suatu interval tertentu, kadang terulang pada interval
yang sama di tempat lain. Pengulangan ini bisa memberikan taksiran bahwa pola
observasi mengikuti suatu siklus atau periodik tertentu. Pengulangan dalam suatu
sekuen data dapat dihitung dari pengukuran kesamaan dengan dirinya sendiri pada
sekuen tersebut (autocorrelation).
b. Cross-Korelasi
Untuk melihat keterkaitan antara 2 kelompok data pada level waktu yang sama kita
bisa membandingkan antara 2 data ini, dimana letak titik yang memiliki ekivalensi
maksimum, kemudian kita juga bisa menghitung strength of relationship-nya
menggunakan cross-correlation
c. Regressi
Analisa regresi dapat dilakukan untuk mengetahui kecenderungan tendency data.
Kecenderungan ini kemudian dapat digunakan untuk melakukan interpolasi antara
data, ekstrapolasi nilai di luar sekuen data atau karakteristik kecenderungan urutan
data yang bisa saja memiliki arti secara geologi.
# Muhammad Ichsan 12117143
import numpy as np
import matplotlib.pyplot as plt
data = np.loadtxt("koreksiharian.txt", skiprows=1)
x = data[:, 0]
y = data[:, 1]
or1 = np.polyfit(x, y, 1)
or2 = np.polyfit(x, y, 2)
or3 = np.polyfit(x, y, 3)
or4 = np.polyfit(x, y, 4)
or5 = np.polyfit(x, y, 5)
or6 = np.polyfit(x, y, 6)
or7 = np.polyfit(x, y, 7)
or8 = np.polyfit(x, y, 8)
yorde1 = or1[0] * x + or1[1]
yorde2 = or2[0] * (x ** 2) + or2[1] * x + or2[2]
yorde3 = or3[0] * (x * 3) + or3[1] * (x * 2) + or3[2] * x + or3[3]
yorde4 = or4[0] * (x * 4) + or4[1] * (x * 3) + or4[2] * (x ** 2) + or4[3]
* x + or4[4]
yorde5 = or5[0] * (x * 5) + or5[1] * (x * 4) + or5[2] * (x * 3) + or5[3]
* (x * 2) + or5[4] * x + or5[5]
yorde6 = or6[0] * (x * 6) + or6[1] * (x * 5) + or6[2] * (x * 4) + or6[3]
* (x * 3) + or6[4] * (x ** 2) + or6[
5] * x + or6[6]
yorde7 = or7[0] * (x * 7) + or7[1] * (x * 6) + or7[2] * (x * 5) + or7[3]
* (x * 4) + or7[
4] * (x * 3) + or7[5] * (x * 2) + or7[6] * x + or7[7]
yorde8 = or8[0] * (x * 8) + or8[1] * (x * 7) + or8[2] * (x * 6) + or8[3]
* (x * 5) + or8[
4] * (x * 4) + or8[5] * (x * 3) + or8[6] * (x ** 2) + or8[7] * x + or
8[8]
N = len(y)
for i in range(len(y)):
Y1 = np.sum(((y[i] - yorde1[i]) ** 2) / N)
Y2 = np.sum(((y[i] - yorde2[i]) ** 2) / N)
Y3 = np.sum(((y[i] - yorde3[i]) ** 2) / N)
Y4 = np.sum(((y[i] - yorde4[i]) ** 2) / N)
Y5 = np.sum(((y[i] - yorde5[i]) ** 2) / N)
Y6 = np.sum(((y[i] - yorde6[i]) ** 2) / N)
Y7 = np.sum(((y[i] - yorde7[i]) ** 2) / N)
Y8 = np.sum(((y[i] - yorde8[i]) ** 2) / N)
eror1 = np.sqrt(Y1)
eror2 = np.sqrt(Y2)
eror3 = np.sqrt(Y3)
eror4 = np.sqrt(Y4)
eror5 = np.sqrt(Y5)
eror6 = np.sqrt(Y6)
eror7 = np.sqrt(Y7)
eror8 = np.sqrt(Y8)
print('Nilai Eror Regresi Orde 1 = ', eror1)
print('Nilai Eror Regresi Orde 2 = ', eror2)
print('Nilai Eror Regresi Orde 3 = ', eror3)
print('Nilai Eror Regresi Orde 4 = ', eror4)
print('Nilai Eror Regresi Orde 5 = ', eror5)
print('Nilai Eror Regresi Orde 6 = ', eror6)
print('Nilai Eror Regresi Orde 7 = ', eror7)
print('Nilai Eror Regresi Orde 8 = ', eror8)
plt.plot(1, eror1, '*k', label='Orde 1')
plt.plot(2, eror2, '*g', label='Orde 2')
plt.plot(3, eror3, '*b', label='Orde 3')
plt.plot(4, eror4, '*r', label='Orde 4')
plt.plot(5, eror5, '*y', label='Orde 5')
plt.plot(6, eror6, '*c', label='Orde 6')
plt.plot(7, eror7, '*', color='magenta', label='Orde 7')
plt.plot(8, eror8, '*m', label='Orde 8')
plt.title('Cross-Plot Eror vs Orde Polynomial')
plt.xlabel('Orde (n)')
plt.ylabel('Nilai Eror(n)')
plt.legend()
plt.figure()
plt.plot(x, y, '--p', color='green', label='Data Observasi', markersize
=8)
plt.plot(x, yorde1, '-b', label='Orde 1', linewidth=3)
plt.plot(x, yorde2, '-k', label='Orde 2', linewidth=3)
plt.plot(x, yorde3, '-r', label='Orde 3', linewidth=3)
plt.plot(x, yorde4, '-y', label='Orde 4', linewidth=3)
plt.plot(x, yorde5, '-c', label='Orde 5', linewidth=3)
plt.plot(x, yorde6, '-m', label='Orde 6', linewidth=3)
plt.plot(x, yorde7, '-', color='grey', label='Orde 7', linewidth=3)
plt.plot(x, yorde8, '-', color='purple', label='Orde 8', linewidth=3)
plt.title('Polynomial Regression')
plt.xlabel('Waktu (sekon)')
plt.ylabel('T (nT)')
plt.legend()
plt.show()
#Muhammad Ichsan 12117143
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import pyplot
from statsmodels.graphics.tsaplots import plot_acf
data = np.loadtxt("poroperm.txt", skiprows=1)
y = data[:,1]
x = data[:,2]
z = data[:,3]
plot_acf(y)
plt.figure(1)
plot_acf(x)
plt.figure(2)
plot_acf(z)
plt.figure(3)
plt.show()
#Muhammad Ichsan 12117143
import numpy as np
import statistics as st
import matplotlib.pyplot as plt
data = np.loadtxt('poroperm.txt', skiprows = 1)
x = data[:,0]
y = data[:,1]
coefint1 = np.polyfit(x,y,1)
ypred1 = coefint1[0]*x + coefint1[1]
koef_kor = st.corr_coeff(x,y)
plt.scatter(x,y)
plt.plot(x, ypred1)
plt.title('korelasi positif (+1)')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()
print('Koefisien Korelasi XY :', koef_kor)
• Script Soal 3
import numpy as np
import statistics as st
import matplotlib.pyplot as plt
data = np.loadtxt('independent.txt', skiprows = 1)
x = data[:,0]
y = data[:,1]
coefint1 = np.polyfit(x,y,1)
ypred1 = coefint1[0]*x + coefint1[1]
koef_kor = st.corr_coeff(x,y)
plt.scatter(x,y)
plt.plot(x, ypred1)
plt.title('korelasi positif (0)')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()
print('Koefisien Korelasi XY :', koef_kor)
Autokorelasi Permeabilitas
Autokorelasi Porositas
• Output Soal 3
Analisis
Pada Soal nomor 1 dilakukan analisa regresi polinomial untuk mengetahui
kecenderungan suatu data. Sehingga dari kecenderungan tersebut kita dapat mengetahui
hubungan atau trend antara data waktu (s) dengan T (nT), mengetahui nilai error
masing-masing orde, dan memperlihatkan over-fitting pada masing-masing regresi. Dari
hasil regresi yang dilakukan nilai error minimum ada pada orde 1 yaitu sebesar
61.17441722877276 sedangkan nilai error maksimum ada pada orde 8 yaitu sebesar
1869.2500757805396. Hal ini menunjukkan bahwa data observasi setelah dilakukan
regresi polinomal memiliki kecenderungan yang tidak fit jika orde semakin diperbesar.
Dari data observasi koreksi harian tersebut menunjukkan keadaan over-fitting. Pada
orde 7 model yang ditampilkan akan berfungsi sangat baik dalam memisahkan data
waktu (s) dari T (nT) namun pada kenyataannya saat data baru ditambah kepada model
tersebut, model akan tidak sesuai dengan data baru yang ditambah. Model yang over-
fitting memiliki error yang mulai mengecil (954.7515897967035) diantara orde 6 dan 8
tetapi berfungsi dengan buruk saat memprediksi data baru. Over-fitting disebabkan oleh
pembuatan model yang lebih kompleks dari yang diperlukan. Cara mengatasinya
gunakan teknik sampel ulang untuk memperkirakan akurasi model. Dimana nantinya
akan melakukan validasi beberapa kali dengan perbandingan data yang berbeda sampai
menemukan akurasi yang cukup optimal. Dan cek Kembali validitas dari set data.
Pada Soal nomor 2 dilakukan analisa Auto-Korelasi dan Cross-Korelasi pada data
porositas, permeabilitas dan log permeabilitas dengan panjang lag ditentukan secara
random. Dari hasil Auto-Korelasi antara data nilai (+) menunjukkan bahwa korelasi
antar data berbanding lurus dan nilai (-) menunjukkan bahwa korelasi antar data
berbanding terbalik.
Pada Soal nomor 3 dilakukan analisa dua set data sekuens. Dari dua set data sekuens
tersebut memperlihatkan nilai korelasi sebesar -0.0013780520333363572. Hal ini
mengindikasikan lemahnya hubungan antara dua set data sekuens tersebut. Kemudian
tanda (-) menunjukkan korelasi antara dua set data sekuens bersifat berlawanan.
Peningkatan nilai variabel X akan dibarengi dengan penurunan variabel Y.
V. Kesimpulan
Pada praktikum kali ini dapat diambil kesimpulan, yaitu:
1. Semakin besar orde yang digunakan maka nilai error regresi semakin besar.
2. Over-fitting terjadi pada orde 7 yang disebabkan oleh pembuatan model yang
lebih kompleks dari yang diperlukan.
3. Nilai (+) menunjukkan bahwa korelasi antar data berbanding lurus dan nilai (-)
menunjukkan bahwa korelasi antar data berbanding terbalik.
4. Nilai korelasi 0 mengindikasikan lemahnya hubungan antara dua set data sekuens.
DAFTAR PUSTAKA
Bailey, Kenneth D. (1994). Methods of Social Research. 4th ed. New York: The Free Press
SS SCRIPT SOAL 1
SS SCRIPT SOAL 2
SS SCRIPT SOAL 3