PnodeStats: Pnode Marginal Statistics

PnodeStatsR Documentation

Pnode Marginal Statistics

Description

These functions compute statistics of the marginal distribution of the corresponding node. These are designed to be used with Statistic objects.

Usage

PnodeMargin(net, node)
PnodeEAP(net, node)
PnodeSD(net, node)
PnodeMedian(net, node)
PnodeMode(net, node)

Arguments

net

A Pnet object representing the network.

node

A Pnode object describing the node whose statistics are desired.

Details

These are the functions that implement the statistics. These are typically called by calcStat which finds the nodes corresponding to the named nodes in the statistics. Both the net and node are passes as arguments as this may be needed in some implementations.

Value

PnodeMargin returns a vector corresponding to the states of node giving the marginal probabilities of the states.

PnodeEAP returns a numeric scalar giving the expected a posteriori value (mean) of the PnodeStateValues of the node. PnodeSD gives the standard deviation.

PnodeMedian assumes the states are ordered, and returns the state at the 50th percentile. This is a factor (character) value.

PnodeMode returns the most likely state as a factor (character) value.

Author(s)

Russell Almond

References

Almond, R.G., Mislevy, R.J. Steinberg, L.S., Yan, D. and Willamson, D. M. (2015). Bayesian Networks in Educational Assessment. Springer. Chapter 13.

See Also

Statistics Class: Statistic

Constructor function: Statistic

calcStat

These statistics will likely produce errors unless PnetCompile has been run first.

Examples

## Not run: 

library(PNetica) ## Need a specific implementation
sess <- NeticaSession()
startSession(sess)

irt10.base <- ReadNetworks(system.file("testnets", "IRT10.2PL.base.dne",
                                        package="PNetica"),
                           session=sess)
irt10.base <- as.Pnet(irt10.base)  ## Flag as Pnet, fields already set.
irt10.theta <- PnetFindNode(irt10.base,"theta")
irt10.items <- PnetPnodes(irt10.base)
## Flag items as Pnodes
for (i in 1:length(irt10.items)) {
  irt10.items[[i]] <- as.Pnode(irt10.items[[i]])
  
}
## Make some statistics
marginTheta <- Statistic("PnodeMargin","theta","Pr(theta)")
meanTheta <- Statistic("PnodeEAP","theta","EAP(theta)")
sdTheta <- Statistic("PnodeSD","theta","SD(theta)")
medianTheta <- Statistic("PnodeMedian","theta","Median(theta)")
modeTheta <- Statistic("PnodeMedian","theta","Mode(theta)")


BuildAllTables(irt10.base)
PnetCompile(irt10.base) ## Netica requirement

calcStat(marginTheta,irt10.base)
calcStat(meanTheta,irt10.base)
calcStat(sdTheta,irt10.base)
calcStat(medianTheta,irt10.base)
calcStat(modeTheta,irt10.base)

DeleteNetwork(irt10.base)
stopSession(sess)

## End(Not run)

ralmond/Peanut documentation built on Sept. 19, 2023, 8:27 a.m.