| Type: | Package | 
| Title: | Objective General Index | 
| Version: | 1.0.0 | 
| Description: | 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. More details can be found in Sei (2016) <doi:10.1016/j.jmva.2016.02.005>. | 
| License: | GPL-3 | 
| Encoding: | UTF-8 | 
| LazyData: | true | 
| Imports: | lpSolve (≥ 5.6.13), stats (≥ 3.3.3), graphics (≥ 3.3.3), methods (≥ 3.3.3) | 
| Suggests: | ade4 (≥ 1.7.8), bnlearn (≥ 4.2), testthat(≥ 1.0.2) | 
| RoxygenNote: | 6.0.1 | 
| NeedsCompilation: | no | 
| Packaged: | 2017-12-20 01:53:57 UTC; MEIP-users | 
| Author: | Tomonari Sei [aut], Masaki Hamada [cre] | 
| Maintainer: | Masaki Hamada <masaki_hamada@mist.i.u-tokyo.ac.jp> | 
| Repository: | CRAN | 
| Date/Publication: | 2017-12-20 12:38:57 UTC | 
Bi-unit Canonical Form
Description
cov2biu(S) returns the bi-unit canonical form of S.
Usage
cov2biu(S, nu = rep(1, nrow(S)), force = FALSE, detail = FALSE)
Arguments
| S | Covariance matrix, especially it is positive semi-definite. | 
| nu | Numeric vector of subjective importance. It determines the importance of each of the variates. | 
| force | Logical: if force=FALSE,  | 
| detail | Logical: if detail=TRUE, it returns the list of the bi-unit form and the weight vectors. Default: FALSE. | 
Value
Numeric matrix of the bi-unit canonical form DSD of S.
Examples
S = matrix(0, 5, 5)
S[1,1] = 1
for(j in 2:5) S[1,j] = S[j,1] = -0.5
for(i in 2:5){
  for(j in 2:5){
    if(i == j) S[i,j] = 1
    else S[i,j] = 0.5
  }
}
B=cov2biu(S)
B
Weight Vectors of the Bi-unit Canonical Form
Description
cov2weight(S) returns the numeric vector in which the diagonal
elements of the matrix D are arranged, where DSD is the bi-unit
canonical form of S.
Usage
cov2weight(S, Dvec = rep(1, nrow(S)), nu = rep(1, nrow(S)), tol = 1e-06,
  force = FALSE)
Arguments
| S | Covariance matrix, especially it is positive semi-definite. | 
| Dvec | Numeric vector of initial values of iteration. | 
| nu | Numeric vector of subjective importance. It determines the importance of each of the variates. | 
| tol | Numeric number of tolerance. If the minimum eigenvalue of  | 
| force | Logical: if force=FALSE,  | 
Value
Numeric vector of diagonal elements of D, which appears in the
bi-unit canonical form DSD of S.
Examples
S = matrix(0, 5, 5)
S[1,1] = 1
for(j in 2:5) S[1,j] = S[j,1] = -0.5
for(i in 2:5){
  for(j in 2:5){
    if(i == j) S[i,j] = 1
    else S[i,j] = 0.5
  }
}
weight=cov2weight(S)
weight
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")