Skip to content

Random Examples

%load_ext autoreload
%matplotlib inline

import matplotlib.pyplot as plt
import pandas as pd

import circumplex
from circumplex import octants

data = pd.read_excel(
    "/Users/mitch/Library/CloudStorage/OneDrive-UniversityCollegeLondon/_Fellowship/Papers - Drafts/J2308_APA_SATP-Main/data/SATP Dataset v1.4.xlsx"  # noqa: E501
)
%autoreload
plt.style.use("ggplot")
scales = ["PAQ1", "PAQ2", "PAQ3", "PAQ4", "PAQ5", "PAQ6", "PAQ7", "PAQ8"]

ssm_res = circumplex.ssm_analyze(
    data, scales, angles=octants(), grouping="Language", measures=["loud"]
)
fig = ssm_res.plot_circle()
plt.show()

ssm_res.summary()
Statistical Basis:   Correlation Scores
Bootstrap Resamples: 2000
Confidence Level:    0.95
Listwise Deletion:   True
Scale Displacements: [0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0]


                     Profile                     
┏━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓
┃               Estimate  Lower CI  Upper CI ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━┩
│ Elevation    │ -0.03    │ -0.043   │ -0.018   │
│ X-Value      │ -0.649   │ -0.683   │ -0.614   │
│ Y-Value      │ 0.421    │ 0.366    │ 0.471    │
│ Amplitude    │ 0.774    │ 0.743    │ 0.805    │
│ Displacement │ 147.051  │ 143.151  │ 151.255  │
│ Model Fit    │ 0.978    │          │          │
└──────────────┴──────────┴──────────┴──────────┘
                     Profile                     
┏━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓
┃               Estimate  Lower CI  Upper CI ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━┩
│ Elevation    │ 0.002    │ -0.012   │ 0.016    │
│ X-Value      │ -0.575   │ -0.619   │ -0.53    │
│ Y-Value      │ 0.371    │ 0.32     │ 0.422    │
│ Amplitude    │ 0.684    │ 0.647    │ 0.722    │
│ Displacement │ 147.187  │ 142.638  │ 151.806  │
│ Model Fit    │ 0.983    │          │          │
└──────────────┴──────────┴──────────┴──────────┘
                     Profile                     
┏━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓
┃               Estimate  Lower CI  Upper CI ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━┩
│ Elevation    │ 0.062    │ 0.049    │ 0.075    │
│ X-Value      │ -0.502   │ -0.545   │ -0.459   │
│ Y-Value      │ 0.463    │ 0.417    │ 0.508    │
│ Amplitude    │ 0.684    │ 0.647    │ 0.718    │
│ Displacement │ 137.315  │ 132.946  │ 141.561  │
│ Model Fit    │ 0.916    │          │          │
└──────────────┴──────────┴──────────┴──────────┘
                     Profile                     
┏━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓
┃               Estimate  Lower CI  Upper CI ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━┩
│ Elevation    │ 0.033    │ 0.014    │ 0.053    │
│ X-Value      │ -0.493   │ -0.533   │ -0.454   │
│ Y-Value      │ 0.367    │ 0.315    │ 0.418    │
│ Amplitude    │ 0.615    │ 0.577    │ 0.654    │
│ Displacement │ 143.332  │ 138.42   │ 148.371  │
│ Model Fit    │ 0.912    │          │          │
└──────────────┴──────────┴──────────┴──────────┘
                     Profile                     
┏━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓
┃               Estimate  Lower CI  Upper CI ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━┩
│ Elevation    │ 0.082    │ 0.069    │ 0.095    │
│ X-Value      │ -0.392   │ -0.419   │ -0.365   │
│ Y-Value      │ 0.585    │ 0.557    │ 0.614    │
│ Amplitude    │ 0.704    │ 0.676    │ 0.732    │
│ Displacement │ 123.804  │ 121.532  │ 126.017  │
│ Model Fit    │ 0.929    │          │          │
└──────────────┴──────────┴──────────┴──────────┘
                     Profile                     
┏━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓
┃               Estimate  Lower CI  Upper CI ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━┩
│ Elevation    │ 0.016    │ 0.003    │ 0.03     │
│ X-Value      │ -0.63    │ -0.664   │ -0.595   │
│ Y-Value      │ 0.382    │ 0.331    │ 0.432    │
│ Amplitude    │ 0.737    │ 0.708    │ 0.766    │
│ Displacement │ 148.747  │ 144.514  │ 153.013  │
│ Model Fit    │ 0.956    │          │          │
└──────────────┴──────────┴──────────┴──────────┘
                     Profile                     
┏━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓
┃               Estimate  Lower CI  Upper CI ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━┩
│ Elevation    │ -0.001   │ -0.019   │ 0.017    │
│ X-Value      │ -0.494   │ -0.528   │ -0.458   │
│ Y-Value      │ 0.567    │ 0.523    │ 0.609    │
│ Amplitude    │ 0.752    │ 0.72     │ 0.784    │
│ Displacement │ 131.042  │ 127.782  │ 134.461  │
│ Model Fit    │ 0.947    │          │          │
└──────────────┴──────────┴──────────┴──────────┘
fig = ssm_res.plot_curve(incl_fit=True)
plt.tight_layout()
plt.show()

test = circumplex.ssm_analyze(
    data, scales, angles=octants(), measures=["loud"], grouping="Language"
)
test.summary()
Statistical Basis:   Correlation Scores
Bootstrap Resamples: 2000
Confidence Level:    0.95
Listwise Deletion:   True
Scale Displacements: [0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0]


                     Profile                     
┏━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓
┃               Estimate  Lower CI  Upper CI ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━┩
│ Elevation    │ -0.03    │ -0.043   │ -0.017   │
│ X-Value      │ -0.649   │ -0.682   │ -0.614   │
│ Y-Value      │ 0.421    │ 0.367    │ 0.471    │
│ Amplitude    │ 0.774    │ 0.744    │ 0.804    │
│ Displacement │ 147.051  │ 143.049  │ 151.4    │
│ Model Fit    │ 0.978    │          │          │
└──────────────┴──────────┴──────────┴──────────┘
                     Profile                     
┏━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓
┃               Estimate  Lower CI  Upper CI ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━┩
│ Elevation    │ 0.002    │ -0.013   │ 0.016    │
│ X-Value      │ -0.575   │ -0.619   │ -0.525   │
│ Y-Value      │ 0.371    │ 0.318    │ 0.422    │
│ Amplitude    │ 0.684    │ 0.646    │ 0.722    │
│ Displacement │ 147.187  │ 142.359  │ 152.087  │
│ Model Fit    │ 0.983    │          │          │
└──────────────┴──────────┴──────────┴──────────┘
                     Profile                     
┏━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓
┃               Estimate  Lower CI  Upper CI ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━┩
│ Elevation    │ 0.062    │ 0.05     │ 0.075    │
│ X-Value      │ -0.502   │ -0.543   │ -0.459   │
│ Y-Value      │ 0.463    │ 0.415    │ 0.512    │
│ Amplitude    │ 0.684    │ 0.648    │ 0.718    │
│ Displacement │ 137.315  │ 132.725  │ 141.726  │
│ Model Fit    │ 0.916    │          │          │
└──────────────┴──────────┴──────────┴──────────┘
                     Profile                     
┏━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓
┃               Estimate  Lower CI  Upper CI ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━┩
│ Elevation    │ 0.033    │ 0.014    │ 0.052    │
│ X-Value      │ -0.493   │ -0.532   │ -0.45    │
│ Y-Value      │ 0.367    │ 0.315    │ 0.418    │
│ Amplitude    │ 0.615    │ 0.575    │ 0.653    │
│ Displacement │ 143.332  │ 138.393  │ 148.466  │
│ Model Fit    │ 0.912    │          │          │
└──────────────┴──────────┴──────────┴──────────┘
                     Profile                     
┏━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓
┃               Estimate  Lower CI  Upper CI ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━┩
│ Elevation    │ 0.082    │ 0.069    │ 0.095    │
│ X-Value      │ -0.392   │ -0.419   │ -0.362   │
│ Y-Value      │ 0.585    │ 0.554    │ 0.614    │
│ Amplitude    │ 0.704    │ 0.676    │ 0.732    │
│ Displacement │ 123.804  │ 121.435  │ 126.105  │
│ Model Fit    │ 0.929    │          │          │
└──────────────┴──────────┴──────────┴──────────┘
                     Profile                     
┏━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓
┃               Estimate  Lower CI  Upper CI ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━┩
│ Elevation    │ 0.016    │ 0.002    │ 0.029    │
│ X-Value      │ -0.63    │ -0.666   │ -0.596   │
│ Y-Value      │ 0.382    │ 0.33     │ 0.435    │
│ Amplitude    │ 0.737    │ 0.708    │ 0.766    │
│ Displacement │ 148.747  │ 144.483  │ 153.22   │
│ Model Fit    │ 0.956    │          │          │
└──────────────┴──────────┴──────────┴──────────┘
                     Profile                     
┏━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓
┃               Estimate  Lower CI  Upper CI ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━┩
│ Elevation    │ -0.001   │ -0.019   │ 0.016    │
│ X-Value      │ -0.494   │ -0.527   │ -0.458   │
│ Y-Value      │ 0.567    │ 0.524    │ 0.609    │
│ Amplitude    │ 0.752    │ 0.719    │ 0.785    │
│ Displacement │ 131.042  │ 127.857  │ 134.336  │
│ Model Fit    │ 0.947    │          │          │
└──────────────┴──────────┴──────────┴──────────┘
test.results.round(3)
Label Group Measure e_est e_lci e_uci x_est x_lci x_uci y_est y_lci y_uci a_est a_lci a_uci d_est d_lci d_uci fit_est
0 loud: deu deu loud -0.030 -0.043 -0.017 -0.649 -0.682 -0.614 0.421 0.367 0.471 0.774 0.744 0.804 147.051 143.049 151.400 0.978
1 loud: eng eng loud 0.002 -0.013 0.016 -0.575 -0.619 -0.525 0.371 0.318 0.422 0.684 0.646 0.722 147.187 142.359 152.087 0.983
2 loud: hrv hrv loud 0.062 0.050 0.075 -0.502 -0.543 -0.459 0.463 0.415 0.512 0.684 0.648 0.718 137.315 132.725 141.726 0.916
3 loud: ita ita loud 0.033 0.014 0.052 -0.493 -0.532 -0.450 0.367 0.315 0.418 0.615 0.575 0.653 143.332 138.393 148.466 0.912
4 loud: por por loud 0.082 0.069 0.095 -0.392 -0.419 -0.362 0.585 0.554 0.614 0.704 0.676 0.732 123.804 121.435 126.105 0.929
5 loud: swe swe loud 0.016 0.002 0.029 -0.630 -0.666 -0.596 0.382 0.330 0.435 0.737 0.708 0.766 148.747 144.483 153.220 0.956
6 loud: tur tur loud -0.001 -0.019 0.016 -0.494 -0.527 -0.458 0.567 0.524 0.609 0.752 0.719 0.785 131.042 127.857 134.336 0.947
ssm_res.plot_curve(figsize=(12, 12))
plt.show()

ssm_res.results.round(3)
Label Group Measure e_est e_lci e_uci x_est x_lci x_uci y_est y_lci y_uci a_est a_lci a_uci d_est d_lci d_uci fit_est
0 loud: deu deu loud -0.030 -0.043 -0.018 -0.649 -0.683 -0.614 0.421 0.366 0.471 0.774 0.743 0.805 147.051 143.151 151.255 0.978
1 loud: eng eng loud 0.002 -0.012 0.016 -0.575 -0.619 -0.530 0.371 0.320 0.422 0.684 0.647 0.722 147.187 142.638 151.806 0.983
2 loud: hrv hrv loud 0.062 0.049 0.075 -0.502 -0.545 -0.459 0.463 0.417 0.508 0.684 0.647 0.718 137.315 132.946 141.561 0.916
3 loud: ita ita loud 0.033 0.014 0.053 -0.493 -0.533 -0.454 0.367 0.315 0.418 0.615 0.577 0.654 143.332 138.420 148.371 0.912
4 loud: por por loud 0.082 0.069 0.095 -0.392 -0.419 -0.365 0.585 0.557 0.614 0.704 0.676 0.732 123.804 121.532 126.017 0.929
5 loud: swe swe loud 0.016 0.003 0.030 -0.630 -0.664 -0.595 0.382 0.331 0.432 0.737 0.708 0.766 148.747 144.514 153.013 0.956
6 loud: tur tur loud -0.001 -0.019 0.017 -0.494 -0.528 -0.458 0.567 0.523 0.609 0.752 0.720 0.784 131.042 127.782 134.461 0.947

lang_angles = { “arb”: (0, 65, 97, 131, 182, 255, 281, 335), “cmn”: (0, 65, 97, 131, 182, 255, 281, 335), “deu”: (0, 65, 97, 131, 182, 255, 281, 335), “ell”: (0, 65, 97, 131, 182, 255, 281, 335), “eng”: (0, 46, 93, 138, 182, 228, 272, 340), “fra”: (0, 65, 97, 131, 182, 255, 281, 335), “hrv”: (0, 65, 97, 131, 182, 255, 281, 335), “ind”: (0, 65, 97, 131, 182, 255, 281, 335), “ita”: (0, 65, 97, 131, 182, 255, 281, 335), “jpn”: (0, 65, 97, 131, 182, 255, 281, 335), “kor”: (0, 65, 97, 131, 182, 255, 281, 335), “nld”: (0, 65, 97, 131, 182, 255, 281, 335), “por”: (0, 65, 97, 131, 182, 255, 281, 335), “spa”: (0, 65, 97, 131, 182, 255, 281, 335), “swe”: (0, 65, 97, 131, 182, 255, 281, 335), “tur”: (0, 65, 97, 131, 182, 255, 281, 335), “vie”: (0, 65, 97, 131, 182, 255, 281, 335), “zsm”: (0, 65, 97, 131, 182, 255, 281, 335), }

Updated to use ssm_analyze instead of ssm_analyse

corr_res = circumplex.ssm_analyze( data, scales, measures=[“loud”], grouping=“Language”, grouped_angles=lang_angles ) corr_res.plot()

lang_data = data[data["Language"] == "deu"]
rec_data = data[data["Recording"] == "CG01"]
angles = [0, 65, 97, 131, 182, 255, 281, 335]
new_ang_results = circumplex.ssm_analyze(rec_data, scales, angles=angles)

new_ang_results.summary()
Statistical Basis:   Mean Scores
Bootstrap Resamples: 2000
Confidence Level:    0.95
Listwise Deletion:   True
Scale Displacements: [0.0, 65.0, 97.0, 131.0, 182.0, 255.00000000000003, 281.0, 335.0]


                  Profile[All]                   
┏━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓
┃               Estimate  Lower CI  Upper CI ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━┩
│ Elevation    │ 45.041   │ 44.485   │ 45.596   │
│ X-Value      │ 26.004   │ 24.778   │ 27.186   │
│ Y-Value      │ 19.611   │ 18.378   │ 20.826   │
│ Amplitude    │ 32.57    │ 31.542   │ 33.661   │
│ Displacement │ 37.021   │ 34.702   │ 39.371   │
│ Model Fit    │ 0.934    │          │          │
└──────────────┴──────────┴──────────┴──────────┘
new_ang_results.plot_curve()
plt.show()

new_ang_results.results["d_est"].round(2)
0    37.02
Name: d_est, dtype: float64
new_ang_results.results["e_est"].round(2)
0    45.04
Name: e_est, dtype: float64