2011-09-23 158 views
-1

安排在一個簡單的表格所以我數轉換測量數據:計算面積

 x   y 
1.158362492 1.322219295 
1.1430148 1.267171728 
1.11058971 1.252853031 
1.120573931 1.260071388 
1.149219113 1.278753601 
1.123851641 1.276461804 
1.096910013 1.222716471 

我知道有用於繪製置信橢圓對這些數據的功能,但如何我計算生成的形狀的面積?

由於

回答

3

首先計算出橢圓,然後確定長軸和短軸的長度,然後calculate the area

這是一個無腦的近似。

首先,你的數據。

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) 
+0

「計算橢圓」需要一些細節。 – Benjamin

+0

@Benjamin - 也許我太過分地討厭,但似乎提問者知道如何計算橢圓,在這個區域不會有困難,除非難以理解事物,在這種情況下,他應該問關於那個部分。 – Karl

0

您可以使用包mclust,有一個名爲mvn_plot一個隱藏的功能,輸入參數爲meanstd。您可以嘗試讀取其代碼並修改它以獲取每個軸的長度。