В данном исследовании анализируются факторы, влияющие на итоговый балл:
— Количество часов учебы — Посещаемость — Уровень мотивации — Семейное положение и доход — Качество преподавания — Физическая активность — Доступ к ресурсам и интернету
Цели исследования:
— Определить ключевые факторы, оказывающие наибольшее влияние на итоговый балл. — Построить визуализации для выявления зависимостей. — Проанализировать многомерные связи между различными факторами. — Выработать рекомендации для улучшения успеваемости.
Первый этап работы — загрузка данных из 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 () отображает каждый график.
В результате выполнения кода будут показаны три боксплота, визуализирующие влияние различных факторов (семейный доход, доступ к ресурсам и качество преподавания) на итоговый балл экзамена. Боксплоты позволяют увидеть распределение баллов и выявить возможные выбросы.
график влияния семейного дохода на итоговый балл
график влияния доступа к ресурсам на итоговый балл
график влияния качества преподавания на итоговый балл
В результате выполнения данного кода будет показана гистограмма, которая визуализирует процент посещаемости успешных учеников, позволяя увидеть, как распределяется этот показатель среди тех, кто достиг высоких оценок.
график распределения посещаемости среди успешных учеников
В результате выполнения этого кода будет показан график параллельных категорий, который позволяет исследовать и визуализировать взаимосвязь между доходом семьи, уровнем образования родителей и итоговыми баллами учеников. Этот график помогает выявлять тенденции и паттерны в данных.
график связи дохода семьи, образования родителей и итоговых баллов
Факторы, положительно влияющие на успеваемость:
— Часы учебы — большее количество времени за учебой связано с высокими результатами. — Посещаемость — ученики, которые посещают занятия чаще, показывают лучшие результаты. — Мотивация — высокий уровень мотивации коррелирует с высокими оценками. — Качество преподавания и доступ к ресурсам — ученики с лучшими учителями и учебными материалами учатся успешнее.
Факторы риска для низких оценок:
— Низкий семейный доход — нехватка ресурсов может мешать подготовке. — Малое количество часов учебы — ученики с плохими оценками учатся заметно меньше.
Влияние типа школы на итоговый балл
Этот код выполняет следующие действия:
Группировка данных: — df.groupby («School_Type») группирует DataFrame df по типу школы, указанному в столбце School_Type. Это позволяет выполнять операции агрегации для каждой группы, основываясь на значениях в указанной колонке.
Анализ оценок: — [«Exam_Score»].describe () применяет метод describe () к столбцу Exam_Score для каждой группы. Этот метод возвращает статистические характеристики, такие как: — количество непустых значений — среднее значение — стандартное отклонение — минимальное значение — 25-й, 50-й (медиана) и 75-й процентиль — максимальное значение
Сброс индекса: — reset_index () сбрасывает индекс группы и возвращает результат в виде нового DataFrame. Это делает полученные данные более удобными для дальнейшего анализа или отображения.
В результате выполнения этого кода будет создан новый DataFrame, содержащий резюме оценок для каждого типа школы, включая основные статистические показатели. Это позволяет видеть, как различается успеваемость по типам школ.
Данный код создает и настраивает диаграмму, показывающую распределение итоговых баллов среди различных типов школ, с возможностью визуализации всех отдельных оценок и основными статистическими показателями.
график уровня мотивации среди успешных студентов
В результате выполнения этого кода мы получаем новый DataFrame, представляющий описательные статистики итоговых баллов для групп, разделенных по наличию доступа к интернету. Это позволяет проанализировать, как доступ к интернету может влиять на итоговые баллы экзаменов.
Влияние наличия интернета на итоговый балл
Этот код создает гистограмму с помощью библиотеки Plotly Express для визуализации распределения итоговых баллов экзаменов в зависимости от наличия доступа к интернету.
график распределения итоговых баллов в зависимости от наличия интернета
Итоговыe баллы в зависимости от пола
Этот код выполняет следующие действия:
Группировка данных: — df.groupby («Gender») группирует данные в DataFrame df по столбцу «Gender», что позволяет разделить данные на подгруппы в зависимости от пола.
Вычисление среднего балла: — [«Exam_Score»].mean () для каждой группы (мужчины и женщины) вычисляет среднее значение итоговых баллов экзамена из столбца «Exam_Score».
Сброс индекса: — reset_index () преобразует результат группировки и агрегации обратно в DataFrame, сбрасывая индекс, чтобы получить привычный формат таблицы.
В итоге результатом выполнения этого кода будет DataFrame, содержащий два столбца: «Gender» и «Exam_Score», где для каждого пола указано среднее значение итогового балла экзаменов. Это позволяет увидеть, как в среднем различаются баллы между мужчинами и женщинами.
Связь физической активности и итогового балла
Результатом выполнения этого кода будет DataFrame, содержащий информацию по каждой категории физической активности и статистические характеристики для экзаменационных баллов (например, среднее значение, стандартное отклонение и т. д.). Это позволяет проанализировать, как физическая активность влияет на результаты экзаменов.
Этот код создает коробчатую диаграмму (box plot) с использованием библиотеки Plotly Express для визуализации связи между физической активностью и итоговыми баллами. Давайте рассмотрим шаги подробнее:
Настройка цветов: — custom_colors = ['#4B0082', '#ADFF2F', '#FF69B4', '#6495ED', '#00008B', '#FF8C00'] задает список цветов, которые будут использоваться для отображения разных уровней физической активности.
Создание диаграммы: — fig11 = px.box (…) создает коробчатую диаграмму с: — x="Physical_Activity» — ось X отображает категории физической активности. — y="Exam_Score» — ось Y показывает итоговые баллы. — color="Physical_Activity» — каждая категория физической активности будет иметь свой цвет. — title — задает заголовок диаграммы. — labels — переопределяет метки осей для более понятного отображения. — color_discrete_sequence=custom_colors — задает пользовательские цвета для каждой категории.
Обновление оформления: — fig11.update_layout (…) изменяет фоновый цвет графика и бумаги (внешняя область вокруг графика). — plot_bgcolor='#ccc' — задает цвет фона графика. — paper_bgcolor='lightgray' — задает цвет фона области, в которой расположен график. — fig11.update_xaxes (showgrid=False) и fig11.update_yaxes (showgrid=False) отключают отображение сетки на осях X и Y.
Отображение графика: — fig11.show () выводит созданную диаграмму на экран.
график связи физической активности и итогового балла
Как образование родителей влияет на итоговый балл
Этот код выполняет операцию группировки и статистического анализа данных в DataFrame df с использованием библиотеки pandas.
Этот код использует библиотеку Plotly Express для создания графика ящик с усами (box plot), который визуализирует влияние образования родителей на итоговые баллы студентов.
В результате мы получим график, который показывает распределение итоговых баллов в зависимости от уровня образования родителей, что позволяет визуально анализировать связь между этими переменными.
график как образование родителей влияет на итоговый балл
Итоговые выводы
Ключевые зависимости:
— Тип школы: Ученики частных школ в среднем показывают более высокие результаты. — Доступ к интернету: Ученики с постоянным доступом к интернету чаще получают более высокие баллы. — Пол: Средние баллы у девушек и юношей практически одинаковы, небольшое преимущество (близкое к 0) у девушек. — Физическая активность: Оптимальная физическая активность (3-4 часа в неделю) связана с лучшими результатами. — Образование родителей: Дети родителей с высшим образованием показывают более высокие результаты.
Описание применения генеративной модели
Был использован для усовершенствования кода



