Uluslararası Borç İstatistiklerini Analiz Edin

Proje Açıklaması

Sadece insanlar ihtiyaçlarımızı yönetmek için borç almaz. Bir ülke ekonomisini yönetmek için borç alabilir. Örneğin, altyapı harcamaları, bir ülke vatandaşının rahat bir yaşam sürmesi için gerekli maliyetli bir bileşendir. The World Bank ülkelere borç veren kuruluştur.

Bu projede, Dünya Bankası tarafından toplanan uluslararası borç verilerini analiz edeceğiz. İsterseniz bu veri setiyle siz çok daha farklı çıkarımlar yapabilirsiniz 🙂 . Ama biz temel seviyede çıkarımlar yapacağız. Veri seti, gelişmekte olan ülkelerin çeşitli kategorilerde borçlarının (ABD Doları cinsinden) miktarı hakkında bilgi içermektedir. Aşağıdaki gibi soruların cevaplarını bulacaksınız:

Veri kümesinde listelenen ülkelerin borçlarının toplam tutarı nedir?

Hangi ülke maksimum borç tutarına sahiptir ve bu miktar nedir?

Farklı borç göstergelerindeki ülkelerin borçlarının ortalaması ne kadardır?

Giriş seviyede SQL bilginiz projeyi anlamak için yeterli olacaktır.

Bu projede kullanılan veriler Dünya Bankası tarafından sağlanmaktadır. 1970’den 2015’e kadar kaydedilen dünyadaki birçok ülke için hem ulusal hem de bölgesel borç istatistiklerini içermektedir.

Adım 1: Dünya Bankası’nın uluslararası borç verileri

İlk kod satırı bizi international_debt tablosunun bulunduğu international_debt veritabanına bağlar. Önce international_debt tablosundaki tüm sütunları Select ile seçiyoruz. Ayrıca, temiz tutmak için çıktıyı ilk on satırla sınırlayacağız.

Adım 2. Farklı ülkelerin sayısını bulmak

İlk on sıradan Afganistan’ın borç borcunu farklı borç göstergelerinde görebiliyoruz. Fakat masadaki farklı ülkelerin sayısını bilmiyoruz. Bir ülke adını birden çok defa görebilirsimiz, çünkü bir ülkenin birden fazla borç göstergesinde borcu olması muhtemeldir.

Bir dizi benzersiz ülke olmadan, istatistiksel analizlerimizi bütünsel olarak gerçekleştiremeyiz. Bu bölümde, tabloda mevcut olan benzersiz ülke sayısını çıkaracağız.

Adım 3: Farklı borç göstergelerini bulma

Masada toplam 124 ülke var. İlk bölümde gördüğümüz gibi, borcu almanın amacını kısaca belirten indicator_name adlı bir sütun var. Bu sütunun hemen yanında, bu borçların kategorisini simgeleyen indicator_code adlı başka bir sütun daha vardır. Bu çeşitli borç göstergelerini bilmek, bir ülkenin borçlanabileceği alanları anlamamıza yardımcı olacaktır.

Adım 4: Ülkelerin borçlarının toplamı

Daha önce de belirtildiği gibi, belirli bir ülkenin mali borcu ekonomik durumunu temsil eder. Fakat bunu genel bir küresel ölçekte yansıtacak olsaydık, ona nasıl yaklaşacağız?

Şimdi borç göstergelerinden vites değiştirelim ve farklı ülkelerin borçlarının toplam tutarını (ABD Doları cinsinden) öğrenelim. Bu bize tüm dünyadaki genel ekonominin nasıl durduğuna dair bir fikir verecektir.

Adım 5: En yüksek borcu olan ülke

“Human beings cannot comprehend very large or very small numbers. It would be useful for us to acknowledge that fact.” – Daniel Kahneman.

 Bu, 3 milyon milyon USD’den fazla, bizim için gerçekten anlaması zor olan bir miktar.

Şimdi birkaç ülkenin borçlarının toplam tutarına sahip olduğumuza göre, miktarla birlikte en yüksek borç miktarına sahip olan ülkeyi bulalım. Bu borcun, bir ülkenin çeşitli kategorilerde borçlu olduğu farklı borçların toplamı olduğunu unutmayın. Bu, sosyo-ekonomik senaryolar açısından ülke hakkında daha fazla bilgi edinmeye yardımcı olacaktır. Ülkenin en yüksek borcuna sahip olduğu kategoriyi de bulabiliriz. Ama şimdilik bakmayacağız.

Adım 6: Göstergeler arasındaki ortalama borç miktarı

Yani Çin’di. Çin’in borçlarının daha ayrıntılı bir dökümünü burada.bulabilirsiniz.

Şimdi veri kümesine ve özet istatistiklerinden birkaçına kısa bir genel bakış sunuyoruz. Ülkelerin borçlarını borçlu oldukları farklı borç göstergeleri hakkında zaten bir fikrimiz var. Bir ülkenin ortalama olarak ne kadar borcu olduğunu bulmak için daha fazla araştırma yapabiliriz? Bu bize borç miktarının farklı göstergeler arasında dağılımını daha iyi anlatacaktır.

Adım 7: En yüksek anapara geri ödemesi

DT.AMT.DLXF.CD göstergesinin ortalama borç tablosunun üzerinde olduğunu görebiliriz. Bu kategori uzun vadeli borçların geri ödenmesini içerir. Ülkeler ani sermaye elde etmek için uzun vadeli borç alırlar. Bu kategori hakkında daha fazla bilgiyi burada. bulabilirsiniz.

Yukarıdaki bulgudaki ilginç bir gözlem, ikincisinden sonraki göstergelerin miktarlarında büyük bir fark olduğudur. Bu, ilk iki gösterge ülkelerin borçlarını borçlu oldukları en ciddi kategoriler olabileceğini göstermektedir.

Uzun vadeli borçlar kategorisinde (DT.AMT.DLXF.CD) hangi ülkenin en fazla borç borcuna sahip olduğunu bulmak için bunu biraz daha araştırabiliriz. Bütün ülkeler aynı türden ekonomik sıkıntılardan muzdarip olmadığından, bu bulgu, o ülkenin ekonomik durumunu biraz daha spesifik olarak anlamamıza izin verecektir.

Adım 8: En yaygın borç göstergesi

Çin, uzun vadeli borç (DT.AMT.DLXF.CD) kategorisinde en yüksek borç miktarına sahiptir. Bu The World Bank tarafından doğrulanmıştır.

Ortalama borç miktarı söz konusu olduğunda uzun vadeli borcun en üst kategori olduğunu gördük. Fakat ülkelerin borçlarını borçlu oldukları en yaygın gösterge bu mudur? Bunu bulalım.

Adım 9: Diğer geçerli borç sorunları ve sonuç

Veri setimizde listelenen tüm ülkelerin borç aldıkları toplam altı borç göstergesi vardır. DT.AMT.DLXF.CD göstergesi de listede bulunuyor. Bu bize tüm bu ülkelerin ortak bir ekonomik sorundan muzdarip olduğuna dair bir ipucu veriyor. Ama bu hikayenin sonu değil, hikayenin bir parçası.

Şimdi debt_indicators da parçaları değiştirelim ve tekrar borç miktarına odaklanalım. İlgili ülke isimleriyle birlikte göstergeler arasındaki maksimum borç miktarını bulalım. Bununla bir ülkenin yaşayabileceği diğer makul ekonomik sorunları belirleyecek bir konumda olacağız. Bu bölümün sonunda, bir ülkenin en yüksek borcuna sahip olduğu borç göstergelerini öğrenmiş olacağız.

Bu not defterinde, dünyanın dört bir yanındaki ülkelerin borçlarını inceledik. Verilerden birkaç özet istatistik çıkardık ve bazı ilginç gerçekleri ve rakamları ortaya çıkardık. Ayrıca, araştırmaların doğru olduğundan emin olmak için bulgularımızı doğruladık.

Temel sql bilginiz varsa tekrar yapmanıza olanak sağlamıştır 🙂 . Sonuna kadar geldiğiniz için teşekkürler 🙂

Exploring the Cryptocurrency

Bu projeyi farklı kripto para birimlerinin piyasa değerlerini, büyümesini ve etkisini anlamak amaçlı yapıyoruz. Adım adım açıklamalar yaparak ilerleyeceğiz. Ben bu projeyi datacamp sitesinde yaptım. Sizde kendinizi geliştirmek amaçlı bu siteyi kullanabilirsiniz.

Adım 1 :Bitcoin ve Kripto para birimleri: Full dataset, filtering, and reproducibility

Bitcoin’in 2008 yılında piyasaya sürülmesinden bu yana, blockchain teknolojisine dayanan yüzlerce benzer proje ortaya çıktı. Biz bunlara kripto paralar diyoruz. Bazıları günümüzde son derece değerlidir ve diğerleri gelecekte son derece değerli olma potansiyeline sahip olabilir. 6 Aralık 2017’de Bitcoin, 200 milyar doların üzerinde bir piyasa değerine sahiptir.

Figu2017’de Bitcoin piyasa değerindeki şaşırtıcı artış.

Yuakarıda sadece 10 adet kripto para birimi gösteriliyor bunu çözmek için 6 Aralık 2017 ye air bir CSV dosyası yükleyeceğiz ve https://api.coinmarketcap.com/v1/ticker/?limit=0  adresinden adı datasets/coinmarketcap_06122017.csv olan API kullanacağız. İlk olarak datalarımızın içerdiği dosyayı yüklüyoruz ve dec6 ya atıyoruz. Market_cap_raw içindeki değerlerin sayısını saymak ve yazdırmak için count () kullanıyoruz.

Adım 2: Piyasa Değeri Olmayan Kripto Paraları Atalım

Piyasa değeri olmayan değerler NaN olarak sayılır ve countla sayılmazlar. Kaldırmamız bizim için daha sağlıklı olacaktır. Nan değerleri kaldırıp cap e atayalım.

Adım 3: Bitcoin, kripto para birimlerinin geri kalanıyla karşılaştırıldığında ne kadar büyük?

Bitcoin tüm piyasada baskın ama gözlemlemek için bir barplot yardımıyla bakalım. (İndexle cap10 a atadık ve ilk 10 değeri döndürdük. USD nin 100 lük kullanımını assign ettik. ve x ve y label açıklamalrı ekledik.)

Adım 4: Plotun daha okunabilir ve bilgi verici hale getirilmesi

Yukarıdaki grafik yeterince bilgilendirici olmakla birlikte geliştirilebilir. Bitcoin çok büyük ve bu nedenle diğer paraları ayırt etmek zor. Yüzde yerine, “raw” büyük / küçük harfler için log10 ölçeğini kullanalım. Ek olarak , benzer paraları gruplamak ve çizimi daha bilgilendirici hale getirmek için renk kullanalım.

For the colors rationale: bitcoin-cash and bitcoin-gold are forks of the bitcoin blockchain2. Ethereum and Cardano both offer Turing Complete smart contracts. Iota and Ripple are not minable. Dash, Litecoin, and Monero get their own color.

Adım 5: Kripto para birimindeki değişkenlik

Kripto para piyasası, ilk borsa açılmasından bu yana oldukça dalgalı bir seyir izledi. Hadi bu oynaklığı biraz daha keşfedelim! Halihazırda elimizde olan 24 saat ve 7 gün yüzde değişimini seçerek ve çizerek başlayacağız.

Adım 6: Büyük Değişiklikler

Kripto para birimlerinde çok fazla para kaybedebileceğiniz anlaşılıyor. Piyasa değerindeki en büyük 10 kazancı ve en büyük 10 kaybedene bakalım.

Adım 7: Haftalık serileri de kontrol edelim

Adım 8: Ne kadar küçük?

Yukarıdaki kripto paraların isimleri oldukça bilinmiyor ve yüzde 1 ila 7 gün arasında önemli bir dalgalanma var. Hisse senetleri ve diğer finansal ürünlerde olduğu gibi, büyük harf kullanımı ne kadar küçük olursa, risk ve ödül de o kadar büyük olur. Daha küçük kripto para birimleri genel olarak daha az istikrarlı projelerdir ve bu nedenle daha büyük olanlardan daha riskli yatırımlardır. Veri setimizi Investopedia’nın şirket hisse senetleri için büyük harf kullanım tanımlarına( definitions ) göre sınıflandıralım.

Adım 9: Paraların Çoğu Küçüktür

Birçok madeni paranın piyasadaki büyük şirketlerle karşılaştırılamayacağını unutmayın, bu yüzden kategorileri birleştirerek orijinal Investopedia tanımından sapalım.

Projeyi sonuna kadar incelediğiniz için teşekkürler 🙂

Big O

‘İyi kod’ nasıl yazılır?

İyi kod anlaşılabilirlik ve ölçülebilirlik özelliklerini taşıyan koddur. Anlaşılabilirlik kısmı başkaları tarafından okunduğunda akılda soru işaretleri kalmaması olarak açıklanabilir. Ölçülebilirlik kısmı ise Big O konusunu içeren kısımdır. Şimdi adım adım ölçülebilirlik ve big o konularına değineceğiz.

Aşağıda bir array girdisi alan gizembul() functionını oluşturduk ve gizemi bulmasını istedik.

Şimdide for döngüsünden önce ve sonra zaman ölçümü yaparak döngünün ne kadar sürede çalıştığını görelim.

Gördüğümüz gibi oldukça küçük bir süre ama daha büyük bir listede arama yapıldığında for döngüsü daha çok çalışacağı için çalışma süresi de artar. Şimdi 100 tane gizem içeren bir array oluşturalım ve çalışma süresine bakalım.

Görüldüğü gibi oldukça farklı, bu arrayi 1000 tane gizem içerecek yaparsanız sonuc daha da artacaktır.

2 farklı kişinin kendi bilgisayarlarında kod yazdığını düşünelim. Ayşe aynı işlevi yapan kodu 3.5 sn büyüklüğünde yazmış, Mine ise 1.5 sn. Mine daha iyi bir kod yazmış diyebilir miyiz? Tabi ki hayır. Bu da bir ölçüttür fakat kodun daha hızlı çalışması daha iyi diyebilmemiz için yeterli değildir. Bilgisayar hızı gibi diğer etkenler de göz önünde bulundurulmalıdır. Peki bunu nasıl anlarız?

Time Comlexity bir algoritmanın çalışması için gerekli süredir. Big O ise bir algoritmanın çalışması için geçen sürenin hesaplanması için kullanılan bir dildir. Big O kullanarak hangi algoritmanın daha iyi olduğuna karar verebiliriz. Burada yukarıdaki örnekte bahsettiğimiz sorunun yaşanmaması için geçen süreye değil kaç tane işlem yapıldığına bakılır. Big O ölçüm şeması aşağıdaki gibidir.

İlk başta oldukça karışık göründüğünün farkındayım fakat inceledikçe gayet anlaşılır hale gelecektir.:) Grafikte görüldüğü gibi elements sayısı artıp operations yani işlem azaldıkça kod iyidir diyebiliriz.(Big O ‘O(…)’ şeklinde ifade edilir.)

Peki gizembul fonksiyonunu big O ile ölçmek istersek nasıl ölçeriz?

Bu fonksiyonda her bir eleman için for döngüsü çalışır. Yani 100 elements içeren gizembul fonksiyonunun operations sayısı da 100 dür. Bu bir O(n) örneğidir. Linear Time olarak adlandırılır.

Peki fonksiyonumuz aşağıdaki gibi bir arraydeki ilk elemanı alan bir fonksiyon ise nasıl hesaplarız?

Bu fonksiyonda boxes arrayi 10 elamana yada 10000 elemana sahip olması bir şey değiştirmez. Bu bir O(1) – Constant Time ifadesidir. Çünkü array de sadece 1. eleman için işlem yapılır.

O(n) – Linear Time
O(1)- Constant Time

Peki Fonksiyonumuz yukarıdaki gibi olsaydı nasıl hesaplardık?

Her çektiğimiz eleman için bir tane O(1) hesaplanır. Bu fonksiyonda 2 eleman çekildiği için O(2), eğer 3 eleman çekilseydi O(3) olacaktı. Operations sayısı da doğru orantılı artacaktır.

Aşağıda bir fonksiyonun büyüklüğü her adımda yanlarına yorumlanarak gösterilmiştir.

Big O hakkında sorularınız için ‘https://www.quora.com/What-is-the-difference-between-big-oh-big-omega-and-big-theta-notations‘ sitesine göz gezdirebilirsiniz. Bu gibi siteleri aşağıda paylaşacağım.

Big O hesaplanırken temelde 4 kurala dikkat ederiz. Sırasıyla inceleyelim

1. Worst Case

Bir fonksiyon her zaman en kötü senaryoyu düşünerek yazılmalıdır. Örneğin ilk yaptığımız gizemiBul fonksiyonunda array list uzunluğu kadar for loopumuz dönecek. Listenin 10 elemanı varsa gizem in listenin kaçıncı sırasında olduğunun önemi yok. For döngüsü 10 defa çalışır.Gizem 4. sıradaysa if döngüsünün içerisinde console.log komutundan sonra break komutu kullanırız ki fazladan 6 defa daha dönmesin. Bunun gibi tüm worst case durumlarında en kötü senaryo düşünülerek kod yazılır ki big 0 büyümesin.

2. Remove Constants

Yukarıda Big O hesaplarken ‘O(3+4n)’ gibi bir değer bulmuştuk. Fakat normalde sonuç böyle olmaz. Big O grafiğinden gösterdiğimiz değerlere sahip olur. Aşağıdaki örnek kod parçasını hesapladığımızda Big O(1+n/2+100) gibi bir değer ortaya çıkar ama bu değer grafikte yer almıyor. O(1+n/2+100)>O(n/2+101) > O(n) şeklinde bir dönüşüm yaşanır. n’nin çok büyük ve belirsiz bir değer olduğunu düşürsek onun 2 ye bölünmesi de sayısal bir değerle toplanması da bizim için anlamsızdır.

Eğer bir kod parçasında 2 tane for döngümüz var ise büyüklük O(2n) dir. Buda O(n) e eşittir. Fakat bu büyüklük grafikteki O(n) aralığının daha yukarısında yer alır çünkü daha fazla operasyon içerir.

3. Different Terms for Inputs

Eğer bir fonksiyon 2 tane for döngüsü içeriyorsa yukarıda O(2n) büyüklüğündedir ve buda O(n) e eşittir demiştik. Peki bu fonksiyon 2 farklı inputa sahipse ve for döngüleri farklı inputlarla çalışıyorsa? Bu durumda maalesef yukarıdaki gibi O(n) olmaz. O(a+b) gibi bir değere sahip olur. Peki bu for döngüleri iç içeyse? Örneğin;

Her bir karakter için karakter sayısı kadar döngüyü çalıştırdı. Bu da O(n^2) ye eşittir. Grafikte bu değerin horrible bölgesinde olduğunu görürüz. Listedeki değer sayısı arttıkça, işlem arttıkça sonuç oldukça hızlı büyür. Bazen bu kırmızı bölgedeki değerleri nasıl sarı ve yeşil bölgeye çekeceğimize dair sorularla karşılaşabiliriz. Yukarıdaki gibi içiçe döngüler farklı inputlara sahip olsaydı sonuç O(a*b) olurdu.

4. Drop Non Dominants

Aşağıdaki örneği inceleyelim.

Burada O(n+n^2) değerini buluruz ve buda O(n^2) değerine eşit olur. 1. n değerini görmezden geliriz çünkü n^2 çok daha büyüktür ve her n değerini kapsar. O(n+100) deyinde n değerini seçiyoruz ya n değeri 100 den küçükse diye düşünebilirsinizz. Ama biz Big O hesaplarken çok büyük veriler üzerinde işlem yapıyoruz. Bu yüzden büyük aralığı n olarak görüyoruz.

NOT: Yukarıda sık sık arraylerden bahsettim, detaylı bilgi için; ‘https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array‘ .Object için; ‘https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object

Kısaca O(n!) konusuna da değinelim. Umarım hiç karşılaşmazsınız. Eğer karşılaşırsanız bir hata yapıyorsunuz demektir, grafikteki en dik eğri. Sahip olduğumuz her değişken için iç içe bir döngü demektir. Yinelenen her öge için bir döngü ekleniyor. Daha detaylı görmek için; ‘https://stackoverflow.com/questions/3953244/example-of-on

Bir kodun iyi olmasını okunabilirliğine ve ölçülebilirliğine bağlamıştık. Ölçülebilirliğini ise hızına ve belleğe bağlayabiliriz. Hız konusuna detaylıca değindik, hafize kısmı ise oldukça basit. Çok yer kaplıyor ise iyi değildir :). Hız konusu ‘Time Complexity’, hafıza konusu ise ‘Space Complexity’ olarak adlandırılır. Bazen kodar daha az yer kaplayacak hale getirilmeye çalışılır. Hafıza ne kadar input kullandığınız gibi durumlardan etkilenir. Inputlara müdahale edemesekde fonksiyonun içinde neler yaptığımızla hafızayı daha az kullanabiliriz.

Aşağıya ingilizce olarak yukarıda anlattıklarımın özetini iliştiriyorum.

Big O hangi algoritmanın en iyi olduğunu söyler. Big O sayesinde şirketler oldukça para birikimi yapabilir. Konuyu burada sonlandırıyorum :). Daha detaylı bilgiler için satır aralarında verdiğim linklerde araştırmalar yapabilirsiniz.

Bu notlar hem kendim için döküman oluşturmak hemde fikir sahibi olmak isteyen kişileri az da olsa kendimce yönlendirmek için yazılıyor 🙂

Orta Seviye R Programlama

Lojical Operatörler

& and | operatörleri herhangi bir sorguda kullanıldığında sonuç aşağıdaki gibidir.

1. değer2.değer& operatörü| operatörü
1111
1001
0101
0000

Lojical operatörler bir çok sorumuza cevap oluşturabilir. Örneğin ögrenciler adında bir listemiz olsun ve bu listede öğrenci notları yer alsın. ‘not=50|yas=15’ dersek notları 50 ye eşit olan öğrenciler ya da yaşları 15 e eşit olan öğrenciler görüntülenir. Burada yaşı 15 den farklı notu olan öğrenciler de yer alır, notu 50 den farklı 15 yaşındaki öğrenciler de yer alır. Fakat ‘not=50&yas=15’ dersek görüntülenen öğrenciler hem 15 yasında hemde 50 notunu almıştır.

#’aşağıdaki örneği inceleyip çıktısını anlayalım;

a<- 5
b <- 6 !(!(x < 5) & !!!(y > 13))

[1]FALSE

“If” Yapısı

If koşulu karşılaştırma amaçlı kullanılır. ‘if(şart){ detay}’ şeklinde kullanılması gerekir. detay kısmında yapılması gereken işlemler yer alır.

if(not<=50){ print(“daha çok çalışmalısın”) }

“else” ise if içerisindeki koşul sağlanmadığı durumda yapılması istenen işlemi içerir. Aşağıdaki örneği inceleyelim.

if(not>=8o) {
print(“çok iyi”))}
else if (not>=6o ) {
print(“iyi”)
} else {
print(“Kötü!”)
}

While Loop

While döngüsünde şart sağlanmayana kadar döngü devam eder. Örneğin koşul x>100 olursa x 100 veya 100 den büyük olana kadar döngü devam eder. ‘break’ komutu ile döngüye son verilir.

#Aşağıda eklediğim örnekte hız seviyesine göre uyarı veren bir döngü yazılmıştır. Eğer ilk print komutunun ardından break komutu olsaydı altındaki hiçbir komut çalışmazdı.

hız <- 64 while (hız > 30) {
print(paste(“Hız seviyeniz”,hız))
if (hız>48 ) {
print(“Hemen yavaşla!”)
hız<-(hız-11)
} else {
print(“Yavaşla!”)
hız<-(hız-6)
}

#10 a kadar olan sayıların toplamını gösteren bir döngü yazacak olursak.

i <- 1
a<-0
while (i <= 10) {
a<-a+i
print(paste(“yeni sayımız”,a))
i <- i + 1
}

For Loop

For da while gibi bir döngüdür. for ise şöyle kullanılır; for( i in liste_adı){döngü işlemleri;} yada for(i in 1:length(liste_adı)). 2. kullanımda i nin ‘liste_adı[[i]]’ şeklinde çağırıldığına dikkat etmek gerekir.

Aşağıda ise for döngüsünün bir çeşidini görüyoruz. filmler bir matris olsun. Satırlarını ‘nrow’ komutu ile sütunlarını ise ‘ncol’ komutu ile tararız. Matrisin içerisinde olan değerleri bize gösterir. Örnek çıktı; satır sayısı; 1 sütün sayısı; 3 içerik;the two popes

for (i in 1:nrow(filmler)) {
for (j in 1:ncol(filmler)) {
print(paste(“satır sayısı;”, i, “kolon sayısı;”, j, “içerik;”, filmler[i,j]))
}
}

Yukarıda 1 den 10 a kadar toplama işlemini for döngüsü ile yapalım;

a<-c(1,2,3,4,5,6,7,8,9,10)
b<-0
for(i in a){
b<-b+i
print(paste(“yeni değer”,b))
i<-i+1
}

‘break’ komutu for döngüsündede aynı şekilde kullanılabilir.

Fonksiyonlar

Bir işlevi, belirli bir görevi yerine getirmek için birlikte yapılandırılmış bir ifade bütünü olarak tanımlanabilir. R çok sayıda fonksiyona sahiptir ve kullanıcılar kendi fonksiyonlarını yazabilirler.

Bir fonksiyonun nasıl kullanıldığını öğrenmek için başına ‘?’ işareti koyarak foksiyonu çağırabiliriz.Örneğin ‘?mean’. Program size detaylıca açıklayacaktır.

‘mean(vector_adı)’ fonksyonu ile bir vektörün değerlerinin ortalması alınabilir. Diğer fonksiyonlarda olduğu gibi mean fonksiyonunun da içerisinde çeşitli argumanlar bulunur. Bunlardan en çok kullanılanları trim ve na.rm dir. trim default olarak 0 na.rm ise False gelir. İstersek bu argumanları manuel müdahale ile değiştirebiliriz. ‘na.rm=TRUE’ dersek NA değerleri görmezden gelir. trim ise ortalamaya ne kadar merkezli olarak hesaplayacağını belirtir.

‘abs()’ ile mutlak değer alınır.

Kendi fonksiyonumuzu ise aşağıdaki gibi yazabiliriz.

benim_fonk <- function(a){
a<-a+5
}

R da fonksiyonlara ulaşabilmek için paketleri indirmeniz gerekebilir. Bu işlem için sadece ‘install.packages(“paket_adı”)’ yazmanız yeterli olacaktır. ‘search()’ fonksiyonu ile paketlerin yüklü olup olmadığını görmemizi sağlar. Bir paketi yüklemek için ise ‘library(“paket_adı”)’ yazmamız yeterli olacaktır.

‘lapply()’ fonksiyonu ile listedeki herbir ögenin kaç elemanı içerdiğini döner. ‘lapply(liste_adı,char)’ ile listede kaç ader char türünde eleman olduğu bilgisine ulaşabiliriz. Çıktı yine liste şeklinde olur. Eğer çıktıyı liste olarak görmek istemiyorsan ‘unlist()’ şeklşnde kullanılabilir. ‘lapply(a_list, b_fonk)’ ise a listesinde b fonksiyonunu kullanarak işlem yapar sonucu döner. İçerisinde değişkene değer de atanabilir. Görüldüğü gibi fonksiyonlarla bir çok işlem yapılabiliyor.

‘sapply()’ ise üstünde çalıştığımız bir liste değilse kullanılır. lapply() foksiyonundaki özellikler bunda da geçerlidir. Sonuç vector olarak raporlanır.

‘vapply()’ da iste üsttekilerden farklı olarak fonksiyonun çıktısı bir koşul belirtir. ‘vapply(liste_adı, fonksiyon_Adı, numeric(3))’ dersek çıktı 3 numeric değerini taşımak zorunda ve fonksiyonda 3 tane değer var demektir. Değer vermediğimiz durumda otomatik olarak 1 değeri atanır.

Kullanışlı Fonksiyonlar

Yukarıda lapply(), sapply() ve vapply() fonksiyonlarından bahsettik. Aşağıda ise kısaca kullanışlı olan fonksiyonlara değineceğim.

abs(); mutlak değere çevirir.

round(); tam sayıya çevirir.

sum(); toplama işlemi yapar.

mean(); ortalamayı bulur.

#v1 ve v2 2 vektör olsun. Bu vektörlerde yukarıdaki tüm fonksiyonları kullanalım. İlk olarak her iki vectör içinde mutlak değeri bulduk. Ardından tam sayıya çevirdik ve değerlerini topladık. c ile vectör yapıp mean ile ortalama değerini bulduk.

mean(c(sum(round(abs(v1))),sum(round(abs(v2)))))

seq(); belirli aralıklarla ardışık sayı dizesi oluşturur. Örneğin seq(8,2,by=-2) dersek 8 den 2 ye kadar dizi oluşturur, dizi 2 şer olarak azalır.

rep();tekrarla fonksiyonudur. times=2 parametresi ile ne kadar tekrarlayacağını belirleriz. times yerine each=2 yazarsak diziyi tekrarlamak yerine her bir elemanı 2 defa tekrarlar.(1234 dizisi times=2 olursa 12341234 olur, each=2 olursa11223344 olur.)

sort();elemanlarıküçükten büyüğe doğru sıralar. Eğer büyükten küçüğe sıralamasını istersek içinde decreasing=TRUE değerini atarız.

append(); liste sonuna eleman ekler.

rev(); ters çevirir.

unlist(); vectöre dönüştürür.

str(); yapısını gösterir, içeriğinin detayını verir.

grepl();aratılan değerin içeririlip içerilmediğini TRUE, FALSE şeklinde döner. Kullanımı ‘grepl(pattern , x )’ şeklindedir. Burada pattern ile aradığımız örüntüyü x ile ise nerede aradığımızı belirtiriz.  Pattern kısmında “^” karakterini kullanarak örüntüyü karakterlerin başında, “$” karakterini kullanarak ise karakterlerin sonunda arayabiliriz. Ayrıca “\\.” ifadesiyle “.” yı bir karakter olarak kabul ettiririz ve R . dan sonraki istediğimiz karakteri arayabilir.(Pattern yerine örnek kullanımlar: “^k”; k ile başlasın, “k$”; k ile bitsin, “\\.k”; “.” dan sonra gelen k karakterleri)

grep();aratılan değer varsa direkt o değerin bulunduğu dizini döner.

Yukarıda örüntüleri nasıl arayabileceğimizi gördük. Şimdi bu bulduğumuz örüntüleri değiştirebileceğimiz fonksiyonlara bakalım.

sub(); sub(pattern, replacement =? , x) şeklinde kullanılır. pattern kısmında bulduğumuz ifadeyi replacement kısmına yazacağımız ifade ile değiştirmemizi sağlar. sub(“\\.com”, replacement=”.blog”,site_list) ifadesiyle site listesinde .com ile biten mail adreslerini .blog şeklinde bitmesini sağladık.

Başlangıç Seviye R Programlama

R, istatistiksel hesaplama, raporlama ve grafikler için yazılım ortamı ve programlama dilidir. Kütüphaneleri doğrusal(linear) ve doğrusal olmayan(non-linear) modelleme, klasik istatistiksel testler, zaman serisi analizi, sınıflandırma, kümeleme ve diğerleri de dahil olmak üzere çok çeşitli istatistiksel ve grafik tekniklerinin bilgisayar ortamında uygulanmasını sağlar.

R, çoğu istatistiksel hesaplama dilinden daha güçlü nesne yönelimli programlama imkanlarına sahiptir. İnterpreted bir dildir;Kullanıcılar bir komut satırı aracılığıyla işlemlerini iletirler. Örneğin;

3+5
[1] 8

Özellikleri;

R, çok geniş istatistiki (doğrusal ve doğrusal olmayan modelleme, klasik istatistik testleri, zaman serileri analizi, sınıflandırma, kümeleme ve diğer) ve grafik çizim teknikleri sunmaktadır. R sisteminin büyük çoğunluğu aynı dille yazıldığından kullanıcının yapılan algoritmik seçimleri takip etmesi kolaylaşmaktadır. Yoğun hesaplamalar gerektiren görevler için C,C++ ve Fortran kodu çalışma zamanında bağlanıp çalıştırılabilmektedir. İleri düzey kullanıcılar R nesnelerinin manipülasyonu için C kodu yazabilirler.

R, kullanıcıların eklediği özel fonksiyonlar veya çok özel araştırma alanlarına ait paketlerle oldukça geliştirilebilirdir. S dilinin mirasından dolayı R, diğer birçok istatistiki hesaplama dilinden daha kuvvetli bir nesneye yönelik programlama kabiliyetine sahiptir.

R’nin bir diğer güçlü yönü matematiksel sembolleri de içeren yayın kalitesinde grafikler çizebilen grafik imkânlarıdır. R’nin ister çevrimiçi ister baskı amaçlı kullanılabilen çok geniş içerikli LaTeX benzeri belgelendirme imkânı vardır.

Giriş

R Programlamada yorum eklemek için ‘#’ işareti kullanılır. Burada kosun ne hakkında olduğu hakkında bilgi verebiliriz.

#3+5 Sonucunu hesapla

3+5
[1] 8

R da kullanılabilecek aritmetik işlemler;

  • Toplama: +
  • Çıkarma: –
  • Çarpma işlemi: *
  • Bölünme: /
  • Üst alma: ^
  • Mod alma : %%

Değişken Ataması

Değişken R programlama da değer saklamanızı sağlar. Değişken atama işleminden sonra bu değişkenin adını değişken değerine ulaşmak için kullanırız.

#’elma’ değişkenadına 5 değerini atayın, ‘portakal’ değişken adına 6 değerini atayın

elma<- 5
portakal <- 6

#elma ve portakal değişkenlerinin toplamını bulun

elma+portakal
[1]11

Vektörler

Vektörler, sayısal verileri, karakter verilerini veya mantıksal verileri tutabilen tek boyutlu dizilerdir. Başka bir deyişle, vektör veri depolamak için basit bir araçtır. ‘c()’ vektör yaratma amaçlı kullanılır.

numeric_vector <- c(1, 10, 49)
character_vector <- c(“a”, “b”, “c”)
boolean<- c(TRUE,FALSE,TRUE)

Eğer oluşturduğumuz vektörün elemanlarına isim atamak istersek ‘names()’ fonksiyonunu kullanabiliriz.

names(numeric_vector)<-c(“Monday”, “Tuesday”, “Wednesday”)

Vektörlerde aritmetik işlemler yapılabilir. Bir vektörün tüm elemanlarının toplam değerlerini bulmak istersek ‘sum()’ fonksiyonunu kullanabiliriz.

#numeric_vector vektötünün toplam değerini hesaplayıp ‘toplam_numeric’ değişkenine atayın

toplam_numeric <- sum(numeric_vector)
toplam_numeric
[1]60

#numeric_vector vektötünün toplam değerini hesaplayıp ‘toplam_numeric’ değişkenine atayın

toplam_numeric <- sum(numeric_vector)
toplam_numeric
[1]60

Diğer programlama dillerinin aksine R programlamada ilk değeri 0 değil 1 den saymaya başlıyoruz. İstediğimizde vektörün herhangi bir değerini bir değişkene atayabiliriz.

#numeric_vector vektörün 3. değişkenini degisken_three değerine atayın

degisken_three<-numeric_vector[3]

Eğer vectördeki bir aralığı atamak istersek [:] işlemini kullanabiliriz. Örneğin 2 den 5 e kadar olan aralığı atamak için [2:5] şeklinde kullanırız(2. değer dahil, 5. değer dahil değil). Bir vektörün elemanlarının ortalamasını bulmak istersek ‘mean()’ fonsiyonunu kullanırız.

#numeric_vector vektörünün ortalamasını avg_numeric_vector değerine ata

avg_numeric_vector<-mean(numeric_vector)

Vektörleri aşağıdaki logical ifadelerle de kullanabiliriz;

  • < küçüktür
  • > büyüktür
  • <= küçük eşittir
  • >= büyük eşittir
  • == eşit eşittir
  • != eşit değildir

#c(1,5,7) vektörünün 5 den büyüp olup olmadığını kontrol edin

c(1,5,7)>5
[1]FALSE FALSE TRUE

Matrisler

Bir matris, sabit sayıda satır ve sütun halinde düzenlenmiş aynı veri türündeki (sayısal, karakter veya mantıksal) öğelerden oluşur. Yalnızca satır ve sütunlarla çalıştığınız için, matrise iki boyutludur.
‘Matrix()’ işleviyle R’de bir matris oluşturabilirsiniz. Aşağıdaki matriste; 1:9 işlemi; c(1,2,3,4,5,6,7,8,9) ın kısayoludur. byrow=TRUE; Matris satırlar bazlı doldurulmuş demektir. FALSE olsa sütun bazlı doldurulacaktı. nrow=3; Matrisin 3 satırdan oluşacağını gösterir.

ornek_matrix <- matrix(1:9, byrow = TRUE, nrow = 3)

NOT: Bir matrise vektör isimleriyle atama işlemi yapılabilir.Örneğin a,b ve c birer vektör ise; d<-c(a,b,c) matris<-(d,byrow=TRUE, nrow=3)

‘colnames()’ fonksiyonu ile matristeki kolonları ‘rownames()’ fonksiyonu ile matristeki satırları isimlendirebilirsiniz.

#sutun_adi ve kolon_adi isimli 2 vektör oluşturalım. Bu vektörlere değerler atayalım

sutun_adi<-c(“A”,”B”,”C”)
kolon_adi<-c(“D”,”E”,”F”)

#yukarıda oluşturduğumuz ornek_matrix e kolon ve sütün adlarını atayalım

colnames(ornek_matrix) <- kolon_adi
rownames(ornek_matrix) <- sutun_adi

Çıktısı aşağıdaki gibi olacaktır;

DEF
A123
B456
C789

‘rowSums()’ fonksiyonu ile matrisin satırlarını toplama işlemi yapılır.

#toplam_deger ifadesine A B C değerlerinin toplamını atayın

toplam_deger <- rowSums(ornek_matrix)

NOT: nrow=3 değerinden sonra dimnames ifadesi kullanılarak direkt satır,sütun isimleri atanabilir.

ornek_matrix <- matrix(1:9, nrow = 3, byrow = TRUE, dimnames = list(c(“A”,”B”,”C”), c(“D”,”E”,”F”)))

‘cbind()’ fonksiyonu ile farklı matrisler yada 1 matris ile 1 vektörü birleştirilebilir. ‘rbind()’ fonksiyonu ile farklı matrisler birleştirilebilir. ‘ls()’ fonksiyonu ile matrisleri daha yakından inceleyebilirsiniz. ‘colSums()’ fonksiyonu ile matrisin sütunlarına toplama işlemi yapılır.

Matris Eleman Seçimi

‘[]’ ifadeleriyle matris içerisinde eleman seçimi yapılabilir.

matrix [1,2] ilk satırdaki ve ikinci sütundaki öğeyi seçer.
matrix [1: 3,2: 4], 1, 2, 3 ve 2, 3, 4 sütunlarındaki verilerle bir matris olur.
Bir satırın veya sütunun tüm öğelerini seçmek istiyorsanız, virgülden önce veya sonra hiçbir sayı gerekmez. my_matrix [, 1] ilk sütunun tüm öğelerini seçer.
my_matrix [1,] ilk satırın tüm öğelerini seçer.

Matrislerde de vektörlerle aynı aritmetik işlemler uygulanabilir.

Faktörler

Faktörler katogorik verilerde kullanılır. Kadın, Erkek gibi.’factor()’ fonksiyonu ile oluşturulur. levels koşuluyla sıralamayı belirleriz, haricinde sıralama alfabetik olur.

#cinsiyetlerden oluşan bir vektör oluşturalım

cinsiyet <- c(“kadın”,”kadın”,”erkek”,”kadın”)

#cinsiyet_factor adlı faktörümüze bu vektörü atayalım

cinsiyet_factor <- factor(cinsiyet)

#çıktısı aşağıdaki gibi olur

[1]levels: Erkek Kadın

Örnek factor kullanımı; factor(vektör, ORDER=TRUE, LEVELS=c(“Low”, “Medium”, “High”)) Order kullanarak sıralama vektörünü sırayla verdiğimizi belirtiriz. Yani low<medium<high demiş oluruz. ‘summary()’ fonksiyonu özet sayısal bilgi alabiliriz.

DataFrame

Farklı veri tiplerindeki verileri saklamamızı sağlar. ‘data.frame()’ fonksiyonu ile oluşturulur.’head()’ fonksiyonu ile ilk değerler, ‘tail()’ fonksiyonu ile görüntülenir. ‘str()’ fonksiyonu ile dataframemimizin yapısını görüntüleriz.'[]’ ile istediğimiz satır ve sütundaki datayı çekebiliriz. İstersek kolon yada satır adını direkt yazabiliriz. Yukarıda bahsettiğimiz koşullar geçerli. Aşağıdaki örneği inceleyelim.

#insanlar adında bir dataframe önceden belirlenmiş olsun

#insanlar dataframenin cinsiyet kolonunu vector_cinsiyet kolonuna atayalım

vector_cinsiyet <- insanlar$cinsiyet

#vector_cinsiyet vektörünü görüntülediğimizde çıktı aşağıdaki gibi olur

[1]KADIN ERKEK KADIN ERKEK ERKEK

‘subset()’ fonksiyonu ile şartlı olarak verilerimizi çağırabiliriz. Örneğin subset(insanlar,subset=cinsiyet==”KADIN”) diyerek sadece cinsiyeti KADIN olan verileri çekebiliriz. ‘order()’ fonksiyonu ile sıralama işlemlerini yapabiliriz. Aşağıdaki order örneğini inceleyelim.

#insanlar adında bir dataframe önceden belirlenmiş olsun

#insanlar dataframenin yas kolonunu sıralayalım

yas_sıralı <- order(insanlar$yas)

#insanlar dataframeini yas sıralı şekilde çağıralım

insanlar[yas_sıralı,]

Listeler

Vektörler tek boyutlu diziler, matrisler iki boyutlu diziler ve dataframeler iki boyutlu nesnelerdir. Listeler farklı türdeki nesneleri bir arada kullanmanız olanak sunar. ‘list()’ olarak kullanılır. Data detaylı göstermek gerekirse list(vector_adi, matris_adi, dataframe_adi).

Listedeki elemanları isimlendirebilirsiniz. list(va=vector_adi, ma=matris_adi, df=dataframe_adi)

Listede de vector,matris ve dataframe de olduğu gibi istediğiniz elemanları [] işaretleriyle seçebilirsiniz. Farklı olarak içerisinde farklı nesneleri içerdiği için içiçe geçmiş [[]] işaretleri kullanılır.

#Daha fazla bilgiyi Orta seviye R Programlama yazımda aktaracağım 🙂 #Teşekkürler

Storytelling in Business

İnsanlar hikayeleri severler.

İyi yapıldığında, iş hikayesi anlatımı satmak istediğiniz şeyleri (fikir, sunum, ürün vb.), tüketicinin almasını sağlar. İyi bir hikaye, iyi bir marka izlenimi oluşturmanızı sağlar ve müşterilerinizle aranızda olan güveni arttırır.

Müşteriler bazen iş arkadaşlarımız, bazen yöneticilerimiz, bazen ise ürettiğimiz ürünü sattığımız insanlardan oluşur. Hikayelerle müşterilerimize, onların ihtiyaçlarını anladığımızı hissettiririz ve görünmeyen duygusal bir bağ kurarız.

Yumoş’un reklamı bunun en güzel örneklerindendir. Hepimizin hayatına dokunan, doğal bir hikaye anlatıyor. Reklamın sonunda ise aramızda bir bağ oluşuyor. Turkcell ve Coca cola da reklamlarında hikaye anlatıcılığını en iyi kullanan şirketlerdendir;

Peki biz nasıl iyi bir hikaye anlatıcısı olabiliriz? Aşağıda bunun için gerekenleri başlıklar altında açıkladım;

1. Odak Noktalarınızı Belirleyin

Hikaye dikkat çekici olmalı fakat odak noktaları net değilse izleyicilerin dikkatini vermesine engel olur. O yüzden bu hikayeyi neden anlattığınızı bilmelisiniz. Bu izleyiciyi konuya bağlayacaktır. Aşağıdaki soruların cevaplarını izleyici ve anlatıcı bilmeli;

  • Hikayeyi kim anlatıyor?
  • Hikaye neden anlatılıyor?
  • Hikaye ne zaman ve nerede gerçekleşiyor?
  • Hikayedeki insanlar kim?
  • İnsanlar neyi başarmaya çalışıyor?
  • Hangi zorluklarla karşılaşıyorsunuz?

2. Doğru ve Şeffaf Olun

Hedef kitlenizi bir masal ile kandırmaya çalışmayın. Müşteriler, bunu anlar ve bunu takdir etmez.

Hikayenizin ayrıntılı olması gerekmez. Örneğin, işletmeniz dünyayı sarsan bir tarihe sahip değilse, hikayeniz böyleşmiş gibi göstermeye çalışmamalıdır. Gerçek bir hikaye, tüketicilerle gerçekten kopmadan daha fazla bağlantı kurmasını sağlar.

Şeffaflık, benzersizliğinizi destekler ve markanızın insani yönünü kabul eder. Kendi zorluklarınızı ve başarısızlıklarınızı göstererek, işlerin her zaman kolay olmadığını kabul edin. Bu, duygusallık yaratmanın yanı sıra yenilikçilik gibi özellikleri de ortaya koyar. İlginç bir hikaye oluşturmak için ayrıntıları kullanın.

3. Net Bir Sonuç Olsun

İş hikayelerinin net bir sonucu olmalı. Kitlenize markanızla bağlantı kurmaya zorlayan, eyleme dönüştürülebilir noktaları olan, umutlu, düşündürücü bir mesaj verin.

İşte sizin için başka bir hikaye örneği :

Hikaye kim olduğumuz ve nereden geldiğimiz hakkında bir fikir veriyor. Sonuç tekliflerimizde ve değerlerimizde güven yaratır. Müşterilerinize bir mesaj iletmek için işletmenizin gerçek hayattaki sonuçlarını kullanabilirsiniz.

4. Tutarlı Olun

Burada marka üzerinden ilerleyeceğim fakat aynı durum fikrleriniz içinde geçerli. Dağınık bir marka hikayesi, müşterileri şaşkın ve ilgisiz bırakıyor. Markanızın tüm iletişim kanallarında tutarlı olduğundan emin olun. Dijital ve basılı pazarlama materyalleri için aynı renkleri, logoları ve sloganları kullanın. İşletmenizle ilgili imajların ve sözlerin tekrarı, marka bilinirliği yaratır.

Markanız hakkında konuşurken tutarlı olmanız gerekir. İş hikayesi, anlatımı pratik yapar. Müşteriye sunmadan önce içindeki ve dışındaki hikayeyi öğrenin. 

5. İzleyicileri Hikayenize Dahil Edin

İzleyicilerle duygusal bir bağlantı kurmak için iş hikaye anlatıcılığını kullanın. İşletmenizle ilgili bir etkinliğin sizi nasıl etkilediğini ve öğrendiklerinizi konuşun. Bu, hikayenizi unutulmaz ve paylaşılabilir kılan anında bir yanıt oluşturur.

İnsanlar hikayelerin bir parçası olmayı sever. Müşteriler markanızdaki karakterler olabilir. İzleyicilerinizi dahil etmenin yollarını bulun.

Markanızın hikayesini anlatmak devam eden bir süreçtir. Her gün işiniz büyür, yer değiştirir ve hikayesine yeni bölümler ekler. Bence iş hikayesi anlatıcılığı operasyonların önemli bir parçası haline gelmeli.

Blockchain – Gamification Ortaklığı

Çevrimiçi dünyadaki pazarlama paradigmaları çok hızlı değişiyor. Profesyoneller için bile hangi hedef kitlelere ulaşağını, hangi kanalların en iyisi olduğını bilmek zordur. Eski stratejiler etkinliklerini yitirdikçe, katılımı arttırmak için sürekli olarak yeni stratejiler oluşturulur. Uygulamaya konulan en avantajlı yöntemlerden biri oyunlaştırmadır. Oyunlaştırma ile katılımın ve etkileşimin artması amacıyla web sitelerine, uygulamalara ve kullanıcı topluluklarına oyun benzeri özellikler ekleniyor.

Oyunlaştırma, hedef kitlelere hitap etmek isteyen, yenilikçi yollar bulma eğiliminde olan işletmeler için çok ciddi bir araç olduğunu göstermiştir. Bununla birlikte, bu yeni mimarinin içinde filizlenen blockchainin ortaya çıkışıyla, oyunlaştırma bu ekosistemlere doğrudan katılımın teşvik edilmesine yardımcı olarak yepyeni bir düzeye çıkarılabilir. Blockchain’in sayısız teknolojik avantajı, oyunlaştırmanın ilgi çekici gücü ile birleştiğinde, aslında ikisinin doğal ortak olduğu anlarız. İkisinin birleşimi işletmelerin mevcut engelleri aşmasına ve faaliyetlerini düzene sokmasına yardımcı olur.

Blockchain teknolojisi bir devrilme noktasıdır. Döviz alım satım platformu olarak kullanılmak üzere sağlam ve istikrarlı bir mimari olduğu kanıtlanmış ve diğer birçok uygulama için söz vermiştir. Bununla birlikte, çoğu insan için hantal, karmaşık ve kafa karıştırıcıdır. Belki de oyunlaştırma ile bu dengeyi değiştirir.

Ekleyecek olursak blockchain teknolojisi gamification ile kullandığında;

  • Halkın, sayısallaştırılmış tıbbi kayıtlar yerine blok zinciri tartışması ve sindirmesi için daha somut bir yol yaratır.
  • Platformu yaratıcı bir şekilde kullanan daha fazla geliştiriciye kapısını açar.
  • Eğlence ile teknolojiyi daha da ileri götürür.

‘Bu iki alanın birleşmesiyle ilgili bende bir çalışma yaptım. Bu çalışma, blok zincir tabanlı olarak çalışan, çalışanların yaptıkları inisiyatifleri karşılığında coin(SGP) kazandıkları ve SGP coinleri birbirleri ile teşekkür, takdir amaçlı paylaşabildikleri, gönderebildikleri bir sistem ile ilgilidir. Çalışmanın amacı performans sistemini ölçümleyebilmek ve performansta artış sağlayabilmekti. Bir diğer amacı, çalışanların gerçekleştirmiş oldukları inisiyatifleri sayesinde hangi durumda geri bildirim verdiklerinin değerlendirildiği, inisiyatiflerin ölçümlendiği bir sistem gerçekleştirmektir. Profilimde patentini aldığım bu buluşla ilgili daha fazla detaya ulaşabilirsiniz.’

Günümüzde bu 2 alanı buluşturma fikrini erkenden keşfeden birkaç firma ürünlerini piyasaya sürdü. Örnek verecek olursak çok yakında kullanıma başlanacak olan SUBAJ.(bkz  https://subaj.com/) SUBAJ kendisini aşağıdaki gibi tanıtıyor.

SUBAJ, farklı şirketlerin, tüccarların, perakendecilerin, tüccarların ve servis sağlayıcıların, herkesin kazanacağı ve kaybedenlerin olmadığı şekilde katılabileceği merkezi olmayan bir platform ve pazardır. Bu tüccarlar ve servis sağlayıcılar, SBJ jetonlarını ya da müşterilerine bağlılık ödülü olarak kendi ticari jetonlarını sunar.

Platformu, Sosyal Oyunlaştırma, Artırılmış Gerçeklik ve GeoDrop Teknolojisi gibi çığır açan teknolojilerle desteklenmektedir. Farklı çevrimiçi ve çevrimdışı topluluklar için tek bedene uyan herkese uyan blok zinciri ödül tabanlı bir çözümdür. Bunlar, GeoDrop gibi müşterilere, tüccarların herhangi bir zamanda ve düşme teknolojisini kullanarak herhangi bir yerde görünen teklifleri bırakmalarına olanak tanıyan birçok fayda sağlar. Müşteriler, ilginç buldukları teklifleri kabul etmekte özgürdürler. SUBAJ ayrıca, ticari işlemlere ve iletişim yoluyla toplanan bilgileri birleştirerek, müşterilerin neye ihtiyaç duyduklarını anlamalarına yardımcı olur.

Bir diğer blockchain ile oyunlaştırma hizmeti veren şirket kuruluş ise trifinity. Trifinity ise nüşteri bağlılığını arttırmak amacıyla hizmet veriyor. Daha detaylı incelemek istenirse link ; https://www.trifinity.io/

Oyunlaştırmanın yanında bugün blockchain üzerinde kurulmuş ve piyasaya sürülmüş onlarca oyun var. Örneğin CryptoKitties. Oyun kısaca “yeni doğan” bir evcil hayvan toplama oyunu. Bu oyun o kadar çok ivme kazandı ki, Ethereum ağı üzerinde önemli ve sakatlayıcı bir etkisi oldu. Bundan bağımsız olarak, bugün hala gelişen CryptoKitties, blockchain’in ana akıma kabul edilmesini sağlayan eğlence kavramının en güçlü kanıtı oldu.

Peki bu, bir sonraki endüstriyi nereye götürüyor? Bu belki de tüm bunların en heyecan verici kısmı: Eğlence ve teknolojinin yeniliğe güç veren, yeni ve yaratıcı yöntemlerle kullanılmasıdır.

İçeriği ne olursa olsun, blockchain’in oyunlaştırılması heyecan vaat ediyor.

Design a site like this with WordPress.com
Get started