Пролог


Порой у каждого из нас возникает вопрос, который не даёт нам покоя. И как правило ответ на такой вопрос можно получить лишь проанализировав опыт большого количества людей. У меня возник такой вопрос: «Какие факторы влияют на IQ и является ли он хоть чуточку преимуществом?». Конечно, читатель может воскликнуть, что всем давно уже все известно и можно прочитать статьи на эту тему. В какой-то степени вы окажитесь правы, но увы, статьи на тему IQ оказались крайне противоречивыми и навязали мне еще большее количество вопросов. Поэтому я и решил провести своё скромное исследование на эту тему.



Сambridge study in delinquent development


В 1962 году, в Англии началось масштабное и долгосрочное исследование(20 лет) на тему того, какие факторы влияют на асоциальное поведение. В качестве респондентов было выбрано около 500 мальчиков 10 лет, к каждому респонденту прилагается 890 параметров, которые описывают его юность, взросление, жизнь его семьи и его окружения. Cреди этих параметров был уровень IQ, который и навел меня на мысль исследования зависимостей между ним и другими переменными.



Импорт библиотек и загрузка данных:


import pandas as pd
import matplotlib.pyplot as plt
from sklearn import preprocessing
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
from sklearn import preprocessing
import warnings
warnings.filterwarnings('ignore')
import random as rn
from sklearn.cross_validation import train_test_split
from sklearn.naive_bayes import GaussianNB
from sklearn.ensemble import RandomForestRegressor
from sklearn.neighbors import KNeighborsClassifier
from sklearn.linear_model import LogisticRegression
from sklearn import svm

data = pd.read_stata('/Users/####/Downloads/ICPSR_08488/DS0001/08488-0001-Data.dta')

Обработка данных


В качестве целевой переменной был выбран коэффициент IQ, и она нуждалась в небольшой корректировке:

data['V288'].replace('IQ75',75,inplace=True )
data['V288'].replace('IQ129',129,inplace=True)
data['V288'].replace('IQ128',128,inplace=True)

Отбор необходимых признаков


#Создаем словарь, где мы будем хранить наши коэффициенты важности переменных
ranks = {}
# Создадим функцию для заполнения нашего словаря
def ranking(ranks, names, order=1):
    minmax = MinMaxScaler()
    ranks = minmax.fit_transform(order*np.array([ranks]).T).T[0]
    ranks = map(lambda x: round(x,2), ranks)
    return dict(zip(names, ranks))

#Зададим целевую переменную(Y) 
Y = data['V288'].values
#Убираем Y из нашей обучающей выборки 
IQ = data.drop(['V288'], axis=1)
X = data.as_matrix()
# Названия колонок
colnames = IQ.columns

%matplotlib inline
from sklearn.feature_selection import RFE, f_regression
from sklearn.linear_model import (LinearRegression, Ridge, Lasso, RandomizedLasso)
from sklearn.preprocessing import MinMaxScaler
from sklearn.ensemble import RandomForestRegressor
# Теперь выявляем наиболее важные признаки 
rlasso = RandomizedLasso(alpha=0.04)
Y = data['V288'].values
rlasso.fit(X, Y)
ranks["rlasso/Stability"] = ranking(np.abs(rlasso.scores_), colnames)
print('finished')

Чтобы не нагружать статью кодом я привел фрагмент лишь одного теста оценки признаков.Если будет интересно могу скинуть все исходники.

Отобразим все значения важности в нашем словаре


r = {}
for name in colnames:
    r[name] = round(np.mean([ranks[method][name] 
                             for method in ranks.keys()]), 2)
 
methods = sorted(ranks.keys())
ranks["Mean"] = r
methods.append("Mean")
 
print("\t%s" % "\t".join(methods))
for name in colnames:
    print("%s\t%s" % (name, "\t".join(map(str, 
                         [ranks[method][name] for method in methods]))))

Матрица результатов выглядит следующим образом, а последний столбец отображает среднее значение важности исходя из всех тестов:



Давайте выберем топ 100 переменных по среднему значению:

sorted(r, key=r.get, reverse=True)[:100]

Описание наиболее значимых признаков признаков


Также на всякий случай я перепроверял эти переменный с помощью критерия Пирсона.

1. Средний IQ и состояние быта:
p_value 0.035
Нормальное: 98.171533
Ужасное: 103.934307

2.Средний IQ и поведение:
p_value 0.005
Дебошир: 102.395833
Адекватный: 98.286385

3.Средний IQ и вранье
p_value 0.004
Редко врет: 94.357895
Периодически врет: 99.627907
Часто врет: 101.702381
Всегда врет: 102.204545

4.Средний IQ и соц поддрежка:
Подразумеваются субсидии и пособия.
p_value 0.004
Не поддерживается государством: 98.310976
Поддерживается: 107.132530

5.Средний IQ и внешний вид:
p_value 0.011
Опрятный: 96.295597
Средний показатель: 102.608696
Неопрятный: 100.526316

6.Средний IQ и уровень концентрации внимания
p_value 0.007
Хорошая концентрация: 98.732218
Плохая концентрация: 105.186207

7.Средний IQ и проблемы развития в младенчестве
p_value 0.012
Нормальное: 99.294304
Задержка развития: 104.562500

В конце было интересно посмотреть зависимость того, какой IQ был у ребенка в школе и тем, сколько он зарабатывает уже в 30 лет(берется средний недельный доход)

IQ и зарплата:

111 и выше: 17.500000
101-110: 16.906250
91-100: 17.364486
90 и ниже: 17.558140

Вывод


Существуют факторы, которые действительно способны влиять на наш IQ, но с другой стороны IQ в случае нашей выборки не смог повлиять на уровень заработка.

Комментарии (17)


  1. Deosis
    13.12.2017 07:31

    выбрано около 500 мальчиков
    прилагается 890 параметров

    Тут по статистике можно найти 10-20 корреляций.


    1. born_2fuck Автор
      13.12.2017 21:53

      Смотря каким тестом прогонять, к примеру Random Forest нашел только 7 корреляций отличных от нуля. Другие тесты показывают до(в среднем) 100-150 корреляций.


  1. sim-dev
    13.12.2017 08:22

    Не уровень IQ влияет на «успех» и зарплату (доход), а уровень беспринципности. К сожалению, беспринципность пока никак не оценивают и не обрабатывают статистически…


    1. anatolius
      13.12.2017 21:52

      просто одного лишь высокого IQ недостаточно.


      1. born_2fuck Автор
        13.12.2017 21:52

        Как показывает на данный момент мой анализ — да


        1. Archi_Pro
          14.12.2017 11:49

          тут должна быть картинка — «Слишком умен что бы быть счастливым, но недостаточно умен что бы добиться успеха в жизни»
          З.Ы. Хотя вопрос в чем измерять жизненный успех? В деньгах, к количестве и силе пережитых эмоций, в уровне жизни? в уровне потребления? в общественном одобрении?


    1. Archi_Pro
      14.12.2017 11:42

      беспринципность пока никак не оценивают и не обрабатывают статистически…
      Не говорите глупостей, очень легко сделать шкалу и все обработать статистически
      Вопрос только как определить достоверно уровень доходов самых беспринципных


  1. Defersa
    13.12.2017 10:49

    Систему оценки умственных способностей по iq давно было пора скинуть в область лженаук, так как там объективности не на грамм. А уж проводить корреляции на достаточно странных выборках конечно можно, но чисто лишь по «фану», реального положения дел там может и не быть.


  1. dolovar
    13.12.2017 19:08

    IQ в случае нашей выборки не смог повлиять на уровень заработка
    Статистическая корреляция не доказывает существование причинно-следственной связи. Отсутствие корреляции не опровергает возможность наличия причинно-следственной связи.

    Помимо избытка других влияющих факторов и неопределенности ряда понятий (нормальное состояние быта, опрятность внешнего вида, адекватность неизвестно чему поведения) и в данном исследовании есть и другая проблема — получение данных из опросов. Сразу анекдот вспомнился:
    В деревне Вилларибо и Виллабаджо меряли половые органы, оказалось что средний размер члена в Вилларибо — 14 см. а в Виллабаджо — 25 см. Откуда же такая разница? Все просто, в Вилларибо меряли линейкой, а в Виллабаджо проводили опрос.
    Если серьезно, как вычисляли частоту вранья?

    В общем, пример вычислений интересный, но на результаты в выводах опираться не стоит.


    1. born_2fuck Автор
      13.12.2017 21:59

      Вообще в документации к набору данных есть параметр ['V244'], который называется N.J.M.I. lie score, и там есть оценка вранья человека, думаю данный параметр складывался из отзыва родителей и учителя. Но тут вы правы, в таком аспекте как вранье невозможно объективно оценить ситуацию)


      1. Archi_Pro
        14.12.2017 11:46

        тут Вы правы, смотря как проводилась оценка параметра «вранье», было ли это некое экспертное мнение либо количество фактов вранья за определенный период времени.


        1. dolovar
          14.12.2017 13:47

          Существенная поправка — количество фактов разоблаченного вранья.

          Наверняка есть зависимость IQ и прочих величин. То же благосостояние: дебилам деньги не ценны, простаки крепко стоят на ногах, интеллигенты склонны к фрустрации, отличные специалисты ценятся, гении отрываются от реальности. Но зависимость не линейная, и есть другие влияющие факторы, начиная с условий воспитания.

          Должна быть зависимость IQ и вранья. Дурак не обманывает, если ему не грозит наказание. Придурок привыкает выкручиваться. Умному легче скрыть следы. Увлеченный гений не нуждается в обмане, если ему не грозит наказание, ему интересней чистота мыслей, а не манипуляции. Проблема только в измерении — точнее определить термин «врёт» и опираться не на опросы случайных свидетелей отдельных случаев разоблачения.

          Чтобы разглядеть зависимость в статистике нужны другие отрезки и многочисленные фильтры. В лоб не решается, но это не значит, что не решается в принципе. Не доказано наличие, но не доказано и отсутствие зависимости.


          1. Archi_Pro
            14.12.2017 13:59

            полностью согласен про разоблаченное вранье
            осталось еще разобраться что такое интеллект — это про умножение пятизначных чисел в уме или про способность приспособиться и пробраться в тепленькое местечко в жизни.


            1. born_2fuck Автор
              14.12.2017 14:27

              Думаю также важно учитывать понятие эмоционального интеллекта и как правило его ставят в более значимое положение, нежели IQ


              1. Archi_Pro
                14.12.2017 14:35
                +1

                Ведущие специалисты в области психологии интеллекта, такие, как Э. Торндайк, Ч. Спирмен, Д. Векслер, Дж. Гилфорд, утверждали, что люди различаются по способности понимать других людей и управлять ими, т. е. действовать разумным образом в человеческих отношениях.
                Согласно представлениям Х. Гарднера множественный интеллект широкий круг
                способностей. Модель Х. Гарднера включает семь основных форм интеллекта, среди которых, наряду с традиционными вербальным и логико-математическим, присутствуют пространственный, музыкальный, телесно-кинестетический, межличностный и внутриличностный интеллект. Межличностный интеллект, в свою очередь, включает способность наблюдать чувства других и использовать эти знания для прогнозирования их поведения. Один из аспектов личностного интеллекта также связан с чувствами и может быть назван эмоциональным интеллектом. Одним из выделяемых Х. Гарднером типов интеллекта является социальный интеллект, определяемый как способность понимать людей и управлять ими. В исследованиях было установлено, что социальный интеллект может быть отделен от общих академических способностей


                1. born_2fuck Автор
                  14.12.2017 17:50

                  класс, жалко не могу комент ваш +


                  1. Archi_Pro
                    15.12.2017 10:06

                    LOL, за то кто то смог минусонуть твой
                    я если честно комментировал только из интереса к теме.
                    И скорее всего сейчас тож заработаю минусы, потому что тут видимо есть какие то неписанные правила ну как в любом сообществе и видимо карма что типа местных денег на основе которых можно тешить свое самомнение или унижать других.
                    Надо бы администрации Хабра сделать уже счетчик на против каждого что бы сразу было ясно в штанах какого цвета перед тобой пацак и сколько нужно делать перед ни КУ.
                    Какой то прям инстаграмм для гиков