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