目的 度数分布表の形で与えられたデータの基礎統計量を求める。 参考文献 R. R. Sokal and F. J. Rohlf: Biometry - Third Edition, W. H. Freeman and company. 使用法 basic.stat(x, f) 引数 x 階級の級限界値のベクトル f 度数 ソース インストールは,以下の 1 行をコピーし,R コンソールにペーストする source("http://aoki2.si.gunma-u.ac.jp/R/src/basic_stat.R", encoding="euc-jp") # 度数分布表から基礎統計量を求める basic.stat <- function( x, # 級限界のベクトル f) # 度数のベクトル { w <- diff(x[1:2]) # 区間幅 stopifnot(all(diff(x) == w)) # 区間は等間隔でなければならない stopifnot(length(x) == length(f)) # ベクトルの長さは同じでなければならない x <- x+w/2 # 級中心ベクトルに変換 n <- sum(f) # サンプルサイズ m <- sum(f*x)/n # 平均値 v <- sum(f*(x-m)^2)/(n-1) # 不偏分散 SD <- sqrt(v) # 標準偏差 CV <- SD/m*100 # 変動係数 g1 <- n*sum(f*(x-m)^3)/(n-1)/(n-2)/SD^3 # 歪度(不偏推定値) g2 <- n*(n+1)*sum(f*(x-m)^4)/(n-1)/(n-2)/(n-3)/SD^4-3*(n-1)^2/(n-2)/(n-3) # 尖度 result <- list(n=n, mean=m, variance=v, sd=SD, g1=g1, g2=g2, CV=CV) # リストで返す class(result) <- c("basic.stat", "list") return(result) } print.basic.stat <- function(x) # basic.stat のプリント・メソッド { cat("標本の大きさ =", x$n); cat("\n") cat("算術平均値 =", x$mean); cat("\n") cat("不偏分散 =", x$variance); cat("\n") cat("標準偏差 =", x$sd); cat("\n") cat("歪度 =", x$g1); cat("\n") cat("尖度 =", x$g2); cat("\n") cat("変動係数 =", x$CV); cat("\n") } 使用例 > x <- seq(59.5, 171.5, 8) > f <- c(2, 6, 39, 385, 888, 1729, 2240, 2007, 1233, 641, 201, 74, 14, 5, 1) > basic.stat(x, f) 標本の大きさ = 9465 算術平均値 = 113.8996 不偏分散 = 184.801 標準偏差 = 13.59415 歪度 = 0.1893559 尖度 = 0.08913261 変動係数 = 11.93521 注: print.basic.stat 関数がない場合には,リストとして表示される