R 기술 기하 평균/기하 표준 편차 계산

R에 의한 기하 평균/기하 표준 편차 계산



기하 평균이란...
고등학교에서 시가와 시너지 평균의 관계를 만들었다고 생각하지만, 그 시너지 평균
자세한 계산은 위키로 보겠습니까?
htps : // 그럼.ぃきぺぢ아. 오 rg/우우키/%에5%B9%베%에4%BD%95%에5%B9%B3%에5%9D%87

로그 변환 → 평균값/표준 편차 계산 → 지수 변환
따라서 기하 평균과 기하 표준 편차를 구할 수 있습니다.

SAS로 산출하는 경우는 아래를 참조
htps : // m / spy / ms / a 1c300 9f0 아 922 502

이번에도 SQL 코드와 r 패키지에 의한 방법을 소개

사용할 데이터



SASHELP.CLASS의 HEIGHT로 곁들인다.


준비


# パッケージ
Packages <- c( "sqldf" , "data.table" , "tidyverse" , "haven" )
for( i in Packages ) {
  library( i , character.only = TRUE )
}

# 読み込み
Sas_Pass <- "パス/class.sas7bdat"
SASHELP_CLASS <- haven::read_sas( Sas_Pass )

sqldf 패키지로 직접 계산하는 방법



우선 기하 평균, 기하 표준 편차, 기하 CV를 계산
신뢰 구간도 귀찮아서 식을 쓰면 낼 수 있어야합니다.
CLASS_STAT <- fn$sqldf(
  " select AGE , count(*) as N , 
           power( 10 , avg( log10( WEIGHT ) ) ) as GEOMEAN1 ,
           power( exp( 1 ) , avg( log( WEIGHT ) ) ) as GEOMEAN2 ,
           power( 10 , stdev( log10( WEIGHT ) ) ) as GEOSTD , 
           sqrt( exp( power( stdev( log( WEIGHT ) ) , 2 ) ) - 1 ) * 100 as GEOCV
   from SASHELP_CLASS
   group by AGE
 " )

RSQLite (db에 SASHELP_CLASS를 SQL 데이터로 저장하고 처리)


conn = dbConnect( RSQLite::SQLite() , "" , synchronous = "off" )
dbWriteTable( conn , "SASHELP_CLASS_SQL" , SASHELP_CLASS , overwrite = TRUE )
query <- " select AGE , count(*) as N , 
           power( 10 , avg( log10( WEIGHT ) ) ) as GEOMEAN1 ,
           power( exp( 1 ) , avg( log( WEIGHT ) ) ) as GEOMEAN2 ,
           power( exp( 1 ) , stdev( log( WEIGHT ) ) ) as GEOSTD ,
           sqrt( exp( power( stdev( log( WEIGHT ) ) , 2 ) ) - 1 ) * 100 as GEOCV
           from SASHELP_CLASS_SQL
           group by AGE "

CLASS_STAT2 <- dbGetQuery( conn , query )

dbDisconnect( conn )

dplyr


CLASS_STAT3 <- SASHELP_CLASS %>%
               group_by( Age ) %>% 
               summarise( n = length( Weight ) , GeoMean = exp( mean( log( Weight ) ) ) , GeoStd = exp( sd( log( Weight ) ) ) , .groups = "drop" )


결과









느낌으로

좋은 웹페이지 즐겨찾기