| ogi {OGI} | R Documentation | 
Objective General Index
Description
ogi(X) returns the objective general index (OGI) of the covariance
matrix S of X.
Usage
ogi(X, se = FALSE, force = FALSE, se.loop = 1000, nu = rep(1, ncol(X)),
  center = TRUE, mar = FALSE)
Arguments
X | 
 Numeric or ordered matrix.  | 
se | 
 Logical: if se=TRUE, it additionally computes   | 
force | 
 Logical: if force=FALSE,   | 
se.loop | 
 Iteration number in bootstrap for computation of standard error.  | 
nu | 
 Numeric vector of subjective importance. It determines the
importance of each column of   | 
center | 
 Logical: if center=TRUE,   | 
mar | 
 Logical: if mar=TRUE, each of ordered categorical variates of
  | 
Details
Consider a data matrix of n individuals with p variates. The
objective general index (OGI) is a general index that combines the p
variates into a univariate index in order to rank the n individuals.
The OGI is always positively correlated with each of the variates. For more
details, see the references.
Value
value | 
 The objective general index (OGI).  | 
X | 
 The input matrix   | 
scaled | 
 The product of   | 
Z | 
 Numerical matrix converted from   | 
weight | 
 The output of   | 
rel.weight | 
 The product of   | 
biu | 
 The bi-unit canonical form of the covariance matrix of   | 
idx | 
 Numeric vector. If   | 
w.se | 
 If requested,   | 
v.se | 
 If requested,   | 
References
Sei, T. (2016). An objective general index for multivariate ordered data, Journal of Multivariate Analysis, 147, 247-264. http://www.sciencedirect.com/science/article/pii/S0047259X16000269
Examples
CT = matrix(c(
2,1,1,0,0,
8,3,3,0,0,
0,2,1,1,1,
0,0,0,1,1,
0,0,0,0,1), 5, 5, byrow=TRUE)
X = matrix(0, 0, 2)
for(i in 1:5){
  for(j in 1:5){
    if(CT[i,j]>0){
      X = rbind(X, matrix(c(6-i,6-j), CT[i,j], 2, byrow=TRUE))
    }
  }
}
X0 = X
X = as.data.frame(X0)
X[,1] = factor(X0[,1], ordered=TRUE)
X[,2] = factor(X0[,2], ordered=TRUE)
ogiX = ogi(X)
par(pty="s", cex=1.7, mar=c(4.5,3,1,1))
plot(ogiX$scaled, xlim=c(-3,3), ylim=c(-3,3), xlab="Geometry", ylab="Probability")
for(t in 1:nrow(ogiX$scaled)){
  xy = ogiX$scaled[t,]
  g = rep(sum(xy)/2, 2)
  segments(xy[1], xy[2], g[1], g[2], lty=2)
}
arrows(-3, -3, 3, 3)
text(2.5, 2, "OGI/2")
ogiX
f = ordered(1:10)
f[sample(1:10, 20, replace=TRUE)]
Y = ogi(f)$value
plot((1:10)/(10+1), Y, type="b")
xs = (1:1000)/1001
points(xs, qnorm(xs), type="l", col="red")
X = USJudgeRatings
ogiX = ogi(X)
nameX = ordered(names(X), names(X))
plot(nameX, ogiX$weight, las=3, cex.axis=0.8, ylim=c(0,1.2), ylab="weight")