Veri Analizi ve Makine Öğrenimi - 1 : Lineer Regresyon (Temel Borsa & Finans Analizleri için)

WarrenBuffett

Uzaklaştırıldı
Katılım
8 May 2023
Mesajlar
823
Tepki puanı
76
Puanları
28
Konum
İzmir
Cinsiyet
Erkek
Yetersiz verilere dayanarak erken teoriler oluşturmanın cazibesi mesleğimiz için ölümcüldür.
"Sherlock Holmes"

Veri Bilimi ve Verilerin İşlenmesi​

Yoğunlaşmış ve sınıflandırılmamış verilerden doğru sonuçlar elde etmek oldukça zorlu bir süreçtir. Bu süreçlerin işlemleri oldukça detaylı ve farklı formülleri birleştirmekten geçer. Çünkü verilerin ham haliyle karşımıza çıktığı durumlar onların bize tam da doğruyu söylemedikleri yerler olarak kabul edilir. Bilginin eyleme dönüştürülebilmesi için öncelikli olarak belirli süzgeçlerden geçirilmesi, uygun olan verilerin alınıp işlenmesi ve formüle edilmesi gerekmektedir. Aksi takdirde yanlış veriler işlenmeden, yanlış sonuçlar doğurabilir. Veri bilimcisi (analizcisi) önce verileri toplayıp sonrasında bunları formüle ederek doğru sonuca ulaşan ve bu sonuçlar doğrultusunda raporlar hazırlayıp şirketlere & devletlere istatiksel sunum yapan kişilerdir.

Yani Veri bilimcisi, verileri topladıktan sonra yazdığı programlar ile veriyi işleyip kullanılır hale getiren bir çeşit teknik analisttir.

Lineer Regresyon (Korelasyon)​

Bir bağıntılı değişken ile bir veya daha fazla bağıntısız değişken arasındaki lineer (doğrusal) ilişkiyi bulmak için kullanılan bir ön hesaplamalı yönteme Lineer Regresyon denir. Bu yöntem çok sık kullanılır çünkü modellemesi korelasyon alanındaki en basit sistemlerden birisidir. Temel de, verileri belirli bir lineer çizgide izleyip sonrasında ortalama hesaplaması ile en olası sonuçları ortaya koymaktadır. Algoritmaları da en çok kullanılan korelasyon türüdür.

Model nedir?

Model dediğimiz sistem aslında sizin geliştirdiğiniz algoritmik bir veri analizi programından başka bir şey değildir.

Teori
Veri analizi mütemadiyen grafiklerden ve grafikler üzerindeki hesaplanmış verilerden oluşur. Lakin bu grafiklerde geçen her doğrusal düzlemin(verinin) bir denklemi vardır:

y = mx + c
Bu denklem nereden geliyor?

Aynı x ve y değerlerine sahip iki veri kümemiz olduğunu varsayalım:

xy
11
22
33
44
55
66
Değerlerin grafikte çizilmesi şu şekilde olacaktır:
1689514499981.png
Peki y, x'e eşit olduğu için doğrumuzun denklemi y=x olacaktır, değil mi? Tabii ki Değil!

Grafiğe göre formülü hesaplarsak;

y=x matematiksel olarak y=1x ile aynıdır, veri biliminde ise bu oldukça farklıdır, doğrunun formülü y=1x olacaktır, burada 1, doğru ile x ekseni arasındaki açıdır, bu açı, doğrunun eğimi olarak da bilinir,

eğimi tanımlarsak,

eğim = y'deki değişim / x'deki değişim = m (eğim, m olarak ifade edilir. Eğim, grafikler arası kesişmedeki fiyat ortalamasıdır).
Formülümüz şimdi y = mx olacaktır.

Son olarak, denklemimize bir sabit eklememiz gerekiyor, bu, x sıfır olduğundaki y'nin değeridir, diğer bir deyişle doğru y eksenini kestiğindeki y'nin değeridir.

Sonuç olarak,

denklemimiz y = mx + c olacaktır (bu, veri biliminde bir modelden başka bir şey değildir),
burada c, y-kesimi yani x ile kesiştiği noktadaki korelasyondur.

Basit Lineer Regresyon​

Basit lineer regresyon, bir bağıntılı değişkene ve bir bağıntısız değişkene sahiptir. Burada iki değişken arasındaki ilişkiyi anlamaya çalışıyoruz, örneğin bu, bir hisse senedi fiyatındaki değişimin SMA (Basit Hareketli Ortalama) ’daki değişimle olan ilişkisi olabilir.

Karmaşık Veriler

Hisse senedinin fiyatına göre gösterge değerlerini alıp grafikte çizdiğimizde aşağıdaki gibi rastgele dağılmış gösterge değerlerini elde ettiğimizi varsayalım (gerçek hayatta da durum böyledir).

(hisse senedi fiyatına göre alınan gösterge değerlerinin dağılım grafiği)
Bu durumda, göstergemiz/bağımsız değişkenimiz hisse senedi fiyatımızın/bağımlı değişkenimizin iyi bir veri görüntüleyicisi olmayabilir.

Veri korelasyon uygulanması gereken ilk filtre, lineer modele dahil edilmemeleri adına hedefinizle yüksek düzeyde ilişkili olmayan tüm sütunları kaldırmaktır.

Lineer(doğrusal) olmayan ilişkili verilerle lineer bir model oluşturmak büyük bir temel hatadır; dikkatli olun!
İlişki ters olabilir ancak güçlü olmalıdır ve lineer ilişkiler aradığımızdan dolayı, bulmak istediğiniz şey de budur.


Peki, bağıntısız değişken ile hedefimiz arasındaki fiyatlamayı nasıl ölçeceğiz? Bunun için, korelasyon katsayısı olarak bilinen bir metrik kullanıyoruz.

Korelasyon Katsayısı

Bu makalenin ana örneği olarak kullanılacak bir veri kümesi oluşturmak adına bir komut dosyası kodlayalım. NASDAQ için öngörücüleri bulalım.
Python:
input ENUM_TIMEFRAMES timeframe = PERIOD_H1;
input int               maperiod = 50;
input int               rsiperiod = 13;

int  total_data = 744;
//+------------------------------------------------------------------+
//| Program Start                            |
//+------------------------------------------------------------------+
void OnStart()

{
string file_name = "NASDAQ_DATA.csv"; //--- Nasdaq Borsa Verisi
string nasdaq_symbol = "#NQ100", s_p500_symbol ="#SP500";

//---

int handle = FileOpen(file_name,FILE_CSV|FILE_READ|FILE_WRITE,",");
if (handle == INVALID_HANDLE)

{
Print("data to work with is nowhere to be found Err=",GetLastError());
 }

//---
MqlRates nasdaq[];
ArraySetAsSeries(nasdaq,true);
CopyRates(nasdaq_symbol,timeframe,1,total_data,nasdaq);
//---
MqlRates s_p[];
ArraySetAsSeries(s_p,true);
CopyRates(s_p500_symbol,timeframe,1,total_data,s_p);
//--- MA Verisi (Hareketli Ortalama)

int ma_handle = iMA(nasdaq_symbol,timeframe,maperiod,0,MODE_SMA,PRICE_CLOSE);
double ma_values[];
ArraySetAsSeries(ma_values,true);
CopyBuffer(ma_handle,0,1,total_data,ma_values);

//--- RSI Verisi
int rsi_handle = iRSI(nasdaq_symbol,timeframe,rsiperiod,PRICE_CLOSE);
double rsi_values[];
ArraySetAsSeries(rsi_values,true);
CopyBuffer(rsi_handle,0,1,total_data,rsi_values);
//---
if (handle>0)
{
FileWrite(handle,"S&P500","NASDAQ","50SMA","13RSI");
for (int i=0; i<total_data; i++)
{
string str1 = DoubleToString(s_p[i].close,Digits());
string str2 = DoubleToString(nasdaq[i].close,Digits());
string str3 = DoubleToString(ma_values[i],Digits());
string str4 = DoubleToString(rsi_values[i],Digits());
FileWrite(handle,str1,str2,str3,str4);
}
}
FileClose(handle);
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Komut dosyasında NASDAQ ve S&P 500 kapanış fiyatlarını ve 50 periyotluk SMA (Basit Hareketli Ortalama), 13 periyotluk RSI değerlerini topladık. Verileri bir CSV dosyasında başarılı bir şekilde topladık, şimdi verileri Python'da Anaconda üzerinde Jupyter Notebook ile görselleştireceğiz. Makinelerinde Anaconda kurulu olmayanlar için bu yazıda kullanılan veri bilimi Python kodunu Google Colab'da çalıştırabilirsiniz.

Test komut dosyamız tarafından oluşturulan CSV dosyasını açmadan önce, Python tarafından okunabilmesi için onu UTF-8 kodlamasına dönüştürmeniz gerekir. CSV dosyasını not defteri ile açın ve UTF-8 kodlaması halinde kaydedin. Dosyayı dış dizine kopyalamak iyi bir şey olacaktır, böylece o dizine bağlanmak istediğinizde Python tarafından ayrı olarak okunacaktır, Pandas kullanarak CSV dosyasını okuyalım ve veri değişkeninde depolayalım.

Pandas ile CSV dosyasını okuma

Genişletmek için tıkla ...
Genişletmek için tıkla ...
Seaborn ile birden çok grafikte verileri görselleştirme

Genişletmek için tıkla ...
Genişletmek için tıkla ...
Çıktı aşağıdaki gibidir:

Verilerin görsel sunumundan, NASDAQ ile S&P 500 arasında çok güçlü bir ilişki olduğunu, NASDAQ ile 50 periyotluk SMA arasında da güçlü bir ilişki olduğunu görebiliyoruz. Daha önce de belirttiğimiz gibi, veriler grafiğin her tarafına dağıldığında, lineer ilişkiler bulmaya çalışıyorsak, bağımsız değişken hedefin iyi bir öngörücüsü olmayabilir. Ancak korelasyon konusunda sayıların söylediklerine bakalım, görsel olarak değil sayılara dayalı olarak sonuç çıkaralım. Değişkenlerin birbirleriyle nasıl ilişkili olduğunu anlamak adına korelasyon katsayısı olarak bilinen metriği kullanacağız.

RSI: Göreli güç endeksi (ing. relative strength index) finans piyasaların analizinde kullanılan bir teknik indikatördür. 1978 yılında J. Welles Wilder tarafından geliştirilmiştir ve ilk kez isimli kitabında yayınlanmıştır. RSI bir momentum osilatörüdür ve basitçe aşırı alım - aşırı satım sinyalleri üretir. Fiyatın yükselişindeki ve düşüşündeki dengesizlikleri ve bu dengesizliklerin normalleşme hızını ölçer.

Devamı gelecektir. Alıntı ve derlemedir.
 

döngüsel

Don't give up!
Süper Mod
Katılım
22 Tem 2020
Mesajlar
5,714
Tepki puanı
2,492
Puanları
113
Konum
.
Cinsiyet
Kadın
Hiçbir şey anlamadım ama güzel konu, teşekkürler.
 

WarrenBuffett

Uzaklaştırıldı
Katılım
8 May 2023
Mesajlar
823
Tepki puanı
76
Puanları
28
Konum
İzmir
Cinsiyet
Erkek
Hiçbir şey anlamadım ama güzel konu, teşekkürler.
Biraz istatistik ve denklem grafiği bilmek gerekiyor. Aslında Lisede ki temel konulardan birisi ama, bizlere okulda bu yönleri hiç öğretilmedi. Gayet de kolay (programlama tarafı hariç) x ve y düzleminin kesiştiği üçgen alan korelasyon (yoğunluk) alanı. Ona göre hesap kitap yapıyorsun. (Piyasadaki hisse grafikleri için.)
 

veronikaolmekistiyor

Uzaklaştırıldı
Katılım
26 Şub 2023
Mesajlar
215
Tepki puanı
131
Puanları
43
Yaş
33
Konum
Türkiye
Cinsiyet
Erkek
Ekonometri okuyan biri olarak , üniversite zamanında tanıdık gelen hususlar şimdi birer uzak kalıyor bana. SPSS ve E-views ile güzel br sonuç elde edilebiliyor. Ama işte kullanabilmek mesele.

Geçmiş verilerle, bir hissenin trendi çözülebilir ve öngörülebilir grafiği. Keşke yapabilsek :D
 

WarrenBuffett

Uzaklaştırıldı
Katılım
8 May 2023
Mesajlar
823
Tepki puanı
76
Puanları
28
Konum
İzmir
Cinsiyet
Erkek
Ekonometri okuyan biri olarak , üniversite zamanında tanıdık gelen hususlar şimdi birer uzak kalıyor bana. SPSS ve E-views ile güzel br sonuç elde edilebiliyor. Ama işte kullanabilmek mesele.

Geçmiş verilerle, bir hissenin trendi çözülebilir ve öngörülebilir grafiği. Keşke yapabilsek :D
Hisselerin zaten geçmişine bakarak geleceği tahmin edebilme şansın yoktur. Bunu ekonometri okumuş biri olarak en iyi sen bilirsin. SPSS ve E-Views gibi programlar artık antika oldular yani ikisinin piyasaya sürülme yaşı bugün 45 yaşında olanlardan bile fazla :D :D :D Yeni nesil veri analizi ve lineer korelasyon hesabı yapan teknik analiz yazılımları daha güzel sonuç veriyor.

Lakin fiyat hesaplamasında birçok enstrüman gerekiyor. Kâr durumu, enflasyon, faaliyet raporları vs. Konu aslında göründüğü gibi karışık bir konu değil. Sadece aralıkları hesap etmek ve buna bağlı korelasyon haritasını (nam-ı diğer fiyat hareketini) görmek gerekiyor. Sonrası şirketin faaliyet raporlarına ve sürdürülebilir kârlılığına kalıyor. Geri kalanı da teknik analiz işte.
 

Fluffy

🐼
Elmas Üye
Katılım
28 Şub 2023
Mesajlar
20,559
Çözümler
1
Tepki puanı
2,856
Puanları
113
Yaş
34
Konum
Miuw
Cinsiyet
Kadın
Bilmediğim şeyler ama havalı duruyor
 

ConteS

👑
Gümüş Üye
Katılım
31 May 2023
Mesajlar
1,707
Tepki puanı
387
Puanları
83
Yaş
26
Konum
Astrall
Cinsiyet
Kadın
anladıysam arap olayım knk
 
Üst Alt