创建 1 步转换矩阵,找到某人移动到特定城市的概率
Creating 1 step transition matrix, find probability that someone moves to a particular city
我正在寻找一种方法来找到具有某人移动概率的转换矩阵(在 R 中)。这是我的 df 的样子:
City_year1 City_year2
<fct> <fct>
1 Alphen aan den Rijn NA
2 Tynaarlo NA
3 Eindhoven NA
4 Emmen Emmen
5 Emmen Emmen
6 Schagen Schagen
7 Bergen NA
8 Schagen Schagen
9 Schagen Schagen
10 Amsterdam Rotterdam
# .... with 200.000 more rows
我如何根据此 df 中可用的数据轻松创建一个转移矩阵,其中包含某个人在第 1 年从阿姆斯特丹搬到第 2 年鹿特丹的概率。额外信息:第 1 年的唯一值的数量不一定等于第 2 年的#unique 值。我尝试使用马尔可夫函数,但没有成功。
希望有人能帮帮我!
table(df)
将为您提供一个转换计数矩阵,您可以使用 prop.table
:
将这些计数转换为概率(比例)
prop.table(table(df), margin = 1)
margin = 1
表示行中的概率总和为 1。
使用问题中的原始数据:
df = read.table(text = 'City_year1 City_year2
1 Alphen_aan_den_Rijn NA
2 Tynaarlo NA
3 Eindhoven NA
4 Emmen Emmen
5 Emmen Emmen
6 Schagen Schagen
7 Bergen NA
8 Schagen Schagen
9 Schagen Schagen
10 Amsterdam Rotterdam', header = T)
result = prop.table(table(df), margin = 1)
result
# City_year2
# City_year1 Emmen Rotterdam Schagen
# Alphen_aan_den_Rijn
# Amsterdam 0 1 0
# Bergen
# Eindhoven
# Emmen 1 0 0
# Schagen 0 0 1
# Tynaarlo
unclass(result)
# City_year2
# City_year1 Emmen Rotterdam Schagen
# Alphen_aan_den_Rijn NaN NaN NaN
# Amsterdam 0 1 0
# Bergen NaN NaN NaN
# Eindhoven NaN NaN NaN
# Emmen 1 0 0
# Schagen 0 0 1
# Tynaarlo NaN NaN NaN
我正在寻找一种方法来找到具有某人移动概率的转换矩阵(在 R 中)。这是我的 df 的样子:
City_year1 City_year2
<fct> <fct>
1 Alphen aan den Rijn NA
2 Tynaarlo NA
3 Eindhoven NA
4 Emmen Emmen
5 Emmen Emmen
6 Schagen Schagen
7 Bergen NA
8 Schagen Schagen
9 Schagen Schagen
10 Amsterdam Rotterdam
# .... with 200.000 more rows
我如何根据此 df 中可用的数据轻松创建一个转移矩阵,其中包含某个人在第 1 年从阿姆斯特丹搬到第 2 年鹿特丹的概率。额外信息:第 1 年的唯一值的数量不一定等于第 2 年的#unique 值。我尝试使用马尔可夫函数,但没有成功。
希望有人能帮帮我!
table(df)
将为您提供一个转换计数矩阵,您可以使用 prop.table
:
prop.table(table(df), margin = 1)
margin = 1
表示行中的概率总和为 1。
使用问题中的原始数据:
df = read.table(text = 'City_year1 City_year2
1 Alphen_aan_den_Rijn NA
2 Tynaarlo NA
3 Eindhoven NA
4 Emmen Emmen
5 Emmen Emmen
6 Schagen Schagen
7 Bergen NA
8 Schagen Schagen
9 Schagen Schagen
10 Amsterdam Rotterdam', header = T)
result = prop.table(table(df), margin = 1)
result
# City_year2
# City_year1 Emmen Rotterdam Schagen
# Alphen_aan_den_Rijn
# Amsterdam 0 1 0
# Bergen
# Eindhoven
# Emmen 1 0 0
# Schagen 0 0 1
# Tynaarlo
unclass(result)
# City_year2
# City_year1 Emmen Rotterdam Schagen
# Alphen_aan_den_Rijn NaN NaN NaN
# Amsterdam 0 1 0
# Bergen NaN NaN NaN
# Eindhoven NaN NaN NaN
# Emmen 1 0 0
# Schagen 0 0 1
# Tynaarlo NaN NaN NaN