R의 아크사인 변환(예제 포함)


아크사인 변환을 사용하여 값 0과 1 사이의 데이터 포인트를 “확장”할 수 있습니다.

이러한 유형의 변환은 일반적으로 비율과 백분율을 처리할 때 사용됩니다.

R에서 아크사인 변환을 수행하려면 다음 구문을 사용할 수 있습니다.

 asin(sqrt(x))

다음 예에서는 이 구문을 실제로 사용하는 방법을 보여줍니다.

예시 1: 0과 1 사이 값의 아크사인 변환

다음 코드는 0과 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

예시 2: 0~1 범위를 벗어난 값의 아크사인 변환

아크사인 변환은 0과 1 사이의 값에서만 작동합니다. 따라서 이 범위를 벗어난 값을 가진 벡터가 있는 경우 먼저 각 값을 0과 1 사이로 변환해야 합니다.

 #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

예시 3: 데이터 프레임 값의 아크사인 변환

다음 코드는 데이터 프레임의 특정 열에 있는 값의 아크사인 변환을 수행하는 방법을 보여줍니다.

 #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

다음 코드는 데이터 프레임의 여러 열에 있는 값의 아크사인 변환을 수행하는 방법을 보여줍니다.

 #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

추가 리소스

R에서 데이터를 변환하는 방법(로그, 제곱근, 세제곱근)
R에서 Box-Cox 변환을 수행하는 방법
R에서 로깅 기능을 사용하는 방법
R에서 제곱근 함수를 사용하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다