krackhardt_datasets
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
krackhardt_datasets [2019/12/04 08:47] – [Using cutree] hkimscil | krackhardt_datasets [2019/12/13 14:11] (current) – hkimscil | ||
---|---|---|---|
Line 65: | Line 65: | ||
< | < | ||
- | krack_friend <- delete.edges(krack_full, | + | krack_friend <- delete_edges(krack_full, |
summary(krack_friend) | summary(krack_friend) | ||
krack_friend[] | krack_friend[] | ||
- | krack_advice <- delete.edges(krack_full, | + | krack_advice <- delete_edges(krack_full, |
summary(krack_advice) | summary(krack_advice) | ||
krack_advice[] | krack_advice[] | ||
- | krack_reports_to <- delete.edges(krack_full, | + | krack_reports_to <- delete_edges(krack_full, |
summary(krack_reports_to) | summary(krack_reports_to) | ||
krack_reports_to[] | krack_reports_to[] | ||
Line 213: | Line 213: | ||
< | < | ||
- | # Next, we'll use the same procedure to add social-interaction | + | # Next, we'll use the same procedure to add advice |
# information. | # information. | ||
krack_advice_matrix_row_to_col <- get.adjacency(krack_advice, | krack_advice_matrix_row_to_col <- get.adjacency(krack_advice, | ||
Line 226: | Line 226: | ||
krack_advice_matrix <- rbind(krack_advice_matrix_row_to_col, | krack_advice_matrix <- rbind(krack_advice_matrix_row_to_col, | ||
krack_advice_matrix | krack_advice_matrix | ||
- | + | </ | |
+ | |||
+ | |||
+ | < | ||
+ | krack_friend_matrix_row_to_col <- get.adjacency(krack_friend, | ||
+ | krack_friend_matrix_row_to_col | ||
+ | |||
+ | # To operate on a binary graph, simply leave off the " | ||
+ | # parameter: | ||
+ | krack_friend_matrix_row_to_col_bin <- get.adjacency(krack_friend) | ||
+ | krack_friend_matrix_row_to_col_bin | ||
+ | |||
+ | # For this lab, we'll use the valued graph. The next step is to | ||
+ | # concatenate it with its transpose in order to capture both | ||
+ | # incoming and outgoing task interactions. | ||
+ | krack_friend_matrix_col_to_row <- t(as.matrix(krack_friend_matrix_row_to_col)) | ||
+ | krack_friend_matrix_col_to_row | ||
+ | |||
+ | krack_friend_matrix <- rbind(krack_friend_matrix_row_to_col, | ||
+ | krack_friend_matrix | ||
+ | </ | ||
+ | |||
+ | |||
+ | < | ||
+ | # ra (ar) | ||
krack_reports_to_advice_matrix <- rbind(krack_reports_to_matrix, | krack_reports_to_advice_matrix <- rbind(krack_reports_to_matrix, | ||
krack_reports_to_advice_matrix | krack_reports_to_advice_matrix | ||
+ | |||
+ | # fa | ||
+ | krack_friend_advice_matrix <- rbind(krack_friend_matrix, | ||
+ | krack_friend_advice_matrix | ||
+ | |||
+ | # fr | ||
+ | krack_friend_reports_to_matrix <- rbind(krack_friend_matrix, | ||
+ | krack_friend_reports_to_matrix | ||
+ | |||
+ | |||
+ | # far | ||
+ | krack_friend_advice_reports_to_matrix <- rbind(krack_friend_advice_matrix, | ||
+ | krack_friend_advice_reports_to_matrix | ||
</ | </ | ||
+ | |||
< | < | ||
Line 238: | Line 276: | ||
krack_reports_to_advice_cors <- cor(as.matrix(krack_reports_to_advice_matrix)) | krack_reports_to_advice_cors <- cor(as.matrix(krack_reports_to_advice_matrix)) | ||
krack_reports_to_advice_cors | krack_reports_to_advice_cors | ||
+ | |||
+ | krack_friend_advice_cors <- cor(as.matrix(krack_friend_advice_matrix)) | ||
+ | krack_friend_advice_cors | ||
+ | |||
+ | krack_friend_reports_to_cors <- cor(as.matrix(krack_friend_reports_to_matrix)) | ||
+ | krack_friend_reports_to_cors | ||
+ | |||
+ | krack_friend_advice_reports_to_cors <- cor(as.matrix(krack_friend_advice_reports_to_matrix)) | ||
+ | krack_friend_advice_reports_to_cors | ||
+ | |||
+ | |||
</ | </ | ||
Line 246: | Line 295: | ||
# or equal to 0; thus, highly dissimilar (i.e., negatively | # or equal to 0; thus, highly dissimilar (i.e., negatively | ||
# correlated) actors have higher values. | # correlated) actors have higher values. | ||
- | dissimilarity | + | dissimilarity_ra |
- | krack_reports_to_dist | + | krack_reports_to_advice_dist |
- | krack_reports_to_dist | + | krack_reports_to_advice_dist |
+ | dissimilarity_fa <- 1 - krack_friend_advice_cors | ||
+ | krack_friend_advice_dist <- as.dist(dissimilarity_fa) | ||
+ | krack_friend_advice_dist | ||
+ | |||
+ | dissimilarity_rf <- 1 - krack_reports_to_friend_cors | ||
+ | krack_reports_to_friend_dist <- as.dist(dissimilarity_rf) | ||
+ | krack_reports_to_friend_dist | ||
+ | |||
+ | dissimilarity_far <- 1 - krack_friend_advice_reports_to_cors | ||
+ | krack_friend_advice_reports_to_dist <- as.dist(dissimilarity_far) | ||
+ | krack_friend_advice_reports_to_dist | ||
+ | |||
+ | |||
+ | |||
# Note that it is also possible to use dist() directly on the | # Note that it is also possible to use dist() directly on the | ||
# matrix. However, since cor() looks at associations between | # matrix. However, since cor() looks at associations between | ||
Line 1654: | Line 1717: | ||
</ | </ | ||
{{: | {{: | ||
+ | |||
+ | ===== decision on # of clusters | ||
< | < | ||
# From a visual inspection of the correlation matrix, we can | # From a visual inspection of the correlation matrix, we can | ||
# decide on the proper number of clusters in this network. | # decide on the proper number of clusters in this network. | ||
- | # For this network, we'll use 4. (Note that the 1-cluster | + | # For this network, we'll use 6. (Note that the 1-cluster |
# solution doesn' | # solution doesn' | ||
# with the observed correlation matrix is undefined.) | # with the observed correlation matrix is undefined.) | ||
num_clusters = 4 | num_clusters = 4 | ||
- | clusters <- cutree(krack_reports_to_advice_hclust, k = num_clusters) | + | clusters <- cutree(krack_friend_advice_hclust, k = num_clusters) |
clusters | clusters | ||
- | + | ||
- | cluster_cor_mat <- clusterCorr(krack_reports_to_advice_cors, | + | cluster_cor_mat <- clusterCorr(krack_friend_advice_cors, clusters) |
- | | + | round(cluster_cor_mat,2) |
- | cluster_cor_mat | + | |
- | + | ||
# Let's look at the correlation between this cluster configuration | # Let's look at the correlation between this cluster configuration | ||
# and the observed correlation matrix. This should match the | # and the observed correlation matrix. This should match the | ||
# corresponding value from clustered_observed_cors above. | # corresponding value from clustered_observed_cors above. | ||
- | gcor(cluster_cor_mat, | + | gcor(cluster_cor_mat, |
- | + | ||
+ | </ | ||
+ | |||
+ | < | ||
##################### | ##################### | ||
# Questions: | # Questions: | ||
Line 1680: | Line 1747: | ||
##################### | ##################### | ||
| | ||
- | |||
- | |||
### NOTE ON DEDUCTIVE CLUSTERING | ### NOTE ON DEDUCTIVE CLUSTERING | ||
Line 1698: | Line 1763: | ||
# You could then examine the fitness of this cluster configuration | # You could then examine the fitness of this cluster configuration | ||
# as follows: | # as follows: | ||
- | deductive_cluster_cor_mat <- generate_cluster_cor_mat( | + | deductive_cluster_cor_mat <- generate_cluster_cor_mat(krack_friend_advice_cors, deductive_clusters) |
- | krack_reports_to_advice_cors, | + | |
- | | + | |
deductive_cluster_cor_mat | deductive_cluster_cor_mat | ||
- | gcor(deductive_cluster_cor_mat, | + | gcor(deductive_cluster_cor_mat, |
### END NOTE ON DEDUCTIVE CLUSTERING | ### END NOTE ON DEDUCTIVE CLUSTERING | ||
Line 1710: | Line 1773: | ||
# networks. | # networks. | ||
- | # Task valued | + | # Friendship |
- | task_mean | + | friend_mean |
- | task_mean | + | friend_mean |
- | task_valued_blockmodel | + | friend_valued_blockmodel |
- | task_valued_blockmodel | + | friend_valued_blockmodel |
- | # Task binary | + | # friend |
- | task_density | + | friend_density |
- | task_density | + | friend_density |
- | task_binary_blockmodel | + | friend_binary_blockmodel |
- | task_binary_blockmodel | + | friend_binary_blockmodel |
- | # Social | + | # advice |
advice_mean <- mean(as.matrix(krack_advice_matrix_row_to_col)) | advice_mean <- mean(as.matrix(krack_advice_matrix_row_to_col)) | ||
advice_mean | advice_mean | ||
Line 1732: | Line 1795: | ||
advice_valued_blockmodel | advice_valued_blockmodel | ||
- | # Social | + | # advice |
advice_density <- graph.density(krack_advice) | advice_density <- graph.density(krack_advice) | ||
advice_density | advice_density | ||
Line 1738: | Line 1801: | ||
advice_binary_blockmodel <- blockmodel(as.matrix(krack_advice_matrix_row_to_col_bin), | advice_binary_blockmodel <- blockmodel(as.matrix(krack_advice_matrix_row_to_col_bin), | ||
advice_binary_blockmodel | advice_binary_blockmodel | ||
+ | |||
+ | |||
# We can also permute the network to examine the within- and | # We can also permute the network to examine the within- and | ||
Line 1744: | Line 1809: | ||
cluster_cor_mat_per <- permute_matrix(clusters, | cluster_cor_mat_per <- permute_matrix(clusters, | ||
cluster_cor_mat_per | cluster_cor_mat_per | ||
+ | </ | ||
+ | < | ||
##################### | ##################### | ||
# Questions: | # Questions: |
krackhardt_datasets.txt · Last modified: 2019/12/13 14:11 by hkimscil