В данном исследовании анализируются факторы, влияющие на итоговый балл:
- Количество часов учебы
- Посещаемость
- Уровень мотивации
- Семейное положение и доход
- Качество преподавания
- Физическая активность
- Доступ к ресурсам и интернету
Цели исследования:
- Определить ключевые факторы, оказывающие наибольшее влияние на итоговый балл.
- Построить визуализации для выявления зависимостей.
- Проанализировать многомерные связи между различными факторами.
- Выработать рекомендации для улучшения успеваемости.

Первый этап работы — загрузка данных из CSV-файла. Для этого используется библиотека pandas, которая позволяет легко работать с табличными данными. Этот код выполняет следующие действия:
Импортирует необходимые библиотеки:
- pandas для работы с табличными данными;
- numpy для работы с массивами и математическими операциями;
- matplotlib.pyplot для создания графиков и визуализации данных;
- seaborn для расширенной визуализации данных с более красивыми графиками;
- plotly.express и plotly.graph_objects для создания интерактивных графиков.
Отключает предупреждения, чтобы избежать избыточного вывода сообщений при выполнении кода.
Указывает путь к CSV-файлу с данными, который называется "StudentPerformanceFactors.csv".
Загружает данные из указанного CSV-файла в DataFrame df с помощью функции pd.read_csv().
Выводит первые несколько строк загруженного DataFrame с помощью метода head(), что позволяет быстро ознакомиться с содержимым данных.
Проверка и обработка данных
Этот код помогает выявить и подсчитать пропущенные значения в наборе данных, что является важным шагом в процессе подготовки данных к анализу.
Этот код подготавливает данные, заполняя пропущенные значения в определенных столбцах и затем выводит статистическое описание оставшихся данных.
Этот код создает три графика с помощью библиотеки Plotly Express и выполняет их настройку. Вот что делает каждая часть кода:
Создание первого графика:
- fig1 = px.scatter(df, x="Hours_Studied", y="Exam_Score", ...) создает точечный график, показывающий зависимость между количеством часов, проведенных на учебе (Hours_Studied), и итоговым баллом (Exam_Score).
- На графике отображается линия тренда, рассчитанная методом наименьших квадратов (ols).
- Параметры title и labels задают заголовок графика и метки осей, соответственно.
- color задает цвет точек в зависимости от количества часов учебы.
Создание второго графика:
- fig2 = px.scatter(df, x="Previous_Scores", y="Exam_Score", ...) создает график, показывающий связь между предыдущими оценками (Previous_Scores) и итоговым баллом (Exam_Score).
- Аналогично первому графику, устанавливаются линия тренда, заголовок и метки осей.
Создание третьего графика:
- fig3 = px.scatter(df, x="Attendance", y="Exam_Score", ...) создает график, показывающий влияние посещаемости (Attendance) на итоговый балл (Exam_Score).
- Устанавливаются линия тренда, заголовок и метки осей.
Настройка графиков:
- Цикл for i in (fig1, fig2, fig3): проходит по всем созданным графикам.
- i.update_layout(plot_bgcolor='#ccc', paper_bgcolor='lightgray') изменяет цвет фона графиков и области вокруг них.
- i.update_xaxes(showgrid=False) и i.update_yaxes(showgrid=False) убирают сетку на осях.
- i.show() отображает каждый график.
В результате выполнения кода будут показаны три графика, визуализирующие разные аспекты зависимости итогового балла от различных факторов, таких как часы учебы, предыдущие оценки и посещаемость.
график зависимости итогового балла от количества часов учебы
график связи предыдущих оценок с итоговым баллом
график влияния посещаемости на итоговый балл
Выводы
- Количество часов учебы в неделю – значительный фактор успеха. Чем больше учится, тем выше его итоговый балл.
- Предыдущие оценки – главный индикатор успешности на экзамене. Ученики с высокими предыдущими результатами чаще показывают хорошие результаты.
- Посещаемость – имеет умеренное влияние. Высокая посещаемость способствует лучшим результатам.
- Репетиторство – небольшой положительный эффект. Хотя дополнительные занятия помогают, их влияние не столь значительное.
- Сон – незначительный, но отрицательный эффект. Недосып может быть результатом более интенсивной учебы.
- Семейное положение и ресурсы – предстоит детальный анализ.
Дополнительный анализ покажет влияние материального положения и других факторов.
Исследование влияния семейного дохода, доступа к ресурсам и качества преподавания на итоговый балл
Этот код создает три боксплота (box plot) с помощью библиотеки Plotly Express и настраивает их. Вот, что делает каждая часть кода:
Создание первого боксплота:
- fig4 = px.box(df, x="Family_Income", y="Exam_Score", ...) создает боксплот, показывающий влияние уровня семейного дохода (Family_Income) на итоговый балл (Exam_Score).
- На графике отображаются данные о распределении баллов в зависимости от разных уровней дохода.
- Устанавливаются заголовок и метки осей.
Создание второго боксплота:
- fig5 = px.box(df, x="Access_to_Resources", y="Exam_Score", ...) создает боксплот, показывающий влияние доступа к ресурсам (Access_to_Resources) на итоговый балл (Exam_Score).
- Устанавливаются заголовок и метки осей.
Создание третьего боксплота:
- fig6 = px.box(df, x="Teacher_Quality", y="Exam_Score", ...) создает боксплот, который показывает влияние качества преподавания (Teacher_Quality) на итоговый балл (Exam_Score).
- Устанавливаются заголовок и метки осей.
Настройка боксплотов:
- Цикл for i in (fig4, fig5, fig6): проходит по всем созданным боксплотам.
- i.update_layout(plot_bgcolor='#ccc', paper_bgcolor='lightgray') изменяет цвет фона графиков и области вокруг них.
- i.update_xaxes(showgrid=False) и i.update_yaxes(showgrid=False) убирают сетку на осях.
- i.show() отображает каждый график.
В результате выполнения кода будут показаны три боксплота, визуализирующие влияние различных факторов (семейный доход, доступ к ресурсам и качество преподавания) на итоговый балл экзамена. Боксплоты позволяют увидеть распределение баллов и выявить возможные выбросы.
график влияния семейного дохода на итоговый балл
график влияния доступа к ресурсам на итоговый балл
график влияния качества преподавания на итоговый балл
В результате выполнения данного кода будет показана гистограмма, которая визуализирует процент посещаемости успешных учеников, позволяя увидеть, как распределяется этот показатель среди тех, кто достиг высоких оценок.
график распределения посещаемости среди успешных учеников
В результате выполнения этого кода будет показан график параллельных категорий, который позволяет исследовать и визуализировать взаимосвязь между доходом семьи, уровнем образования родителей и итоговыми баллами учеников. Этот график помогает выявлять тенденции и паттерны в данных.




