21 – Analizando la tasa de finalización de cursos del MIT OCW en YouTube

Posted on Sep 23, 2021 – - by Franco
Cover del post

En Youtube hay varios videos colgados de profesores dando clases de universidad y de colegio sobre diversos cursos. Como muchos he visto varios de estos videos y algunas clases las he terminado y algunas no, a veces no solo por la calidad del video, pero incluso por el contenido. Me pareció interesante analizar tres cursos que ofrece el MIT a través de su proyecto OCW para ver su tasa de finalización, es decir cuantos ven el primer video vs cuantos ven el video “n” y ver como se comportan las vistas.

Hipotesis

Mi hipotesis es que las vistas deben comportarse distribuirse de manera natural, viendo un decremento a una tasa casi fija. El primer video, será el más visto y mientras va avanzando el curso irá bajando progresivamente. Supongo que los videos que tengan una tasa de reducción menor video a video indicará la calidad del curso.

Checklist

  • Elegir 3 cursos del MIT OCW en YouTube a analizar
  • Obtener las vistas de cada video en el curso
  • Graficar las vistas por curso
  • Analizar los graficos

Nota: Vamos a seguir un proceso semi-automatizado para obtener las vistas y graficar los resultados.

Eligiendo los curso

Quizá lo más sencillo, entramos a la página de clases de la MIT OCW y elegimos tres:

En realidad, no afecta que curso es, pero elegí estos por un interés personal y porque tienen 24 videos cada uno. En realidad podemos usar cualquier lista de reproducción en YouTube.

Obteniendo las vistas

Para obtener las vistas de la lista de reproducción usaremos youtube-dl, una gran herramienta para descargar videos para uso personal de YouTube y cientos de otras webs. Link de Descarga

Si bien youtube-dl fue hecho para descargar videos la herramienta nos permite especificar opciones especiales para solo obtener la metadata.

1
youtube-dl --all-subs --skip-download https://www.youtube.com/playlist?list=PLUl4u3cNGP63UUkfL0onkxF6MYgVa04Fn -o '%(playlist_index)02d-%(view_count)07d'

No es necesario entender lo que hacen las opciones pero si prefieren pueden leer un poco más en el repositorio de youtube-dl. Veamos el resultado del comando:

Lista de vistas de Blockchain OCW Vista del primer curso en YouTube

Perfecto, el primer video coincide con lo que vemos en YouTube. Vamos en buen camino.

Si bien es cierto tenemos las vistas, las tenemos como nombres de archivo, sería mejor si pudieramos tenerlo como una tabla.

Para esto usaremos awk una herramienta de procesamiento muy antigua pero extremadamente poderosa:

1
ls . | awk -v FIELDWIDTHS="2 1 7 7" -v OFS="," '{print $1,$3}' > output.csv

Una vez hecho esto tendremos un archivo CSV (que lo podemos abrir con Numbers o Excel) con las vistas.

Indice Vistas
01 4092814
02 1089490
03 0555792
04 0266423
05 0224858
06 0289215
07 0129352
08 0163710
09 0100136
10 0098352
11 0133583
12 0070041
13 0105146
14 0081479
15 0211863
16 0090385
17 0055269
18 0034733
19 0035115
20 0047644
21 0038432
22 0025659
23 0027031

Graficando las vistas

Para graficarlo, en realidad podemos usar cualquier herramienta, yo usaré Chart.css para poder mostrarles la data aquí, pero podríamos usar Excel o Numbers.

Vistas del video 1 a 23
Indice Vistas
01 4092814
02 1089490
03 0555792
04 0266423
05 0224858
06 0289215
07 0129352
08 0163710
09 0100136
10 0098352
11 0133583
12 0070041
13 0105146
14 0081479
15 0211863
16 0090385
17 0055269
18 0034733
19 0035115
20 0047644
21 0038432
22 0025659
23 0027031

Definitivamente pareciera que la data se está reduciendo de manera geométrica, calculemos el cambio de video a video en vistas. Actualicemos el comando anterior para incluir el porcentaje de cambio:

1
2
3
4
 ls . | awk -v FIELDWIDTHS="2 1 7 7" -v OFS="," 'BEGIN{prev=1;print "Indice,Vistas,Porcentaje del anterior"}{printf("%d,%d,%2.2f\%\n",$1,$3,($3-prev)/prev*100"%");prev=$3 }' > output.csv
 ls . | awk -v FIELDWIDTHS="2 1 7 7" -v OFS="," 'BEGIN{prev=-1;avg=0;count=0;print "Indice,Vistas,Porcentaje del anterior"}{if (prev==-1){prev=$3*0.5};if($0 == "output.csv"){next};rate=($3-prev)/prev*100;printf("%d,%d,%2.2f\%\n",$1,$3,rate);prev=$3;avg+=(rate-avg)/++count;}END{print avg"%",count}' > output.csv

mkdir resultado && cd resultado && youtube-dl --all-subs --skip-download https://www.youtube.com/playlist?list=PLUl4u3cNGP63UUkfL0onkxF6MYgVa04Fn -o '%(playlist_index)02d-%(view_count)07d' && ls . | awk -v FIELDWIDTHS="2 1 7 7" -v OFS="," 'BEGIN{prev=-1;avg=0;neg_avg=0;count=0;neg_count=0;print "Indice,Vistas,Porcentaje del anterior"}{if (prev==-1){prev=$3*0.5};if($0 == "output.csv"){next};rate=($3-prev)/prev*100;printf("%d,%d,%2.2f\%\n",$1,$3,rate);prev=$3;if(rate == 100){next};avg+=(rate-avg)/++count;if(rate < 0){neg_avg+=(rate-neg_avg)/++neg_count}}END{print "Promedio",avg"%",count; print "Promedio Negativos",neg_avg"%",neg_count}' > output.csv
Indice Vistas Porcentaje del anterior
1 4092814 100.00%
2 1089490 -73.38%
3 555792 -48.99%
4 266423 -52.06%
5 224858 -15.60%
6 289215 28.62%
7 129352 -55.27%
8 163710 26.56%
9 100136 -38.83%
10 98352 -1.78%
11 133583 35.82%
12 70041 -47.57%
13 105146 50.12%
14 81479 -22.51%
15 211863 160.02%
16 90385 -57.34%
17 55269 -38.85%
18 34733 -37.16%
19 35115 1.10%
20 47644 35.68%
21 38432 -19.34%
22 25659 -33.24%
23 27031 5.35%
Promedio -9.02913% 22
Promedio Negativos -38.7081% 14

Graficando el porcentaje podemos sacar varios datos interesantes:

Gráfico de barras de porcentajes

  • Solo 8 de los 23 son positivos (34%)
  • El video 15 tiene crecimiento increiblemente alto (160%) a comparación del anterior.
  • El promedio de decrecimiento es de -9.03% considerando todos los videos.
  • Quitando los positivos, en promedio el decrecimiento por video es de -38.71%
  • La tasa de finalización, es decir, la fracción de vistas entre el primer video y el último es de 0.66%. Es decir, de cada 1000 personas que ven el video numero 1, solo 7 verán el último.

Resultados de Curso 2:

Siguiendo la misma metodología obtenemos la tabla y grafico para el curso 2:

Indice Vistas Porcentaje del anterior
1 581895 100.00%
2 212260 -63.52%
3 84856 -60.02%
4 56002 -34.00%
5 76086 35.86%
6 39761 -47.74%
7 24482 -38.43%
8 16754 -31.57%
9 17741 5.89%
10 27065 52.56%
11 20997 -22.42%
12 11087 -47.20%
13 16651 50.18%
14 10151 -39.04%
15 11773 15.98%
16 9850 -16.33%
17 8505 -13.65%
18 9897 16.37%
19 15848 60.13%
20 13435 -15.23%
21 9126 -32.07%
22 9858 8.02%
23 8083 -18.01%
24 9430 16.66%
25 10688 13.34%
26 21167 98.04%
Promedio -4.24762% 25
Promedio Negativos -34.2308% 14

Tasa: 3.63%

Gráfico de barras de porcentajes

Resultados de Curso 3:

Siguiendo la misma metodología obtenemos la tabla y grafico para el curso 3:

Indice Vistas Porcentaje del anterior
1 1009048 100.00%
2 303217 -69.95%
3 151706 -49.97%
4 98970 -34.76%
5 71247 -28.01%
6 58743 -17.55%
7 50493 -14.04%
8 48746 -3.46%
9 47250 -3.07%
10 51489 8.97%
11 38247 -25.72%
12 31654 -17.24%
13 31300 -1.12%
14 42179 34.76%
15 39179 -7.11%
16 40867 4.31%
17 37450 -8.36%
18 30608 -18.27%
19 30360 -0.81%
20 32479 6.98%
21 26604 -18.09%
22 28791 8.22%
23 24610 -14.52%
24 26137 6.20%
Promedio -11.4179% 23
Promedio Negativos -19.5326% 17

Tasa: 2.59%

Gráfico de barras de porcentajes

Tabulando los resultados de los tres cursos y promediandolos

Curso 1 Resultado
Decrecimiento Promedio -9.02913%
Promedio Negativos -38.7081%
Tasa 0.66%
Curso 2 Resultado
Decrecimiento Promedio -4.24762%
Promedio Negativos -34.2308%
Tasa 3.63%
Curso 3 Resultado
Decrecimiento Promedio -11.4179%
Promedio Negativos -19.5326%
Tasa 2.59%
Promedio Resultado
Decrecimiento Promedio -8%
Promedio Negativos -30%;
Tasa de Finalización 2.29%

Conclusiones e Insights

  • En promedio obtenemos que la tasa de finalización promedio para los cursos es de tán solo de 2%, es decir 2 de cada 100 personas que inician el curso lo terminan.
  • El promedio de decrecimiento promedio es de 8%, siendo los cursos 1 y 3 peores que el promedio.
  • El promedio de decrecimiento de solo los videos en negativo es de 30%. Siendo el Curso 1 y 2 los cursos con las peores tasas.

Estos resultados sugieren que:

  • El curso 1 es muy popular pero no logra cautivar a los alumnos para terminarlo teniendo 3 veces peor tasa de finalización que el promedio. Viendo el tema (blockchain), tiene sentido.
  • El curso 2 es el mejor de los analizados, tiene una promedio en la tasa de decrecimiento mejor que el resto, y la tasa de finalización más elevada. (Microeconomía)
  • El curso 3 es un curso que si bien es cierto tiene un decrecimiento promedio elevado, el promedio negativo es muy inferior al promedio de los otros dos cursos analizados.

Eso es todo por hoy, espero que este post les haya parecido interesante, o al menos hayan podido tener un vistazo tras bambalinas en el mundo del analisis de datos por computadora.

Nota sobre la fuente de data: Estos números asumen que 1 vista equivale a una sola persona, (que el usuario no repite el mismo video)


Script completo:

1
mkdir resultado && cd resultado && youtube-dl --all-subs --skip-download https://www.youtube.com/playlist?list=PL44ABC9278E2EE706 -o '%(playlist_index)02d-%(view_count)07d' && ls . | awk -v FIELDWIDTHS="2 1 7 7" -v OFS="," 'BEGIN{prev=-1;avg=0;neg_avg=0;count=0;neg_count=0;print "Indice,Vistas,Porcentaje del anterior"}{if (prev==-1){prev=$3*0.5};if($0 == "output.csv"){next};rate=($3-prev)/prev*100;printf("%d,%d,%2.2f\%\n",$1,$3,rate);prev=$3;if(rate == 100){next}avg+=(rate-avg)/++count;if(rate < 0){neg_avg+=(rate-neg_avg)/++neg_count}}END{print "Promedio",avg"%",count; print "Promedio Negativos",neg_avg"%",neg_count}' > output.csv | cat output.csv | pbcopy

Usamos CSV to Markdown y CSV to HTML para mostrar las tablas