import numpy as np
import pandas as pd
from pandas import read_csv
import plotly.express as px
import plotly.graph_objects as go
import pingouin as pg
from pingouin import power_corr
import warnings
warnings.filterwarnings("ignore")
Vallat, R. (2018). Pingouin: statistics in Python. Journal of Open Source Software, 3(31), 1026, https://doi.org/10.21105/joss.01026
Plotly Technologies Inc. Collaborative data science. Montréal, QC, 2015. https://plot.ly.
trrDat = pd.read_csv("data/teachers-items.csv")
trrDat_program_1 = trrDat.replace(['Early FI, English language school with FSL'],'Early FI, FSL')
trrDat_program_2 = trrDat_program_1.replace(['English language school with FSL'],'FSL')
trrDat_program_3 = trrDat_program_2.replace(['English language school with FSL, Other'],'FSL, Other')
trrDat_program_4 = trrDat_program_3.replace(['FI and English language school with FSL'],'FI, FSL')
trrDat_program_5 = trrDat_program_4.replace(['FI and French school'],'FI, French school')
trrDat_program_6 = trrDat_program_5.replace(['Early FI and French school'],'Early FI, French school')
trrDat_program_7 = trrDat_program_6.replace(['Late FI'],'FI')
trrDat_program_8 = trrDat_program_7.replace(['English and French'], 'English<br>and<br>French')
trrDat_program_9 = trrDat_program_8.replace(['French and English'], 'French<br>and<br>English')
trrDat_display = trrDat.drop(columns=['v1', 'teachingBoard', 'teachingSchool', 'duration'])
df_short_to_long = pd.melt(trrDat, id_vars =['v1'], value_vars =(trrDat.loc[:, "item01" : "item50"]), var_name='Item', value_name='Scale')
df_ascending = df_short_to_long.sort_values(['v1','Item'])
df_items = df_ascending.rename(columns={'v1': 'Participant'})
df_items.head()
Participant | Item | Scale | |
---|---|---|---|
0 | 1 | item01 | 5 |
39 | 1 | item02 | 4 |
78 | 1 | item03 | 5 |
117 | 1 | item04 | 5 |
156 | 1 | item05 | 4 |
1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|
Tout à fait en désaccord | En désaccord | Ni en accord, ni en désaccord | D'accord | Tout à fait d'accord |
Strongly disagree | Disagree | Neither agree nor disagree | Agree | Strongly agree |
df_scores = df_items['Scale']
df_scores.value_counts()
4 778 5 420 3 336 2 289 1 127 Name: Scale, dtype: int64
survey_participant = px.line(df_items, y='Scale', x='Item', color='Participant', color_discrete_sequence=px.colors.diverging.Portland)
survey_participant.update_layout(showlegend=False, hovermode=False)
survey_participant.show()
Preparedness | Satisfaction | Competence | Confidence |
---|---|---|---|
items 1-13 | items 14-23 | items 24-36 | items 37-50 |
When thinking about your first teaching position, you felt PREPARED because your BEd training included | When thinking about your current teaching position, you feel SATISFIED thanks to | When thinking about your current teaching position, you feel COMPETENT in | When thinking about your current teaching position, you feel CONFIDENT because you receive support in |
... | ... | ... | ... |
01 Assessment (FSL / Immersion / French [first language]) | 14 Collaboration & communication with school team (direction, colleagues, parents and students) | 24 Assessment (FSL / Immersion / French [first language]) | 37 Assessment (FSL / Immersion / French [first language]) |
02 Classroom Management | 15 Mentoring by experienced teachers | 25 Classroom Management | 38 Classroom Management |
03 French Oral Skills | 16 Participation in French-speaking communities & events | 26 Collaboration & communication with school team (direction, colleagues, parents and students) | 39 Collaboration & communication with school team (direction, colleagues, parents and students) |
04 French Written Skills | 17 Participation in French language training | 27 Equity, Diversity & Inclusion (EDI) | 40 Equity, Diversity & Inclusion (EDI) |
05 Enough practicum (FSL / Immersion / French [first language] settings) | 18 Salary | 28 French Oral Skills | 41 French language training |
06 Experience in Canada or abroad (French language settings) | 19 Sense of a school culture of excellence & social belonging | 29 French Written Skills | 42 French Oral Skills |
07 Equity, Diversity & Inclusion (EDI) | 20 Sense of belonging to French-speaking communities | 30 Grade level(s) | 43 French Written Skills |
08 Grade level(s) taught | 21 Vacation | 31 Indigenous perspectives | 44 Grade level(s) taught |
09 Indigenous perspectives | 22 Well-being | 32 Lesson planning | 45 Indigenous perspectives |
10 Lesson planning | 23 Workload & Administrative duties | 33 Pedagogy (FSL / Immersion / French [first language]) | 46 Lesson planning |
11 Pedagogy (FSL / Immersion / French [first language]) | 34 Subjects taught | 47 Pedagogy (FSL / Immersion / French [first language]) | |
12 Subjects taught | 35 Technology | 48 Subjects taught | |
13 Technology | 36 Workload & Administrative duties | 49 Technology | |
50 Workload & Administrative duties |
Items written by Fanny Macé
cross = pd.crosstab(df_items['Item'], df_items['Scale'], colnames=['Item'], rownames=['Scale'], margins=True, margins_name="Total") # normalize='all' for percentages
cross
Item | 1 | 2 | 3 | 4 | 5 | Total |
---|---|---|---|---|---|---|
Scale | ||||||
item01 | 6 | 7 | 7 | 17 | 2 | 39 |
item02 | 3 | 8 | 10 | 14 | 4 | 39 |
item03 | 6 | 3 | 4 | 13 | 13 | 39 |
item04 | 8 | 3 | 3 | 11 | 14 | 39 |
item05 | 5 | 7 | 2 | 14 | 11 | 39 |
item06 | 5 | 4 | 10 | 14 | 6 | 39 |
item07 | 2 | 9 | 10 | 13 | 5 | 39 |
item08 | 2 | 4 | 3 | 18 | 12 | 39 |
item09 | 12 | 14 | 5 | 6 | 2 | 39 |
item10 | 0 | 4 | 5 | 21 | 9 | 39 |
item11 | 5 | 4 | 3 | 17 | 10 | 39 |
item12 | 2 | 3 | 4 | 22 | 8 | 39 |
item13 | 7 | 6 | 13 | 12 | 1 | 39 |
item14 | 1 | 2 | 7 | 22 | 7 | 39 |
item15 | 0 | 8 | 7 | 16 | 8 | 39 |
item16 | 4 | 13 | 9 | 9 | 4 | 39 |
item17 | 3 | 10 | 9 | 14 | 3 | 39 |
item18 | 6 | 8 | 7 | 13 | 5 | 39 |
item19 | 1 | 2 | 11 | 17 | 8 | 39 |
item20 | 5 | 13 | 8 | 8 | 5 | 39 |
item21 | 1 | 1 | 14 | 16 | 7 | 39 |
item22 | 7 | 3 | 11 | 16 | 2 | 39 |
item23 | 12 | 9 | 9 | 7 | 2 | 39 |
item24 | 0 | 4 | 3 | 14 | 18 | 39 |
item25 | 0 | 1 | 3 | 14 | 21 | 39 |
item26 | 0 | 2 | 3 | 20 | 14 | 39 |
item27 | 0 | 4 | 3 | 23 | 9 | 39 |
item28 | 0 | 1 | 1 | 13 | 24 | 39 |
item29 | 0 | 2 | 1 | 16 | 20 | 39 |
item30 | 0 | 0 | 1 | 14 | 24 | 39 |
item31 | 2 | 8 | 6 | 17 | 6 | 39 |
item32 | 0 | 1 | 2 | 16 | 20 | 39 |
item33 | 0 | 2 | 2 | 16 | 19 | 39 |
item34 | 0 | 0 | 2 | 17 | 20 | 39 |
item35 | 0 | 3 | 5 | 23 | 8 | 39 |
item36 | 2 | 8 | 6 | 19 | 4 | 39 |
item37 | 2 | 8 | 9 | 17 | 3 | 39 |
item38 | 1 | 8 | 9 | 16 | 5 | 39 |
item39 | 1 | 6 | 4 | 24 | 4 | 39 |
item40 | 0 | 5 | 12 | 17 | 5 | 39 |
item41 | 3 | 8 | 11 | 12 | 5 | 39 |
item42 | 2 | 9 | 11 | 12 | 5 | 39 |
item43 | 3 | 8 | 12 | 11 | 5 | 39 |
item44 | 0 | 4 | 11 | 15 | 9 | 39 |
item45 | 2 | 8 | 5 | 22 | 2 | 39 |
item46 | 1 | 10 | 10 | 13 | 5 | 39 |
item47 | 2 | 7 | 9 | 15 | 6 | 39 |
item48 | 0 | 4 | 7 | 21 | 7 | 39 |
item49 | 0 | 8 | 9 | 20 | 2 | 39 |
item50 | 3 | 15 | 8 | 11 | 2 | 39 |
Total | 127 | 289 | 336 | 778 | 420 | 1950 |
heatmap_items = px.density_heatmap(df_items, x="Scale", y="Item", marginal_x="histogram", title="", color_continuous_scale=px.colors.diverging.Portland)
heatmap_items.update_yaxes(categoryorder='category descending')
heatmap_items.show()
frequency_counts = trrDat.groupby(['v1', 'gender', 'age', 'fiveYears', 'languageSurvey', 'languageToday', 'languageYouth', 'languageFamily', 'languageYouthSchool', 'languageYouthCommunity', 'programElementary', 'programSecondary', 'teachingYears', 'teachingBoard', 'teachingContext'])['duration'].count().reset_index()
frequency_counts.describe(include=['object'])
gender | age | fiveYears | languageSurvey | languageToday | languageYouth | languageFamily | languageYouthSchool | languageYouthCommunity | programElementary | programSecondary | teachingYears | teachingBoard | teachingContext | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
count | 39 | 39 | 39 | 39 | 39 | 39 | 39 | 39 | 39 | 39 | 39 | 39 | 39 | 39 |
unique | 4 | 4 | 9 | 2 | 4 | 5 | 5 | 3 | 5 | 7 | 8 | 4 | 7 | 6 |
top | Female | 40-49 | FI teacher | English | English and French | French and English | English | French and English | English | French school | French school | 15 | CSSD | Early FI |
freq | 33 | 15 | 17 | 25 | 21 | 15 | 21 | 21 | 21 | 14 | 13 | 20 | 16 | 21 |
frequency_counts_program_1 = frequency_counts.replace(['Early FI, English language school with FSL'],'Early FI, FSL')
frequency_counts_program_2 = frequency_counts_program_1.replace(['English language school with FSL'],'FSL')
frequency_counts_program_3 = frequency_counts_program_2.replace(['English language school with FSL, Other'],'FSL, Other')
frequency_counts_program_4 = frequency_counts_program_3.replace(['FI and English language school with FSL'],'FI, FSL')
frequency_counts_program_5 = frequency_counts_program_4.replace(['FI and French school'],'FI, French school')
frequency_counts_program_6 = frequency_counts_program_5.replace(['Early FI and French school'],'Early FI, French school')
frequency_counts_program_7 = frequency_counts_program_6.replace(['Late FI'],'FI')
French_survey = trrDat.loc[lambda df: (df['languageSurvey']=='French')];
English_survey = trrDat.loc[lambda df: (df['languageSurvey']=='English')];
df_short_to_long_French_survey = pd.melt(French_survey, id_vars =['v1'], value_vars =(trrDat.loc[:, "item01" : "item50"]), var_name='Item', value_name='Scale')
df_ascending_French_survey = df_short_to_long_French_survey.sort_values(['v1','Item'])
df_items_French_survey = df_ascending_French_survey.rename(columns={'v1': 'Participant'})
df_short_to_long_English_survey = pd.melt(English_survey, id_vars =['v1'], value_vars =(trrDat.loc[:, "item01" : "item50"]), var_name='Item', value_name='Scale')
df_ascending_English_survey = df_short_to_long_English_survey.sort_values(['v1','Item'])
df_items_English_survey = df_ascending_English_survey.rename(columns={'v1': 'Participant'})
df_scores_English_survey = df_items_English_survey['Scale']
df_scores_English_survey.value_counts()
4 556 5 221 2 197 3 187 1 89 Name: Scale, dtype: int64
df_scores_French_survey = df_items_French_survey['Scale']
df_scores_French_survey.value_counts()
4 222 5 199 3 149 2 92 1 38 Name: Scale, dtype: int64
language_item = ["English", "French", "English", "French", "English", "French"]
sentiment_item = ["Positive", "Positive", "Negative", "Negative", "Neutral", "Neutral"]
values_item = [777, 421, 286, 130, 187, 149]
language__item_sunburst = pd.DataFrame(dict(language_item=language_item, sentiment_item=sentiment_item, values_item=values_item))
print(language__item_sunburst)
language__item_sunburst = px.sunburst(language__item_sunburst, path=['language_item', 'sentiment_item'], values='values_item', color_discrete_sequence=px.colors.diverging.Portland, title='Teacher Survey Language and Item Sentiment')
language__item_sunburst.update_traces(textinfo="label+percent parent")
language__item_sunburst.update_layout(autosize=False, height=500, width=500)
language__item_sunburst.show()
language_item sentiment_item values_item 0 English Positive 777 1 French Positive 421 2 English Negative 286 3 French Negative 130 4 English Neutral 187 5 French Neutral 149
language_interview = ["English", "French", "English", "French", "English", "French"]
sentiment_interview = ["Positive", "Positive", "Negative", "Negative", "Both", "Both"]
values_interview = [73, 33, 83, 38, 38, 18]
language__interview_sunburst = pd.DataFrame(dict(language_interview=language_interview, sentiment_interview=sentiment_interview, values_interview=values_interview))
print(language__interview_sunburst)
language__interview_sunburst = px.sunburst(language__interview_sunburst, path=['language_interview', 'sentiment_interview'], values='values_interview', color_discrete_sequence=px.colors.diverging.Portland, title='Teacher Interview Language and Code Sentiment')
language__interview_sunburst.update_traces(textinfo="label+percent parent")
language__interview_sunburst.update_layout(autosize=False, height=500, width=500)
language__interview_sunburst.show()
language_interview sentiment_interview values_interview 0 English Positive 73 1 French Positive 33 2 English Negative 83 3 French Negative 38 4 English Both 38 5 French Both 18
language_switching = ["English to French", "French to English", "English to French", "French to English"]
sentiment_switching = ["Positive (5)", "Positive (3)", "Negative (6)", "Negative (11)"]
values_switching = [5, 3, 6, 11]
language_sunburst_switching = pd.DataFrame(dict(language_switching=language_switching, sentiment_switching=sentiment_switching, values_switching=values_switching))
print(language_sunburst_switching)
language_sunburst_switching = px.sunburst(language_sunburst_switching, path=['language_switching', 'sentiment_switching'], values='values_switching', color_discrete_sequence=px.colors.diverging.Portland, title='Teacher Interview Codeswitching Sentiment')
language_sunburst_switching.update_traces(textinfo="label+percent parent")
language_sunburst_switching.update_layout(autosize=False, height=500, width=500)
language_sunburst_switching.show()
language_switching sentiment_switching values_switching 0 English to French Positive (5) 5 1 French to English Positive (3) 3 2 English to French Negative (6) 6 3 French to English Negative (11) 11
teaching_sunburst = px.sunburst(frequency_counts, path=['teachingBoard', 'teachingContext'], color_discrete_sequence=px.colors.diverging.Portland, title='School Board and Teaching Context')
teaching_sunburst.update_traces(textinfo="label+percent parent")
teaching_sunburst.update_layout(autosize=False, height=800)
teaching_heatmap = px.density_heatmap(frequency_counts, x="teachingBoard", y="teachingContext", marginal_x="histogram", marginal_y="histogram",
title="Frequency Counts for School Board and Teaching Context",
labels={"teachingBoard": "School Board", "teachingContext": "Teaching Context"},
text_auto=True, color_continuous_scale=px.colors.diverging.Portland)
teaching_heatmap.update_xaxes(categoryorder='array', categoryarray= ["CBE","CSSD","ECSD", "ESD", "RDPSD", "RVS", "Prefer not to say"])
teaching_heatmap.update_yaxes(categoryorder='array', categoryarray= ["Early FI", "Early FI and Intensive French", "Early FI and Late FI", "Early FI and FSL", "Intensive French", "FSL"])
teaching_heatmap.update_layout(autosize=True, height=400)
teaching_heatmap.show()
program_heatmap = px.density_heatmap(frequency_counts_program_6, x="programElementary", y="programSecondary", marginal_x="histogram", marginal_y="histogram",
title="Frenquency Counts for Programs Attended",
labels={"programElementary": "Elementary Program(s) Attended", "programSecondary": "Secondary Program(s) Attended in Youth"},
text_auto=True, color_continuous_scale=px.colors.diverging.Portland)
program_heatmap.update_xaxes(categoryorder='array', categoryarray= ['Other', 'FSL, Other', 'FSL', 'Early FI, FSL', 'Early FI', 'Early FI, French school', 'French school'])
program_heatmap.update_yaxes(categoryorder='array', categoryarray= ['Other', 'FSL, Other', 'FSL', 'FI, FSL', 'Late FI', 'FI', 'FI, French school', 'French school'])
program_heatmap.update_layout(autosize=True, height=500)
program_heatmap.show()
languageYouth_languageToday_heatmap = px.density_heatmap(frequency_counts, x="languageYouth", y="languageToday", marginal_x="histogram", marginal_y="histogram",
title="Frenquency Counts for Language(s) Used Most in Youth at Home and Today",
text_auto=True,
labels={"languageYouth": "Language(s) Used Most in Youth at Home", "languageToday": "Language(s) Used Most Today"},
color_continuous_scale=px.colors.diverging.Portland)
languageYouth_languageToday_heatmap.update_xaxes(categoryorder='array', categoryarray= ['Other', 'English, Other', 'English', 'French and English', 'French'])
languageYouth_languageToday_heatmap.update_yaxes(categoryorder='array', categoryarray= ['Other', 'English', 'English and French', 'French'])
languageYouth_languageToday_heatmap.show()
frequency_counts_age_teachingYears = frequency_counts.replace(['15'],'Over 15')
age_teachingYears_heatmap = px.density_heatmap(frequency_counts_age_teachingYears, x="age", y="teachingYears", marginal_x="histogram", marginal_y="histogram", title="Teachers' Age by Number of Years Teaching",
text_auto=True, color_continuous_scale=px.colors.diverging.Portland, labels={"age": "Age", "teachingYears": "Years Teaching"})
age_teachingYears_heatmap.update_xaxes(categoryorder='category ascending')
age_teachingYears_heatmap.update_yaxes(categoryorder='array', categoryarray= ["1-3","4-10","11-15", "Over 15"])
age_teachingYears_heatmap.show()
frequency_counts_fiveYears_1 = frequency_counts.replace(['Educational leader','School principal'],'Education admin')
frequency_counts_fiveYears_2 = frequency_counts_fiveYears_1.replace(['FI teacher','FSL teacher'],'Teacher of FSL')
fiveYears_pie = px.pie(frequency_counts_fiveYears_2, values='duration', names='fiveYears', color_discrete_sequence=px.colors.diverging.Portland, title='Dans 5 ans, vous travaillerez ... <br>In 5 years from now you will work as ...',
labels={"duration": "Count", "fiveYears": "Role in 5 years", "Teacher of FSL": "Teacher of FSL (23)", "Education admin": "Education admin (8)", "Retirement": "Retirement (4)", "Job unrelated to education": "Job unrelated to education (2)", "Teacher (another subject)": "Teacher another subject (1)", "Unsure": "Unsure (1)"})
fiveYears_pie.update_layout(autosize=False, height=500)
fiveYears_pie.update_traces(textinfo='percent+value')
fiveYears_pie.show()
frequency_counts_no_v1 = frequency_counts.drop(columns=['v1'])
frequency_counts_commitment = frequency_counts_no_v1.drop(columns=['teachingBoard', 'duration', 'gender', 'programElementary', 'programSecondary'])
participantsfiveYearsContext = frequency_counts_commitment.loc[lambda df: (df['fiveYears'] == 'Unsure') |(df['fiveYears'] == 'Job unrelated to education') |(df['fiveYears'] == 'Teacher (another subject)') ];
participantsfiveYearsContext
age | fiveYears | languageSurvey | languageToday | languageYouth | languageFamily | languageYouthSchool | languageYouthCommunity | teachingYears | teachingContext | |
---|---|---|---|---|---|---|---|---|---|---|
4 | 40-49 | Teacher (another subject) | English | English | English | English | French and English | English | 4-10 | FSL |
23 | 50-59 | Job unrelated to education | French | French | French | French | French | English | 15 | Early FI |
27 | 20-29 | Unsure | English | English | English | French and English | French | French and English | 1-3 | Intensive French |
29 | 30-39 | Job unrelated to education | English | English and French | French and English | English | French and English | French and English | 4-10 | Early FI |
df_short_to_long_satisfaction = pd.melt(trrDat, id_vars =['v1'], value_vars =(trrDat.loc[:, "item14" : "item23"]), var_name='Item', value_name='Scale')
df_ascending_satisfaction = df_short_to_long_satisfaction.sort_values(['v1','Item'])
df_items_satisfaction = df_ascending_satisfaction.rename(columns={'v1': 'Participant'})
heatmap_items_satisfaction = px.density_heatmap(df_items_satisfaction, x="Scale", y="Item", marginal_x="histogram",
text_auto=True, title="", color_continuous_scale=px.colors.diverging.Portland)
heatmap_items_satisfaction.update_yaxes(categoryorder='category descending')
heatmap_items_satisfaction.show()
items_satisfaction = trrDat.loc[:, 'item14':'item23']
pg.cronbach_alpha(data=items_satisfaction)
(0.8363858363858364, array([0.748, 0.903]))
satisfaction_correlations = items_satisfaction.corr(method='spearman').round(2)
satisfaction_corr = satisfaction_correlations.where(np.tril(np.ones(satisfaction_correlations.shape)).astype(bool))
satisfaction_fig = go.Figure()
satisfaction_fig.add_trace(go.Heatmap(x = satisfaction_corr.columns, y = satisfaction_corr.index, z = np.array(satisfaction_corr), colorscale='Portland'))
satisfaction_fig.update_xaxes(showgrid=False)
satisfaction_fig.update_yaxes(showgrid=False)
satisfaction_fig.update_xaxes(categoryorder='category ascending')
satisfaction_fig.update_yaxes(categoryorder='category descending')
satisfaction_fig.update_layout(template='simple_white')
satisfaction_fig.show()
corr = pg.pairwise_corr(data=items_satisfaction, method='spearman').round(3)
corr.sort_values(by=['p-unc'])[['X', 'Y', 'n', 'r', "CI95%", 'p-unc', 'power']].head()
X | Y | n | r | CI95% | p-unc | power | |
---|---|---|---|---|---|---|---|
44 | item22 | item23 | 39 | 0.728 | [0.53, 0.85] | 0.000 | 1.000 |
38 | item19 | item23 | 39 | 0.575 | [0.32, 0.75] | 0.000 | 0.978 |
20 | item16 | item20 | 39 | 0.671 | [0.45, 0.81] | 0.000 | 0.998 |
17 | item16 | item17 | 39 | 0.572 | [0.31, 0.75] | 0.000 | 0.977 |
39 | item20 | item21 | 39 | 0.495 | [0.21, 0.7] | 0.001 | 0.908 |
frequency_counts_bars = trrDat.groupby(['item14', 'item16', 'item20', 'item28', 'item29', 'item33', 'item42', 'item43', 'item47','v1', 'gender', 'age', 'fiveYears', 'languageSurvey', 'languageToday', 'languageYouth', 'languageFamily', 'languageYouthSchool', 'languageYouthCommunity', 'programElementary', 'programSecondary', 'teachingYears', 'teachingBoard', 'teachingContext'])['duration'].count().reset_index()
Participation aux communautés & aux événements de / en langue française
Participation in French-speaking communities & events
trrDat.loc[:, 'item16'].median()
3.0
px.bar(frequency_counts_bars, x="item16", y="duration", color_discrete_sequence=px.colors.diverging.Portland, labels={"duration": "counts"},
hover_data=["languageYouth", "languageYouthCommunity", "programSecondary", "languageToday", "teachingContext", "teachingYears", "fiveYears"])
profile_lang_participation = px.parallel_categories(trrDat_program_9,
dimensions=['languageYouth', 'languageYouthCommunity','programSecondary', 'languageToday'],
color="item16", title="Teacher Linguistic Experience by Satisfaction Participation in French-speaking Communities",
labels={"item16": "Item 16", "languageYouth": "Language Youth Home", "languageYouthCommunity": "Language Youth Community", "programSecondary": "Secondary Program Attended","languageToday": "Language Used Today"},
color_continuous_scale=px.colors.diverging.Portland)
profile_lang_participation.show()
box_item16_1 = px.box(trrDat_program_7, x="languageYouth", y="item16", color="languageYouth", points="all", color_discrete_sequence=px.colors.diverging.Portland,
hover_data=["languageYouthCommunity","programSecondary","teachingContext","teachingYears","fiveYears"],
labels={"languageYouth": "Language(s) Used Most Youth at Home", "languageYouthCommunity": "Language(s) Used Most Youth in Community", "programSecondary": "Secondary Program Attended", "languageToday": "Language(s) Used Most Today", "teachingContext": "Current Teacing Context", "teachingYears": "Years Teaching", "fiveYears":"Role 5 Years"},
title='Item 16: Satisfaction Participation French-speaking Communities by Language Spoken during Youth at Home')
box_item16_1.update_layout(showlegend=False)
box_item16_1.show()
box_item16_2 = px.box(trrDat_program_7, x="languageYouthCommunity", y="item16", color="languageYouthCommunity", points="all", color_discrete_sequence=px.colors.diverging.Portland,
hover_data=["languageYouth","programSecondary","teachingContext","teachingYears","fiveYears"],
labels={"languageYouth": "Language(s) Used Most Youth at Home", "languageYouthCommunity": "Language(s) Used Most Youth in Community", "programSecondary": "Secondary Program Attended", "languageToday": "Language(s) Used Most Today", "teachingContext": "Current Teacing Context", "teachingYears": "Years Teaching", "fiveYears":"Role 5 Years"},
title='Item 16: Satisfaction Participation French-speaking Communities by Language(s) Spoken in Youth in the Community')
box_item16_2.update_layout(showlegend=False)
box_item16_2.show()
box_item16_3 = px.box(trrDat_program_7, x="programSecondary", y="item16", color="programSecondary", points="all", color_discrete_sequence=px.colors.diverging.Portland,
hover_data=["teachingContext","languageYouth","teachingYears","fiveYears"],
labels={"languageYouth": "Language(s) Used Most Youth at Home", "languageYouthCommunity": "Language(s) Used Most Youth in Community", "programSecondary": "Secondary Program Attended", "languageToday": "Language(s) Used Most Today", "teachingContext": "Current Teacing Context", "teachingYears": "Years Teaching", "fiveYears":"Role 5 Years"},
title='Item 16: Satisfaction Participation French-speaking Communities by Secondary Program Attended')
box_item16_3.update_layout(showlegend=False)
box_item16_3.show()
Sentiment d'appartenance aux communautés de langue française
Sense of belonging to French-speaking communities
trrDat.loc[:, 'item20'].median()
3.0
px.bar(frequency_counts_bars, x="item20", y="duration", color_discrete_sequence=px.colors.diverging.Portland, labels={"duration": "counts"},
hover_data=["languageYouth", "languageYouthCommunity", "programSecondary", "languageToday", "teachingContext", "teachingYears", "fiveYears"])
profile_lang_belonging = px.parallel_categories(trrDat_program_9,
dimensions=['languageYouth', 'languageYouthCommunity', 'programSecondary', 'languageToday'],
color="item20",
title="Teacher Linguistic Experience by Satisfaction Sense of Belonging to French-speaking Communities",
labels={"item16": "Item 16", "languageYouth": "Language Youth Home", "languageYouthCommunity": "Language Youth Community", "programSecondary": "Secondary Program Attended","languageToday": "Language Used Today"},
color_continuous_scale=px.colors.diverging.Portland)
profile_lang_belonging.show()
box_item16_1 = px.box(trrDat_program_7, x="languageYouth", y="item20", color="languageYouth", points="all", color_discrete_sequence=px.colors.diverging.Portland,
hover_data=["languageYouthCommunity","programSecondary","teachingContext","teachingYears","fiveYears"],
labels={"languageYouth": "Language(s) Used Most Youth at Home", "languageYouthCommunity": "Language(s) Used Most Youth in Community", "programSecondary": "Secondary Program Attended", "languageToday": "Language(s) Used Most Today", "teachingContext": "Current Teacing Context", "teachingYears": "Years Teaching", "fiveYears":"Role 5 Years"},
title='Item 20: Satisfaction Belonging French-speaking communities by Language Spoken during Youth at Home')
box_item16_1.update_layout(showlegend=False)
box_item16_1.show()
box_item16_2 = px.box(trrDat_program_7, x="languageYouthCommunity", y="item20", color="languageYouthCommunity", points="all", color_discrete_sequence=px.colors.diverging.Portland,
hover_data=["languageYouth","programSecondary","teachingContext","teachingYears","fiveYears"],
labels={"languageYouth": "Language(s) Used Most Youth at Home", "languageYouthCommunity": "Language(s) Used Most Youth in Community", "programSecondary": "Secondary Program Attended", "languageToday": "Language(s) Used Most Today", "teachingContext": "Current Teacing Context", "teachingYears": "Years Teaching", "fiveYears":"Role 5 Years"},
title='Item 20: Satisfaction Belonging French-speaking Communities by Language(s) Spoken in Youth in the Community')
box_item16_2.update_layout(showlegend=False)
box_item16_2.show()
box_item16_3 = px.box(trrDat_program_7, x="programSecondary", y="item20", color="programSecondary", points="all", color_discrete_sequence=px.colors.diverging.Portland,
hover_data=["teachingContext","languageYouth","teachingYears","fiveYears"],
labels={"languageYouth": "Language(s) Used Most Youth at Home", "languageYouthCommunity": "Language(s) Used Most Youth in Community", "programSecondary": "Secondary Program Attended", "languageToday": "Language(s) Used Most Today", "teachingContext": "Current Teacing Context", "teachingYears": "Years Teaching", "fiveYears":"Role 5 Years"},
title='Item 20: Satisfaction Belonging French-speaking Communities by Secondary Program Attended')
box_item16_3.update_layout(showlegend=False)
box_item16_3.show()
program_community_heatmap = px.density_heatmap(frequency_counts_program_6, x="languageYouthCommunity", y="programSecondary", marginal_x="histogram", marginal_y="histogram",
title="Language(s) Used Most in Youth in the Community by Secondary Program Attended",
labels={"languageYouthCommunity": "Language(s) Used Most in Youth in Community", "programSecondary": "Secondary Program(s) Attended"},
text_auto=True, color_continuous_scale=px.colors.diverging.Portland)
program_community_heatmap.update_xaxes(categoryorder='array', categoryarray= ['English', 'French and English, Other', 'French and English, English', 'French and English', 'French'])
program_community_heatmap.update_yaxes(categoryorder='array', categoryarray= ['Other', 'FSL, Other', 'FSL', 'FI, FSL', 'FI', 'FI, French school', 'French school'])
program_community_heatmap.update_layout(autosize=True, height=500)
program_community_heatmap.show()
trrDat.loc[:, 'item28'].median()
5.0
px.bar(frequency_counts_bars, x="item28", y="duration", color_discrete_sequence=px.colors.diverging.Portland, labels={"duration": "counts"},
hover_data=["languageYouth", "languageYouthCommunity", "programSecondary", "languageToday", "teachingContext", "teachingYears", "fiveYears"])
trrDat.loc[:, 'item29'].median()
5.0
px.bar(frequency_counts_bars, x="item29", y="duration", color_discrete_sequence=px.colors.diverging.Portland, labels={"duration": "counts"},
hover_data=["languageYouth", "languageYouthCommunity", "programSecondary", "languageToday", "teachingContext", "teachingYears", "fiveYears"])
trrDat.loc[:, 'item33'].median()
4.0
px.bar(frequency_counts_bars, x="item33", y="duration", color_discrete_sequence=px.colors.diverging.Portland, labels={"duration": "counts"},
hover_data=["languageYouth", "languageYouthCommunity", "programSecondary", "languageToday", "teachingContext", "teachingYears", "fiveYears"])
trrDat.loc[:, 'item42'].median()
3.0
px.bar(frequency_counts_bars, x="item42", y="duration", color_discrete_sequence=px.colors.diverging.Portland, labels={"duration": "counts"},
hover_data=["languageYouth", "languageYouthCommunity", "programSecondary", "languageToday", "teachingContext", "teachingYears", "fiveYears"])
trrDat.loc[:, 'item43'].median()
3.0
px.bar(frequency_counts_bars, x="item43", y="duration", color_discrete_sequence=px.colors.diverging.Portland, labels={"duration": "counts"},
hover_data=["languageYouth", "languageYouthCommunity", "programSecondary", "languageToday", "teachingContext", "teachingYears", "fiveYears"])
trrDat.loc[:, 'item47'].median()
4.0
px.bar(frequency_counts_bars, x="item47", y="duration", color_discrete_sequence=px.colors.diverging.Portland, labels={"duration": "counts"},
hover_data=["languageYouth", "languageYouthCommunity", "programSecondary", "languageToday", "teachingContext", "teachingYears", "fiveYears"])
items_satcompcon = trrDat.iloc[:, [14, 16, 20, 28, 29, 33, 42, 43, 47]]
pg.cronbach_alpha(data=items_satcompcon)
(0.8302216814327541, array([0.737, 0.9 ]))
satcompcon_correlations = items_satcompcon.corr(method='spearman').round(2)
satcompcon_corr = satcompcon_correlations.where(np.tril(np.ones(satcompcon_correlations.shape)).astype(bool))
satcompcon_fig = go.Figure()
satcompcon_fig.add_trace(go.Heatmap(x = satcompcon_corr.columns, y = satcompcon_corr.index, z = np.array(satcompcon_corr), colorscale='Portland'))
satcompcon_fig.update_xaxes(showgrid=False)
satcompcon_fig.update_yaxes(showgrid=False)
satcompcon_fig.update_xaxes(categoryorder='category ascending')
satcompcon_fig.update_yaxes(categoryorder='category descending')
satcompcon_fig.update_layout(template='simple_white')
satcompcon_fig.show()
corr_satcompcon = pg.pairwise_corr(data=items_satcompcon, method='spearman').round(2)
corr_satcompcon.sort_values(by=['p-unc'])[['X', 'Y', 'n', 'r', "CI95%", 'p-unc', 'power']]
X | Y | n | r | CI95% | p-unc | power | |
---|---|---|---|---|---|---|---|
35 | item43 | item47 | 39 | 0.63 | [0.39, 0.79] | 0.00 | 0.99 |
1 | item14 | item20 | 39 | 0.45 | [0.15, 0.67] | 0.00 | 0.83 |
33 | item42 | item43 | 39 | 0.94 | [0.88, 0.97] | 0.00 | 1.00 |
26 | item29 | item33 | 39 | 0.66 | [0.44, 0.81] | 0.00 | 1.00 |
22 | item28 | item33 | 39 | 0.48 | [0.19, 0.69] | 0.00 | 0.88 |
21 | item28 | item29 | 39 | 0.79 | [0.63, 0.88] | 0.00 | 1.00 |
19 | item20 | item43 | 39 | 0.51 | [0.23, 0.71] | 0.00 | 0.92 |
8 | item16 | item20 | 39 | 0.67 | [0.45, 0.81] | 0.00 | 1.00 |
18 | item20 | item42 | 39 | 0.45 | [0.16, 0.67] | 0.00 | 0.84 |
34 | item42 | item47 | 39 | 0.66 | [0.43, 0.81] | 0.00 | 1.00 |
13 | item16 | item43 | 39 | 0.61 | [0.36, 0.77] | 0.00 | 0.99 |
12 | item16 | item42 | 39 | 0.54 | [0.28, 0.73] | 0.00 | 0.96 |
20 | item20 | item47 | 39 | 0.42 | [0.12, 0.65] | 0.01 | 0.77 |
0 | item14 | item16 | 39 | 0.38 | [0.07, 0.62] | 0.02 | 0.68 |
14 | item16 | item47 | 39 | 0.35 | [0.03, 0.6] | 0.03 | 0.59 |
7 | item14 | item47 | 39 | 0.35 | [0.04, 0.6] | 0.03 | 0.60 |
5 | item14 | item42 | 39 | 0.34 | [0.03, 0.59] | 0.04 | 0.57 |
6 | item14 | item43 | 39 | 0.30 | [-0.02, 0.56] | 0.07 | 0.46 |
28 | item29 | item43 | 39 | 0.28 | [-0.04, 0.55] | 0.08 | 0.42 |
11 | item16 | item33 | 39 | 0.27 | [-0.05, 0.54] | 0.10 | 0.39 |
24 | item28 | item43 | 39 | 0.27 | [-0.05, 0.54] | 0.10 | 0.38 |
10 | item16 | item29 | 39 | 0.26 | [-0.06, 0.53] | 0.11 | 0.37 |
32 | item33 | item47 | 39 | 0.24 | [-0.08, 0.52] | 0.14 | 0.32 |
16 | item20 | item29 | 39 | 0.22 | [-0.11, 0.5] | 0.18 | 0.27 |
27 | item29 | item42 | 39 | 0.21 | [-0.11, 0.5] | 0.19 | 0.26 |
23 | item28 | item42 | 39 | 0.21 | [-0.12, 0.49] | 0.21 | 0.24 |
9 | item16 | item28 | 39 | 0.20 | [-0.13, 0.48] | 0.23 | 0.22 |
31 | item33 | item43 | 39 | 0.16 | [-0.16, 0.45] | 0.33 | 0.16 |
4 | item14 | item33 | 39 | -0.16 | [-0.45, 0.17] | 0.34 | 0.16 |
15 | item20 | item28 | 39 | 0.16 | [-0.17, 0.45] | 0.34 | 0.16 |
17 | item20 | item33 | 39 | 0.15 | [-0.17, 0.45] | 0.36 | 0.15 |
29 | item29 | item47 | 39 | 0.14 | [-0.18, 0.44] | 0.40 | 0.13 |
25 | item28 | item47 | 39 | 0.07 | [-0.26, 0.37] | 0.69 | 0.07 |
3 | item14 | item29 | 39 | -0.06 | [-0.37, 0.26] | 0.70 | 0.07 |
30 | item33 | item42 | 39 | 0.03 | [-0.29, 0.34] | 0.87 | 0.05 |
2 | item14 | item28 | 39 | -0.02 | [-0.33, 0.3] | 0.92 | 0.05 |
confidence_French_oral_Youth_Home = px.box(trrDat_program_7, x="languageYouth", y="item42", color="languageYouth", points="all", color_discrete_sequence=px.colors.diverging.Portland,
hover_data=["languageYouth","programSecondary","teachingContext","teachingYears","fiveYears"],
labels={"languageYouth": "Language(s) Used Most Youth at Home", "languageYouthCommunity": "Language(s) Used Most Youth in Community", "programSecondary": "Secondary Program Attended", "languageToday": "Language(s) Used Most Today", "teachingContext": "Current Teacing Context", "teachingYears": "Years Teaching", "fiveYears":"Role 5 Years"},
title='Item 42 Confidence French Oral Skills (Median = 3)<br>by Language(s) Used Most in Youth at Home')
confidence_French_oral_Youth_Home.update_layout(showlegend=False)
confidence_French_oral_Youth_Home.show()
confidence_French_oral_Youth_Community = px.box(trrDat_program_7, x="languageYouthCommunity", y="item42", color="languageYouthCommunity", points="all", color_discrete_sequence=px.colors.diverging.Portland,
hover_data=["languageYouth","programSecondary","teachingContext","teachingYears","fiveYears"],
labels={"languageYouth": "Language(s) Used Most Youth at Home", "languageYouthCommunity": "Language(s) Used Most Youth in Community", "programSecondary": "Secondary Program Attended", "languageToday": "Language(s) Used Most Today", "teachingContext": "Current Teacing Context", "teachingYears": "Years Teaching", "fiveYears":"Role 5 Years"},
title='Item 42 Confidence French Oral Skills (Median = 3)<br>by Language(s) Used Most in Youth in the Community')
confidence_French_oral_Youth_Community.update_layout(showlegend=False)
confidence_French_oral_Youth_Community.show()
confidence_French_oral_Program_Secondary = px.box(trrDat_program_7, x="programSecondary", y="item42", color="programSecondary", points="all", color_discrete_sequence=px.colors.diverging.Portland,
hover_data=["languageYouth","programSecondary","teachingContext","teachingYears","fiveYears"],
labels={"languageYouth": "Language(s) Used Most Youth at Home", "languageYouthCommunity": "Language(s) Used Most Youth in Community", "programSecondary": "Secondary Program Attended", "languageToday": "Language(s) Used Most Today", "teachingContext": "Current Teacing Context", "teachingYears": "Years Teaching", "fiveYears":"Role 5 Years"},
title='Item 42 Confidence French Oral Skills (Median = 3)<br>by Secondary Program Attended')
confidence_French_oral_Program_Secondary.update_layout(showlegend=False)
confidence_French_oral_Program_Secondary.show()
confidence_French_oral_Today = px.box(trrDat_program_7, x="languageToday", y="item42", color="languageToday", points="all", color_discrete_sequence=px.colors.diverging.Portland,
hover_data=["languageYouth","programSecondary","teachingContext","teachingYears","fiveYears"],
labels={"languageYouth": "Language(s) Used Most Youth at Home", "languageYouthCommunity": "Language(s) Used Most Youth in Community", "programSecondary": "Secondary Program Attended", "languageToday": "Language(s) Used Most Today", "teachingContext": "Current Teacing Context", "teachingYears": "Years Teaching", "fiveYears":"Role 5 Years"},
title='Item 42 Confidence French Oral Skills (Median = 3)<br>by Language(s) Used Most Today')
confidence_French_oral_Today.update_layout(showlegend=False)
confidence_French_oral_Today.show()
confidence_French_written_Youth_Home = px.box(trrDat_program_7, x="languageYouth", y="item43", color="languageYouth", points="all", color_discrete_sequence=px.colors.diverging.Portland,
hover_data=["languageYouth","programSecondary","teachingContext","teachingYears","fiveYears"],
labels={"languageYouth": "Language(s) Used Most Youth at Home", "languageYouthCommunity": "Language(s) Used Most Youth in Community", "programSecondary": "Secondary Program Attended", "languageToday": "Language(s) Used Most Today", "teachingContext": "Current Teacing Context", "teachingYears": "Years Teaching", "fiveYears":"Role 5 Years"},
title='Item 43 Confidence French Written Skills (Median = 3)<br>by Language(s) Used Most in Youth at Home')
confidence_French_written_Youth_Home.update_layout(showlegend=False)
confidence_French_written_Youth_Home.show()
confidence_French_written_Youth_Community = px.box(trrDat_program_7, x="languageYouthCommunity", y="item43", color="languageYouthCommunity", points="all", color_discrete_sequence=px.colors.diverging.Portland,
hover_data=["languageYouth","programSecondary","teachingContext","teachingYears","fiveYears"],
labels={"languageYouth": "Language(s) Used Most Youth at Home", "languageYouthCommunity": "Language(s) Used Most Youth in Community", "programSecondary": "Secondary Program Attended", "languageToday": "Language(s) Used Most Today", "teachingContext": "Current Teacing Context", "teachingYears": "Years Teaching", "fiveYears":"Role 5 Years"},
title='Item 43 Confidence French Written Skills (Median = 3)<br>by Language(s) Used Most in Youth in the Community')
confidence_French_written_Youth_Community.update_layout(showlegend=False)
confidence_French_written_Youth_Community.show()
confidence_French_written_Program_Secondary = px.box(trrDat_program_7, x="programSecondary", y="item43", color="programSecondary", points="all", color_discrete_sequence=px.colors.diverging.Portland,
hover_data=["languageYouth","programSecondary","teachingContext","teachingYears","fiveYears"],
labels={"languageYouth": "Language(s) Used Most Youth at Home", "languageYouthCommunity": "Language(s) Used Most Youth in Community", "programSecondary": "Secondary Program Attended", "languageToday": "Language(s) Used Most Today", "teachingContext": "Current Teacing Context", "teachingYears": "Years Teaching", "fiveYears":"Role 5 Years"},
title='Item 43 Confidence French Written Skills (Median = 3)<br>by Secondary Program Attended')
confidence_French_written_Program_Secondary.update_layout(showlegend=False)
confidence_French_written_Program_Secondary.show()
confidence_French_written_Today = px.box(trrDat_program_7, x="languageToday", y="item43", color="languageToday", points="all", color_discrete_sequence=px.colors.diverging.Portland,
hover_data=["languageYouth","programSecondary","teachingContext","teachingYears","fiveYears"],
labels={"languageYouth": "Language(s) Used Most Youth at Home", "languageYouthCommunity": "Language(s) Used Most Youth in Community", "programSecondary": "Secondary Program Attended", "languageToday": "Language(s) Used Most Today", "teachingContext": "Current Teacing Context", "teachingYears": "Years Teaching", "fiveYears":"Role 5 Years"},
title='Item 43 Confidence French Written Skills (Median = 3)<br>by Language(s) Used Most Today')
confidence_French_written_Today.update_layout(showlegend=False)
confidence_French_written_Today.show()
confidence_French_written_Program_Secondary = px.box(trrDat_program_7, x="languageYouth", y="item47", color="languageYouth", points="all", color_discrete_sequence=px.colors.diverging.Portland,
hover_data=["languageYouth","programSecondary","teachingContext","teachingYears","fiveYears"],
labels={"languageYouth": "Language(s) Used Most Youth at Home", "languageYouthCommunity": "Language(s) Used Most Youth in Community", "programSecondary": "Secondary Program Attended", "languageToday": "Language(s) Used Most Today", "teachingContext": "Current Teacing Context", "teachingYears": "Years Teaching", "fiveYears":"Role 5 Years"},
title='Item 47 Confidence French Pedagogy (Median = 4)<br>by Language(s) Used Most in Youth at Home')
confidence_French_written_Program_Secondary.update_layout(showlegend=False)
confidence_French_written_Program_Secondary.show()
confidence_French_pedagogy_Youth_Community = px.box(trrDat_program_7, x="languageYouthCommunity", y="item47", color="languageYouthCommunity", points="all", color_discrete_sequence=px.colors.diverging.Portland,
hover_data=["languageYouth","programSecondary","teachingContext","teachingYears","fiveYears"],
labels={"languageYouth": "Language(s) Used Most Youth at Home", "languageYouthCommunity": "Language(s) Used Most Youth in Community", "programSecondary": "Secondary Program Attended", "languageToday": "Language(s) Used Most Today", "teachingContext": "Current Teacing Context", "teachingYears": "Years Teaching", "fiveYears":"Role 5 Years"},
title='Item 47 Confidence French Pedagogy (Median = 4)<br>by Language(s) Used Most in Youth in the Community')
confidence_French_pedagogy_Youth_Community.update_layout(showlegend=False)
confidence_French_pedagogy_Youth_Community.show()
confidence_French_pedagogy_program = px.box(trrDat_program_7, x="programSecondary", y="item47", color="programSecondary", points="all", color_discrete_sequence=px.colors.diverging.Portland,
hover_data=["languageYouth","programSecondary","teachingContext","teachingYears","fiveYears"],
labels={"languageYouth": "Language(s) Used Most Youth at Home", "languageYouthCommunity": "Language(s) Used Most Youth in Community", "programSecondary": "Secondary Program Attended", "languageToday": "Language(s) Used Most Today", "teachingContext": "Current Teacing Context", "teachingYears": "Years Teaching", "fiveYears":"Role 5 Years"},
title='Item 47 Confidence French Pedagogy (Median = 4)<br>by Secondary Program Attended')
confidence_French_pedagogy_program.update_layout(showlegend=False)
confidence_French_pedagogy_program.show()
confidence_French_pedagogy_Today = px.box(trrDat_program_7, x="languageToday", y="item47", color="languageToday", points="all", color_discrete_sequence=px.colors.diverging.Portland,
hover_data=["languageYouth","programSecondary","teachingContext","teachingYears","fiveYears"],
labels={"languageYouth": "Language(s) Used Most Youth at Home", "languageYouthCommunity": "Language(s) Used Most Youth in Community", "programSecondary": "Secondary Program Attended", "languageToday": "Language(s) Used Most Today", "teachingContext": "Current Teacing Context", "teachingYears": "Years Teaching", "fiveYears":"Role 5 Years"},
title='Item 47 Confidence French Pedagogy (Median = 4)<br>by Language(s) Used Most Today')
confidence_French_pedagogy_Today.update_layout(showlegend=False)
confidence_French_pedagogy_Today.show()