Was wäre ein gutes Programm, das die Matrix A automatisieren und ausfüllen könnte?Wie fügt man Wahrscheinlichkeiten in eine Matrix ein?
Wir haben die col-Vektor:
col=c(1,1,2,3,4,5,10,7,7,3,1,5,3,7,6,3,4,2,1,1,2,2,6,4,8,8,9,1,3,2)
col
[1] 1 1 2 3 4 5 10 7 7 3 1 5 3 7 6 3 4 2 1 1 2 2 6 4 8
[26] 8 9 1 3 2
Und wir haben die Matrix:
A=rbind(c(0:10),c(1,rep(0,10)),c(2,rep(0,10)),c(3,rep(0,10)),c(4,rep(0,10)),c(5,rep(0,10)),c(6,rep(0,10)),c(7,rep(0,10)),c(8,rep(0,10)),c(9,rep(0,10)),c(10,rep(0,10)))
A
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11]
[1,] 0 1 2 3 4 5 6 7 8 9 10
[2,] 1 0 0 0 0 0 0 0 0 0 0
[3,] 2 0 0 0 0 0 0 0 0 0 0
[4,] 3 0 0 0 0 0 0 0 0 0 0
[5,] 4 0 0 0 0 0 0 0 0 0 0
[6,] 5 0 0 0 0 0 0 0 0 0 0
[7,] 6 0 0 0 0 0 0 0 0 0 0
[8,] 7 0 0 0 0 0 0 0 0 0 0
[9,] 8 0 0 0 0 0 0 0 0 0 0
[10,] 9 0 0 0 0 0 0 0 0 0 0
[11,] 10 0 0 0 0 0 0 0 0 0 0
Die erste Spalte der Matrix A repräsentiert die vorangehenden Werte in der Spalte Vektor
der erste Zeile der Matrix A repräsentiert die folgenden Werte in dem Spaltenvektor In der Matrix A möchten wir die 0 ersetzen und das bedingte Probab speichern Fähigkeiten.
Mit Blick auf den Col-Vektor, schaue ich alle Instanzen, die 1 als eine vorangehende Zahl wie 1,1,2, 1,5, 1,1,2 1,3 beinhalten.
Und ich kam mit den folgenden bedingten Wahrscheinlichkeiten bis:
Da die vorhergehende Nummer 1 in der Spalte Vektor war die Wahrscheinlichkeit, dass die folgende Nummer 1 gleich zu: 2/6.
Da die vorhergehende Zahl 1 war, entspricht die Wahrscheinlichkeit, dass die folgende Zahl 2 ist: 2/6.
Da die vorhergehende Zahl 1 war, entspricht die Wahrscheinlichkeit, dass die folgende Zahl 3 ist: 1/6.
Da die vorhergehende Zahl 1 war, entspricht die Wahrscheinlichkeit, dass die folgende Zahl 5 ist: 1/5.
Wir verwenden diese Werte die erste Zeile der Matrix zu füllen A.And erhalten wir eine neue Version von A.
A=rbind(c(0:10),c(1,2/6,2/6,1/6,0,1/6,0,0,0,0,0),c(2,rep(0,10)),c(3,rep(0,10)),c(4,rep(0,10)),c(5,rep(0,10)),c(6,rep(0,10)),c(7,rep(0,10)),c(8,rep(0,10)),c(9,rep(0,10)),c(10,rep(0,10)))
> A
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11]
[1,] 0 1.0000000 2.0000000 3.0000000 4 5.0000000 6 7 8 9 10
[2,] 1 0.3333333 0.3333333 0.1666667 0 0.1666667 0 0 0 0 0
[3,] 2 0.0000000 0.0000000 0.0000000 0 0.0000000 0 0 0 0 0
[4,] 3 0.0000000 0.0000000 0.0000000 0 0.0000000 0 0 0 0 0
[5,] 4 0.0000000 0.0000000 0.0000000 0 0.0000000 0 0 0 0 0
[6,] 5 0.0000000 0.0000000 0.0000000 0 0.0000000 0 0 0 0 0
[7,] 6 0.0000000 0.0000000 0.0000000 0 0.0000000 0 0 0 0 0
[8,] 7 0.0000000 0.0000000 0.0000000 0 0.0000000 0 0 0 0 0
[9,] 8 0.0000000 0.0000000 0.0000000 0 0.0000000 0 0 0 0 0
[10,] 9 0.0000000 0.0000000 0.0000000 0 0.0000000 0 0 0 0 0
[11,] 10 0.0000000 0.0000000 0.0000000 0 0.0000000 0 0 0 0 0
Wir wollen die zweite Reihe füllen, den dritten die ganzen Weg bis 10.
Ich habe es manuell gemacht, aber was wäre ein gutes Programm, das die Matrix A automatisieren und ausfüllen könnte?
Dies wird sehr langsam sein. 'for' oder' while' in R sollte in Ausnahmefällen verwendet werden. – Bulat