cd = CategoricalDistribution[{{"Rain", "Fair"}, {"Win", "Lose"}},
{{0.4, 0.4}, {0.12, 0.08}}];
Update: Again using simple queries we can get two tables of conditional probabilities as Dataset
objects
probtable = Information[cd, "ProbabilityTable"];
condProbResultGivenWeather = probtable[All, Normalize[#, Total] &];
condProbWeatherGivenResult = probtable[Transpose][All, Normalize[#, Total] &];
Row[{condProbResultGivenWeather, condProbWeatherGivenResult}, Spacer[10]]

condProbResultGivenWeather["Fair", "Win"]
0.6
condProbResultGivenWeather[All, "Win"]

condProbResultGivenWeather["Fair"]

condProbWeatherGivenResult["Win", "Fair"]
0.230769
condProbWeatherGivenResult[All, "Fair"]

condProbWeatherGivenResult["Win"]

Information + "ProbabilityTable"
Using Information
we get the joint probability table as a Dataset
object. We then can get the conditional probabilities using simple queries:
probtable = Information[cd, "ProbabilityTable"]

Conditional probability of "Win"
given "Fair"
:
probtable["Fair", #Win / Total @ # &]
0.6
Conditional probability of "Fair"
given "Win"
:
probtable[#Fair / Total @ # &, "Win"]
0.230769
PDF + MarginalDistribution
We can also use the functions PDF
and MarginalDistribution
to get the same result:
PDF[cd, {"Fair", "Win"}] / PDF[MarginalDistribution[cd, 1], "Fair"]
0.6
PDF[cd, {"Fair", "Win"}] / PDF[MarginalDistribution[cd, 2], "Win"]
0.230769
NProbability[]
instead? $\endgroup$NProbability
is also not working. I think WRI forgot to implement conditional probability forCategoricalDistribution
. Should I add the tag bug on it? $\endgroup$Probability[]
andNProbability[]
can handle it now. $\endgroup$