最初に楕円を計算し、次に長軸と短軸の長さを決定し、次に面積を計算します。
これは頭のない近似です。
まず、あなたのデータ。
dat <- structure(list(x = c(1.158362492, 1.1430148, 1.11058971, 1.120573931,
1.149219113, 1.123851641, 1.096910013), y = c(1.322219295, 1.267171728,
1.252853031, 1.260071388, 1.278753601, 1.276461804, 1.222716471
)), .Names = c("x", "y"), class = "data.frame", row.names = c(NA,
-7L))
次に、パッケージをロードしますcar
。dataEllipse
データへの二変量正規近似を使用して楕円を計算するために使用できます。
require(car)
dataEllipse(dat$x, dat$y, levels=0.5)
を呼び出すと、プロットellipse
する楕円に沿って点を与えることができます。dataEllipse
me <- apply(dat, 2, mean)
v <- var(dat)
rad <- sqrt(2*qf(0.5, 2, nrow(dat)-1))
z <- ellipse(me, v, rad, segments=1001)
次に、楕円上の各点から中心までの距離を計算できます。
dist2center <- sqrt(rowSums((t(t(z)-me))^2))
これらの距離の最小値と最大値は、短軸と長軸の半分の長さです。したがって、次のように面積を取得できます。
pi*min(dist2center)*max(dist2center)