Share |

вторник, 13 января 2015 г.

Как зависит удовлетворенность электронным курсом от времени его прохождения

Порешаем кейс Аналитика в дистанционном обучении.
Напомню, основная идея: посмотреть как время прохождения курса влияет на оценку удовлетворенности этим курсом.

Диаграмма. Распределение времени прохождения курсов


Как зависит удовлетворенность электронным курсом от времени его прохождения
Данные по оценкам такие
     1     2       3      4        5
   63    90   769  5280 22585
Ценность прогноза, безусловно, снижается тем, что у "пятерки" дают три четверти оценок. Тем не менее, мы различия нашли
Данные регрессии следующие (время прохождения курса мы логарифмируем)
lm(formula = log(r1$timec, base = exp(1)) ~ k, data = r1)

Residuals:
    Min      1Q  Median      3Q     Max
-1.2396 -0.5590 -0.0482  0.4218  3.3122

Coefficients:
             Estimate Std. Error t value Pr(>|t|)  
(Intercept) 3.9601884  0.0046702 847.976  < 2e-16 ***
k1          0.2416935  0.0866167   2.790  0.00527 **
k2          0.2267594  0.0730114   3.106  0.00190 **
k3          0.1126549  0.0255257   4.413 1.02e-05 ***
k4          0.0004889  0.0107263   0.046  0.96364  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.7027 on 28870 degrees of freedom
  (19 observations deleted due to missingness)
Multiple R-squared:  0.001263, Adjusted R-squared:  0.001124
F-statistic: 9.125 on 4 and 28870 DF,  p-value: 2.305e-07
Потрясающий R^2?)
И распределение времени по каждому уровню оценки
Как читать диаграмму boxplot - для понимания результатов
Как зависит удовлетворенность электронным курсом от времени его прохождения

16 комментариев:

  1. Почему название поста не "Зависит ли удовлетворенность электронным курсом от времени его прохождения?" :))))

    ОтветитьУдалить
    Ответы
    1. я исчерпал запас креатива на названия)

      Удалить
    2. Не бережёшь ты себя.
      Просто нумеруй посты :)
      ну какое-то время, в целях экономии и аккумуляции креативной энергии

      Удалить
    3. посты надо продавать
      если заметил, у меня часто название поста не очень соответствует начинке)))

      Удалить
  2. попробовал порешать кейс и сразу затупил.
    скачал данные, считал таблицу(две колонки последние: "Сколько времени потратил на изучение курса в минутах? Введи число" и "Оцени весь курс по пятибальной оценке".
    Получил следующее распределение оценок:

    sum(all5, na.rm = TRUE)
    [1] 1.000156e+13
    sum(all4, na.rm = TRUE)
    [1] 120098211
    sum(all3, na.rm = TRUE)
    [1] 6502598
    sum(all2, na.rm = TRUE)
    [1] 100635
    sum(all1, na.rm = TRUE)
    [1] 1.036565e+15

    Доктор, что я делаю не так?

    ОтветитьУдалить
  3. я протупил, вместо количества оценок просуммировал время :)
    переделал, и получилось, что значения отличаются всё равно, у меня вышло:

    1 2 3 4 5
    126 155 1042 6514 28168

    ОтветитьУдалить
  4. а какой функцией считал?
    не пробовал просто table(..$..) - многоточия, потому что не помню уже имен переменных

    ни хрена чему вас на курсере учат))) я бы не догадался так)))

    ОтветитьУдалить
  5. Там учат как правильно делать, а это то, что я запомнил:)

    Повторил сейчас эксперимент:

    ## 1. Скачал файл "Аналитика в дистанционном обучении (данные для анализа)".
    ## 2. Переименовал две последние колонки ("Сколько времени потратил на изучение курса в минутах? Введи число" и "Оцени весь курс по пятибальной оценке") в timec и mark, соответственно.
    ## 3. Заменил все пустые значения на NA.
    ## 4. Скопировал эти две колонки в буфер обмена.
    ## 5. Назначил elearn
    elearn <- read.table("clipboard", header = TRUE)
    ## 6. Посмотрел, что из себя представляет наша таблица с данными:
    str(elearn)
    'data.frame': 36066 obs. of 2 variables:
    $ timec: Factor w/ 266 levels "0","1","10","100",..: 206 54 73 85 23 85 205 114 149 73 ...
    $ mark : int 5 5 5 5 4 4 5 4 5 5 ...
    ## 7. Проверил твой способ
    table(elearn$mark)
    1 2 3 4 5
    126 155 1042 6514 28168

    ОтветитьУдалить
    Ответы
    1. я понял, в чем тебя обманул
      мы с Заказчиком сделали ограничения по времени прохождения курса:

      1) курс не может быть меньше .... 3 минут кажись... или 5-ти

      2) не больше.....

      ну здесб все просто
      subset

      Иван, прошу прощения((((
      я такие вещи упускаю..

      да, ограничения потому, что меньше физически невозможно, больше - это шутники

      в любом случае время часто с потолка берется, отсюа таие нточности

      Удалить
  6. Ты меня успокоил, я думал опять где-то туплю :)

    ОтветитьУдалить
    Ответы
    1. а я зато увидел новую формулу sum(all.....
      никогда ранее не встречался

      ....

      и еще: ты обратил внимание, какой маленький R^2

      Удалить
  7. На самом деле это просто сумма.

    R^2 вдохновляет, ага))

    ОтветитьУдалить
    Ответы
    1. в смысле all5 - это просто ты так обозначил, а не есть аргумент этой функции?

      так заметь R^2 = 0.001263, но значимость p-value: 2.305e-07

      т.е. R:2 значим. вот оно чё...

      Удалить
    2. именно так, это просто вектор со всеми значениями по пятёркам.

      про значимость R^2 вспомнил анекдот:

      На совещании в министерстве экономического развития Белорусии:
      Слушайте, ребята, нефть – она же в земле?
      – Ну да.
      – Вот. И картошка наша тоже в земле. Так вот я что думаю: может, мы просто невнимательно копаем?

      Удалить
    3. т.е. all5 это все таки вектор? R распознает команду all5?

      Удалить
    4. я назначил этот вектор, назвал его all5

      Удалить