J'ai effectué un test t sur le jeu de données Iris Iris data-set. J'ai calculé le rapport entre la longueur et la largeur des sépales et des pétales et créé un nouveau jeu de données appelé IrisLeafRatio.csv.stats.ttest_ind returns Objet NoneType mais je suis capable de l'imprimer
import scipy.stats as stats
# First, we'll import pandas, a data processing and CSV file I/O library
import pandas as pd
# We'll also import seaborn, a Python graphing library
import warnings # current version of seaborn generates a bunch of warnings that we'll ignore
warnings.filterwarnings("ignore")
import seaborn as sns
import matplotlib.pyplot as plt
import numpy
sns.set(style="dark", color_codes=True)
iris_ratio = pd.read_csv("IrisLeafRatio.csv") # the iris dataset is now a Pandas DataFrame
iris_setosa_sepal_ratio = numpy.asarray(iris_ratio["SepalRatio"][0:50])
iris_versicolor_sepal_ratio = numpy.asarray(iris_ratio["SepalRatio"][50:100])
iris_virginica_sepal_ratio = numpy.asarray(iris_ratio["SepalRatio"][100:150])
setosa_versicolor_sepal = stats.ttest_ind(iris_setosa_sepal_ratio, iris_versicolor_sepal_ratio)
setosa_virginica_sepal = stats.ttest_ind(iris_setosa_sepal_ratio, iris_virginica_sepal_ratio)
versicolor_virginica_sepal = stats.ttest_ind(iris_versicolor_sepal_ratio, iris_virginica_sepal_ratio)
print ("______kelkbladeren________")
print ("Setosa : Versicolor")
print (setosa_versicolor_sepal)
print ("Setosa : Virginica")
print (setosa_virginica_sepal)
print ("Versicolor : Virginica")
print (versicolor_virginica_sepal)
iris_setosa_petal_ratio = numpy.asarray(iris_ratio["PetalRatio"][0:50])
iris_versicolor_petal_ratio = numpy.asarray(iris_ratio["PetalRatio"][50:100])
iris_virginica_petal_ratio = numpy.asarray(iris_ratio["PetalRatio"][100:150])
setosa_versicolor_petal = stats.ttest_ind(iris_setosa_petal_ratio, iris_versicolor_petal_ratio)
setosa_virginica_petal = stats.ttest_ind(iris_setosa_petal_ratio, iris_virginica_petal_ratio)
versicolor_virginica_petal = stats.ttest_ind(iris_versicolor_petal_ratio, iris_virginica_petal_ratio)
print ("\n_____bloembladeren_________")
print ("Setosa : Versicolor")
print (setosa_versicolor_petal) + "Setosa : Versicolor"
print ("Setosa : Virginica")
print (setosa_virginica_petal)
print ("Versicolor : Virginica")
print (versicolor_virginica_petal)
# Returns:
# statistic : float or array
# The calculated t-statistic.
# pvalue : float or array
# The two-tailed p-value.
Le problème est quand je veux imprimer le résultat de la fonction stats.ttest_ind() avec une chaîne que je reçois l'erreur suivante:
unsupported operand type(s) for +: 'NoneType' and 'str'
On dirait que stats.ttest_ind () renvoie un objet NoneType mais pourquoi suis-je capable de l'imprimer si je n'essaie pas de concaténer avec une chaîne? Deuxièmement parce que c'est un NoneType, je suis incapable d'extraire la valeur p dans une variable séparée.
L'ensemble de données complet que je fait est:
Id,SepalLengthCm,SepalWidthCm,SepalRatio, PetalLengthCm,PetalWidthCm,PetalRatio,Species
1,5.1,3.5, 1.46, 1.4,0.2, 7.0, Iris-setosa
2,4.9,3.0, 1.63, 1.4,0.2, 7.0, Iris-setosa
3,4.7,3.2, 1.47, 1.3,0.2, 6.5, Iris-setosa
4,4.6,3.1, 1.48, 1.5,0.2, 7.5, Iris-setosa
5,5.0,3.6, 1.39, 1.4,0.2, 7.0, Iris-setosa
6,5.4,3.9, 1.38, 1.7,0.4, 4.25, Iris-setosa
7,4.6,3.4, 1.35, 1.4,0.3, 4.67, Iris-setosa
8,5.0,3.4, 1.47, 1.5,0.2, 7.5, Iris-setosa
9,4.4,2.9, 1.52, 1.4,0.2, 7.0, Iris-setosa
10,4.9,3.1, 1.58, 1.5,0.1, 15.0, Iris-setosa
11,5.4,3.7, 1.46, 1.5,0.2, 7.5, Iris-setosa
12,4.8,3.4, 1.41, 1.6,0.2, 8.0, Iris-setosa
13,4.8,3.0, 1.6, 1.4,0.1, 14.0, Iris-setosa
14,4.3,3.0, 1.43, 1.1,0.1, 11.0, Iris-setosa
15,5.8,4.0, 1.45, 1.2,0.2, 6.0, Iris-setosa
16,5.7,4.4, 1.3, 1.5,0.4, 3.75, Iris-setosa
17,5.4,3.9, 1.38, 1.3,0.4, 3.25, Iris-setosa
18,5.1,3.5, 1.46, 1.4,0.3, 4.67, Iris-setosa
19,5.7,3.8, 1.5, 1.7,0.3, 5.67, Iris-setosa
20,5.1,3.8, 1.34, 1.5,0.3, 5.0, Iris-setosa
21,5.4,3.4, 1.59, 1.7,0.2, 8.5, Iris-setosa
22,5.1,3.7, 1.38, 1.5,0.4, 3.75, Iris-setosa
23,4.6,3.6, 1.28, 1.0,0.2, 5.0, Iris-setosa
24,5.1,3.3, 1.55, 1.7,0.5, 3.4, Iris-setosa
25,4.8,3.4, 1.41, 1.9,0.2, 9.5, Iris-setosa
26,5.0,3.0, 1.67, 1.6,0.2, 8.0, Iris-setosa
27,5.0,3.4, 1.47, 1.6,0.4, 4.0, Iris-setosa
28,5.2,3.5, 1.49, 1.5,0.2, 7.5, Iris-setosa
29,5.2,3.4, 1.53, 1.4,0.2, 7.0, Iris-setosa
30,4.7,3.2, 1.47, 1.6,0.2, 8.0, Iris-setosa
31,4.8,3.1, 1.55, 1.6,0.2, 8.0, Iris-setosa
32,5.4,3.4, 1.59, 1.5,0.4, 3.75, Iris-setosa
33,5.2,4.1, 1.27, 1.5,0.1, 15.0, Iris-setosa
34,5.5,4.2, 1.31, 1.4,0.2, 7.0, Iris-setosa
35,4.9,3.1, 1.58, 1.5,0.1, 15.0, Iris-setosa
36,5.0,3.2, 1.56, 1.2,0.2, 6.0, Iris-setosa
37,5.5,3.5, 1.57, 1.3,0.2, 6.5, Iris-setosa
38,4.9,3.1, 1.58, 1.5,0.1, 15.0, Iris-setosa
39,4.4,3.0, 1.47, 1.3,0.2, 6.5, Iris-setosa
40,5.1,3.4, 1.5, 1.5,0.2, 7.5, Iris-setosa
41,5.0,3.5, 1.43, 1.3,0.3, 4.33, Iris-setosa
42,4.5,2.3, 1.96, 1.3,0.3, 4.33, Iris-setosa
43,4.4,3.2, 1.38, 1.3,0.2, 6.5, Iris-setosa
44,5.0,3.5, 1.43, 1.6,0.6, 2.67, Iris-setosa
45,5.1,3.8, 1.34, 1.9,0.4, 4.75, Iris-setosa
46,4.8,3.0, 1.6, 1.4,0.3, 4.67, Iris-setosa
47,5.1,3.8, 1.34, 1.6,0.2, 8.0, Iris-setosa
48,4.6,3.2, 1.44, 1.4,0.2, 7.0, Iris-setosa
49,5.3,3.7, 1.43, 1.5,0.2, 7.5, Iris-setosa
50,5.0,3.3, 1.52, 1.4,0.2, 7.0, Iris-setosa
51,7.0,3.2, 2.19, 4.7,1.4, 3.36, Iris-versicolor
52,6.4,3.2, 2.0, 4.5,1.5, 3.0, Iris-versicolor
53,6.9,3.1, 2.23, 4.9,1.5, 3.27, Iris-versicolor
54,5.5,2.3, 2.39, 4.0,1.3, 3.08, Iris-versicolor
55,6.5,2.8, 2.32, 4.6,1.5, 3.07, Iris-versicolor
56,5.7,2.8, 2.04, 4.5,1.3, 3.46, Iris-versicolor
57,6.3,3.3, 1.91, 4.7,1.6, 2.94, Iris-versicolor
58,4.9,2.4, 2.04, 3.3,1.0, 3.3, Iris-versicolor
59,6.6,2.9, 2.28, 4.6,1.3, 3.54, Iris-versicolor
60,5.2,2.7, 1.93, 3.9,1.4, 2.79, Iris-versicolor
61,5.0,2.0, 2.5, 3.5,1.0, 3.5, Iris-versicolor
62,5.9,3.0, 1.97, 4.2,1.5, 2.8, Iris-versicolor
63,6.0,2.2, 2.73, 4.0,1.0, 4.0, Iris-versicolor
64,6.1,2.9, 2.1, 4.7,1.4, 3.36, Iris-versicolor
65,5.6,2.9, 1.93, 3.6,1.3, 2.77, Iris-versicolor
66,6.7,3.1, 2.16, 4.4,1.4, 3.14, Iris-versicolor
67,5.6,3.0, 1.87, 4.5,1.5, 3.0, Iris-versicolor
68,5.8,2.7, 2.15, 4.1,1.0, 4.1, Iris-versicolor
69,6.2,2.2, 2.82, 4.5,1.5, 3.0, Iris-versicolor
70,5.6,2.5, 2.24, 3.9,1.1, 3.55, Iris-versicolor
71,5.9,3.2, 1.84, 4.8,1.8, 2.67, Iris-versicolor
72,6.1,2.8, 2.18, 4.0,1.3, 3.08, Iris-versicolor
73,6.3,2.5, 2.52, 4.9,1.5, 3.27, Iris-versicolor
74,6.1,2.8, 2.18, 4.7,1.2, 3.92, Iris-versicolor
75,6.4,2.9, 2.21, 4.3,1.3, 3.31, Iris-versicolor
76,6.6,3.0, 2.2, 4.4,1.4, 3.14, Iris-versicolor
77,6.8,2.8, 2.43, 4.8,1.4, 3.43, Iris-versicolor
78,6.7,3.0, 2.23, 5.0,1.7, 2.94, Iris-versicolor
79,6.0,2.9, 2.07, 4.5,1.5, 3.0, Iris-versicolor
80,5.7,2.6, 2.19, 3.5,1.0, 3.5, Iris-versicolor
81,5.5,2.4, 2.29, 3.8,1.1, 3.45, Iris-versicolor
82,5.5,2.4, 2.29, 3.7,1.0, 3.7, Iris-versicolor
83,5.8,2.7, 2.15, 3.9,1.2, 3.25, Iris-versicolor
84,6.0,2.7, 2.22, 5.1,1.6, 3.19, Iris-versicolor
85,5.4,3.0, 1.8, 4.5,1.5, 3.0, Iris-versicolor
86,6.0,3.4, 1.76, 4.5,1.6, 2.81, Iris-versicolor
87,6.7,3.1, 2.16, 4.7,1.5, 3.13, Iris-versicolor
88,6.3,2.3, 2.74, 4.4,1.3, 3.38, Iris-versicolor
89,5.6,3.0, 1.87, 4.1,1.3, 3.15, Iris-versicolor
90,5.5,2.5, 2.2, 4.0,1.3, 3.08, Iris-versicolor
91,5.5,2.6, 2.12, 4.4,1.2, 3.67, Iris-versicolor
92,6.1,3.0, 2.03, 4.6,1.4, 3.29, Iris-versicolor
93,5.8,2.6, 2.23, 4.0,1.2, 3.33, Iris-versicolor
94,5.0,2.3, 2.17, 3.3,1.0, 3.3, Iris-versicolor
95,5.6,2.7, 2.07, 4.2,1.3, 3.23, Iris-versicolor
96,5.7,3.0, 1.9, 4.2,1.2, 3.5, Iris-versicolor
97,5.7,2.9, 1.97, 4.2,1.3, 3.23, Iris-versicolor
98,6.2,2.9, 2.14, 4.3,1.3, 3.31, Iris-versicolor
99,5.1,2.5, 2.04, 3.0,1.1, 2.73, Iris-versicolor
100,5.7,2.8, 2.04, 4.1,1.3, 3.15, Iris-versicolor
101,6.3,3.3, 1.91, 6.0,2.5, 2.4, Iris-virginica
102,5.8,2.7, 2.15, 5.1,1.9, 2.68, Iris-virginica
103,7.1,3.0, 2.37, 5.9,2.1, 2.81, Iris-virginica
104,6.3,2.9, 2.17, 5.6,1.8, 3.11, Iris-virginica
105,6.5,3.0, 2.17, 5.8,2.2, 2.64, Iris-virginica
106,7.6,3.0, 2.53, 6.6,2.1, 3.14, Iris-virginica
107,4.9,2.5, 1.96, 4.5,1.7, 2.65, Iris-virginica
108,7.3,2.9, 2.52, 6.3,1.8, 3.5, Iris-virginica
109,6.7,2.5, 2.68, 5.8,1.8, 3.22, Iris-virginica
110,7.2,3.6, 2.0, 6.1,2.5, 2.44, Iris-virginica
111,6.5,3.2, 2.03, 5.1,2.0, 2.55, Iris-virginica
112,6.4,2.7, 2.37, 5.3,1.9, 2.79, Iris-virginica
113,6.8,3.0, 2.27, 5.5,2.1, 2.62, Iris-virginica
114,5.7,2.5, 2.28, 5.0,2.0, 2.5, Iris-virginica
115,5.8,2.8, 2.07, 5.1,2.4, 2.12, Iris-virginica
116,6.4,3.2, 2.0, 5.3,2.3, 2.3, Iris-virginica
117,6.5,3.0, 2.17, 5.5,1.8, 3.06, Iris-virginica
118,7.7,3.8, 2.03, 6.7,2.2, 3.05, Iris-virginica
119,7.7,2.6, 2.96, 6.9,2.3, 3.0, Iris-virginica
120,6.0,2.2, 2.73, 5.0,1.5, 3.33, Iris-virginica
121,6.9,3.2, 2.16, 5.7,2.3, 2.48, Iris-virginica
122,5.6,2.8, 2.0, 4.9,2.0, 2.45, Iris-virginica
123,7.7,2.8, 2.75, 6.7,2.0, 3.35, Iris-virginica
124,6.3,2.7, 2.33, 4.9,1.8, 2.72, Iris-virginica
125,6.7,3.3, 2.03, 5.7,2.1, 2.71, Iris-virginica
126,7.2,3.2, 2.25, 6.0,1.8, 3.33, Iris-virginica
127,6.2,2.8, 2.21, 4.8,1.8, 2.67, Iris-virginica
128,6.1,3.0, 2.03, 4.9,1.8, 2.72, Iris-virginica
129,6.4,2.8, 2.29, 5.6,2.1, 2.67, Iris-virginica
130,7.2,3.0, 2.4, 5.8,1.6, 3.62, Iris-virginica
131,7.4,2.8, 2.64, 6.1,1.9, 3.21, Iris-virginica
132,7.9,3.8, 2.08, 6.4,2.0, 3.2, Iris-virginica
133,6.4,2.8, 2.29, 5.6,2.2, 2.55, Iris-virginica
134,6.3,2.8, 2.25, 5.1,1.5, 3.4, Iris-virginica
135,6.1,2.6, 2.35, 5.6,1.4, 4.0, Iris-virginica
136,7.7,3.0, 2.57, 6.1,2.3, 2.65, Iris-virginica
137,6.3,3.4, 1.85, 5.6,2.4, 2.33, Iris-virginica
138,6.4,3.1, 2.06, 5.5,1.8, 3.06, Iris-virginica
139,6.0,3.0, 2.0, 4.8,1.8, 2.67, Iris-virginica
140,6.9,3.1, 2.23, 5.4,2.1, 2.57, Iris-virginica
141,6.7,3.1, 2.16, 5.6,2.4, 2.33, Iris-virginica
142,6.9,3.1, 2.23, 5.1,2.3, 2.22, Iris-virginica
143,5.8,2.7, 2.15, 5.1,1.9, 2.68, Iris-virginica
144,6.8,3.2, 2.12, 5.9,2.3, 2.57, Iris-virginica
145,6.7,3.3, 2.03, 5.7,2.5, 2.28, Iris-virginica
146,6.7,3.0, 2.23, 5.2,2.3, 2.26, Iris-virginica
147,6.3,2.5, 2.52, 5.0,1.9, 2.63, Iris-virginica
148,6.5,3.0, 2.17, 5.2,2.0, 2.6, Iris-virginica
149,6.2,3.4, 1.82, 5.4,2.3, 2.35, Iris-virginica
150,5.9,3.0, 1.97, 5.1,1.8, 2.83, Iris-virginica
Sans concaténer quoi que ce soit, ma sortie est:
______kelkbladeren________
Setosa : Versicolor
Ttest_indResult(statistic=-18.800548677777353, pvalue=2.8240078085535015e-34)
Setosa : Virginica
Ttest_indResult(statistic=-19.473337102574838, pvalue=1.8505071407928178e-35)
Versicolor : Virginica
Ttest_indResult(statistic=-1.4692886838299219, pvalue=0.14495744237234628)
_____bloembladeren_________
Setosa : Versicolor
Ttest_indResult(statistic=8.6379129492322715, pvalue=1.0844901752453786e-13)
Setosa : Virginica
Ttest_indResult(statistic=9.6474890569153793, pvalue=7.0491944878035697e-16)
Versicolor : Virginica
Ttest_indResult(statistic=6.3788055904508321, pvalue=5.910030892093215e-09)
L'erreur occures dans la ligne:
print (setosa_versicolor_petal) + "Setosa : Versicolor"
Malheureusement, cela n'aidera pas. Les deux options entraînent l'erreur: AttributeError: l'objet 'NoneType' n'a pas d'attribut 'format' –
Cela fonctionne-t-il lors de l'impression des valeurs? – user2314737
J'ai trouvé la solution comme décrit dans ma réponse. Merci de votre aide. –