Arcsine-transformatie in r (met voorbeelden)


Een boogsinustransformatie kan worden gebruikt om gegevenspunten tussen de waarden 0 en 1 te „uitbreiden“.

Dit type transformatie wordt meestal gebruikt bij het omgaan met verhoudingen en percentages.

We kunnen de volgende syntaxis gebruiken om een boogsinustransformatie in R uit te voeren:

 asin(sqrt(x))

De volgende voorbeelden laten zien hoe u deze syntaxis in de praktijk kunt gebruiken.

Voorbeeld 1: Arcsine-transformatie van waarden tussen 0 en 1

De volgende code laat zien hoe u een boogsinustransformatie uitvoert op vectorwaarden tussen 0 en 1:

 #definevector
x <- c(0.1, 0.33, 0.43, 0.5, 0.7)

#perform arcsine transformation on values in vector
asin(sqrt(x))

[1] 0.3217506 0.6119397 0.7151675 0.7853982 0.9911566

Voorbeeld 2: Arcsine-transformatie van waarden buiten het bereik 0 tot 1

Merk op dat de boogsinustransformatie alleen werkt op waarden tussen 0 en 1. Dus als we een vector hebben met waarden buiten dit bereik, moeten we eerst elke waarde converteren zodat deze tussen 0 en 1 ligt.

 #define vector with values outside of range 0 to 1
x <- c(2, 14, 16, 30, 48, 78)

#create new vector where each value is divided by max value
y <- x / max(x)

#view new vector
y

[1] 0.02564103 0.17948718 0.20512821 0.38461538 0.61538462 1.00000000

#perform arcsine transformation on new vector
asin(sqrt(y))

[1] 0.1608205 0.4374812 0.4700275 0.6689641 0.9018323 1.5707963

Voorbeeld 3: Arcsine-transformatie van waarden in het dataframe

De volgende code laat zien hoe u een boogsinustransformatie van waarden in een specifieke kolom van een dataframe uitvoert:

 #define data frame
df <- data. frame (var1=c(.2, .3, .4, .4, .7),
                 var2=c(.1, .2, .2, .2, .3),
                 var3=c(.04, .09, .1, .12, .2))

#perform arcsine transformation on values in 'var1' column
asin(sqrt(df$var1))

[1] 0.4636476 0.5796397 0.6847192 0.6847192 0.9911566

En de volgende code laat zien hoe u een boogsinustransformatie van waarden in meerdere kolommen van een dataframe uitvoert:

 #define data frame
df <- data. frame (var1=c(.2, .3, .4, .4, .7),
                 var2=c(.1, .2, .2, .2, .3),
                 var3=c(.04, .09, .1, .12, .2))

#perform arcsine transformation on values in 'var1' and 'var3' columns
sapply(df[ c(' var1 ', ' var3 ')], function (x) asin(sqrt(x)))

          var1 var3
[1,] 0.4636476 0.2013579
[2,] 0.5796397 0.3046927
[3,] 0.6847192 0.3217506
[4,] 0.6847192 0.3537416
[5,] 0.9911566 0.4636476

Aanvullende bronnen

Gegevens transformeren in R (logboek, vierkantswortel, kubuswortel)
Hoe een Box-Cox-transformatie uit te voeren in R
Hoe de logfunctie in R te gebruiken
Hoe de vierkantswortelfunctie in R te gebruiken

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert