Python'da veri nasıl dönüştürülür (log, kare kök, küp kök)


Birçok istatistiksel test, veri setlerinin normal şekilde dağıldığını varsayar. Ancak uygulamada çoğu zaman durum böyle değildir.

Bu sorunu çözmenin bir yolu, bir veri kümesindeki değerlerin dağılımını üç dönüşümden birini kullanarak dönüştürmektir:

1. Günlük dönüşümü: yanıt değişkenini y’den log(y)’ ye dönüştürün.

2. Karekök dönüşümü: Yanıt değişkenini y’den √y’ye dönüştürün.

3. Küp kök dönüşümü: yanıt değişkenini y’den y 1/3’e dönüştürün.

Bu dönüşümlerin gerçekleştirilmesiyle veri kümesi genel olarak daha normal dağılmış hale gelir.

Aşağıdaki örnekler bu dönüşümlerin Python’da nasıl gerçekleştirileceğini göstermektedir.

Python’da Günlük Dönüşümü

Aşağıdaki kod, bir değişken üzerinde logaritmik dönüşümün nasıl gerçekleştirileceğini ve verilerin orijinal dağılımını ve loga dönüştürülmüş dağılımını görüntülemek için yan yana grafiklerin nasıl oluşturulacağını gösterir:

 import numpy as np
import matplotlib. pyplot as plt

#make this example reproducible
n.p. random . seeds (0)

#create beta distributed random variable with 200 values
data = np. random . beta (a= 4 , b= 15 , size= 300 )

#create log-transformed data
data_log = np. log (data)

#define grid of plots
fig, axs = plt. subplots (nrows= 1 , ncols= 2 )

#create histograms
axs[0]. hist (data, edgecolor=' black ')
axs[1]. hist (data_log, edgecolor=' black ')

#add title to each histogram
axs[0]. set_title (' Original Data ')
axs[1].set_title(' Log-Transformed Data ')

Log-dönüştürülmüş dağıtımın orijinal dağıtımdan nasıl daha normal dağıldığına dikkat edin.

Hala mükemmel bir “çan şekli” değil ama normal dağılıma orijinal dağılımdan daha yakın.

Python’da Karekök Dönüşümü

Aşağıdaki kod, bir değişken üzerinde karekök dönüşümünün nasıl gerçekleştirileceğini ve verilerin orijinal dağılımını ve karekök dönüştürülmüş dağılımını görüntülemek için yan yana grafiklerin nasıl oluşturulacağını gösterir:

 import numpy as np
import matplotlib. pyplot as plt

#make this example reproducible
n.p. random . seeds (0)

#create beta distributed random variable with 200 values
data = np. random . beta (a= 1 , b= 5 , size= 300 )

#create log-transformed data
data_log = np. sqrt (data)

#define grid of plots
fig, axs = plt. subplots (nrows= 1 , ncols= 2 )

#create histograms
axs[0]. hist (data, edgecolor=' black ')
axs[1]. hist (data_log, edgecolor=' black ')

#add title to each histogram
axs[0]. set_title (' Original Data ')
axs[1].set_title(' Square Root Transformed Data ') 

Karekök dönüştürülmüş verilerin orijinal verilere göre nasıl çok daha normal bir şekilde dağıldığına dikkat edin.

Python’da Küp Kök Dönüşümü

Aşağıdaki kod, bir değişken üzerinde küp kök dönüşümünün nasıl gerçekleştirileceğini ve verilerin orijinal dağılımını ve küp kök dönüştürülmüş dağılımını görüntülemek için yan yana grafiklerin nasıl oluşturulacağını gösterir:

 import numpy as np
import matplotlib. pyplot as plt

#make this example reproducible
n.p. random . seeds (0)

#create beta distributed random variable with 200 values
data = np. random . beta (a= 1 , b= 5 , size= 300 )

#create log-transformed data
data_log = np. cbrt (data)

#define grid of plots
fig, axs = plt. subplots (nrows= 1 , ncols= 2 )

#create histograms
axs[0]. hist (data, edgecolor=' black ')
axs[1]. hist (data_log, edgecolor=' black ')

#add title to each histogram
axs[0]. set_title (' Original Data ')
axs[1].set_title(' Cube Root Transformed Data ') 

Küp kökü dönüştürülmüş verilerin, orijinal verilere göre nasıl çok daha normal bir şekilde dağıldığına dikkat edin.

Ek kaynaklar

Python’da Z puanları nasıl hesaplanır
Python’da veriler nasıl normalleştirilir?
İstatistikte normallik varsayımı nedir?

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir