Пусть ( x 1 , x 2 , ..., x n ) будут независимыми и одинаково распределенными выборками, взятыми из некоторого одномерного распределения с неизвестной плотностью ƒ в любой заданной точке x . Нас интересует оценка формы этой функции ƒ . Его оценка плотности ядра :
где K — ядро (неотрицательная функция), а h > 0 — параметр сглаживания , называемый шириной полосы . Ядро с индексом h называется масштабированным ядром и определяется как K h ( x ) = 1/ h K ( x / h ) . Интуитивно хочется выбрать h настолько маленьким, насколько позволяют данные; однако всегда существует компромисс между предвзятостью оценщика и его дисперсией. Выбор полосы пропускания более подробно обсуждается ниже.
Построение ядерной оценки плотности находит интерпретации в областях, выходящих за рамки оценки плотности. [7] Например, в термодинамике это эквивалентно количеству тепла, выделяемого при размещении тепловых ядер (фундаментальное решение уравнения теплопроводности ) в каждой точке данных x i . Подобные методы используются для построения дискретных операторов Лапласа на облаках точек для обучения многообразию (например, карта диффузии ).
Пример
Оценки плотности ядра тесно связаны с гистограммами , но могут быть наделены такими свойствами, как гладкость или непрерывность, с помощью подходящего ядра. Диаграмма ниже, основанная на этих 6 точках данных, иллюстрирует эту взаимосвязь:
Для гистограммы сначала горизонтальная ось делится на подинтервалы или интервалы, которые охватывают диапазон данных: в этом случае шесть интервалов каждый шириной 2. Всякий раз, когда точка данных попадает в этот интервал, отображается блок высотой 1. /12 находится там. Если в один и тот же интервал попадает более одной точки данных, блоки складываются друг на друга.
Для оценки плотности ядра нормальные ядра со стандартным отклонением 1,5 (обозначены красными пунктирными линиями) помещаются в каждую из точек данных x i . Ядра суммируются для получения оценки плотности ядра (сплошная синяя кривая). Гладкость оценки плотности ядра (по сравнению с дискретностью гистограммы) показывает, как оценки плотности ядра быстрее сходятся к истинной базовой плотности для непрерывных случайных величин. [8]
Сравнение гистограммы (слева) и оценки плотности ядра (справа), построенной по тем же данным. Шесть отдельных ядер показаны красными пунктирными кривыми, оценка плотности ядра — синими кривыми. Точки данных представляют собой график ковра на горизонтальной оси.
Выбор полосы пропускания
Оценка плотности ядра (KDE) с различной шириной полосы случайной выборки из 100 точек из стандартного нормального распределения. Серый: истинная плотность (стандартная норма). Красный: KDE с h=0,05. Черный: KDE с h=0,337. Зеленый: KDE с h=2.
Пропускная способность ядра является свободным параметром , который оказывает сильное влияние на результирующую оценку. Чтобы проиллюстрировать его эффект, мы берем смоделированную случайную выборку из стандартного нормального распределения (отмеченного синими шипами на графике ковра на горизонтальной оси). Серая кривая — истинная плотность (нормальная плотность со средним значением 0 и дисперсией 1). Для сравнения, красная кривая недостаточно сглажена , поскольку она содержит слишком много ложных артефактов данных, возникающих из-за использования полосы пропускания h = 0,05, которая слишком мала. Зеленая кривая слишком сглажена , поскольку использование полосы пропускания h = 2 скрывает большую часть базовой структуры. Черная кривая с шириной полосы h = 0,337 считается оптимально сглаженной, поскольку ее оценка плотности близка к истинной плотности. Экстремальная ситуация возникает в пределе (без сглаживания), когда оценка представляет собой сумму n дельта-функций с центрами в координатах анализируемых выборок. В другом крайнем пределе оценка сохраняет форму используемого ядра, центрированную по среднему значению выборок (полностью гладкая).
Наиболее распространенным критерием оптимальности, используемым для выбора этого параметра, является ожидаемая функция риска L2 , также называемая среднеинтегральной квадратичной ошибкой :
При слабых предположениях относительно ƒ и K ( ƒ - обычно неизвестная функция реальной плотности), [1] [2]
где o — маленькое обозначение o , а n — размер выборки (как указано выше). AMISE – это асимптотический MISE, т.е. е. два ведущих термина,
где для функции g и является второй производной
и является ядром. Минимум этого AMISE является решением этого дифференциального уравнения
или
Ни формулы AMISE, ни формулы h AMISE не могут использоваться напрямую, поскольку они включают в себя неизвестную функцию плотности или ее вторую производную . Чтобы преодолеть эту трудность, были разработаны различные автоматические методы выбора полосы пропускания на основе данных. Было проведено несколько обзорных исследований для сравнения их эффективности [9] [10] [11] [12] [13] [14] [15] с общим мнением о том, что подключаемые селекторы [7] [16] [17 ] ] и селекторы перекрестной проверки [18] [19] [20] являются наиболее полезными для широкого диапазона наборов данных.
Подстановка любой полосы пропускания h , которая имеет тот же асимптотический порядок n -1/5 , что и h AMISE , в AMISE, дает AMISE( h ) = O ( n -4/5 ), где O — обозначение большого o . Можно показать, что при слабых предположениях не может существовать непараметрическая оценка, которая сходится быстрее, чем ядерная оценка. [21] Обратите внимание, что скорость n -4/5 медленнее, чем типичная скорость сходимости n -1 параметрических методов.
Если полоса пропускания не является фиксированной, а изменяется в зависимости от местоположения либо оценки (баллонная оценка), либо выборок (точечная оценка), это дает особенно мощный метод, называемый адаптивной или переменной оценкой плотности ядра полосы пропускания .
Выбор полосы пропускания для оценки плотности ядра распределений с тяжелым хвостом относительно сложен. [22]
Значение считается более надежным, если оно улучшает соответствие длиннохвостым и асимметричным распределениям или бимодальным смешанным распределениям. Это часто делается эмпирически путем замены стандартного отклонения параметром ниже:
где IQR — межквартильный размах.
Сравнение практического правила и пропускной способности решения уравнения.
Еще одна модификация, которая улучшит модель, заключается в уменьшении коэффициента с 1,06 до 0,9. Тогда окончательная формула будет такой:
где размер выборки.
Это приближение называется приближением нормального распределения , приближением Гаусса или эмпирическим правилом Сильвермана . [23] Хотя это эмпирическое правило легко вычислить, его следует использовать с осторожностью, поскольку оно может дать весьма неточные оценки, когда плотность не близка к нормальной. Например, при оценке модели бимодальной гауссовой смеси
из выборки из 200 точек на рисунке справа показаны истинная плотность и две оценки плотности ядра — одна с использованием полосы пропускания по эмпирическому правилу, а другая с использованием полосы пропускания решения уравнения. [7] [17] Оценка, основанная на эмпирическом правиле ширины полосы, значительно сглажена.
Связь с оценкой плотности характеристической функции
Зная характеристическую функцию, можно найти соответствующую функцию плотности вероятности с помощью формулы преобразования Фурье . Одна из трудностей применения этой формулы обращения заключается в том, что она приводит к расходящемуся интегралу, поскольку оценка ненадежна для больших t . Чтобы обойти эту проблему, оценка умножается на функцию демпфирования ψ h ( t ) = ψ ( ht ) , которая равна 1 в начале координат, а затем падает до 0 на бесконечности. «Параметр пропускной способности» h контролирует, насколько быстро мы пытаемся заглушить функцию . В частности, когда h мало, тогда ψ h ( t ) будет примерно равно единице для большого диапазона t , что означает, что оно остается практически неизменным в наиболее важной области t .
Наиболее распространенным выбором функции ψ является либо равномерная функция ψ ( t ) = 1 {−1 ≤ t ≤ 1 }, что фактически означает усечение интервала интегрирования в формуле обращения до [−1/ h , 1/ h ] , или функция Гаусса ψ ( т ) знак равно е - π т 2 . После выбора функции ψ можно применить формулу обращения, и оценка плотности будет иметь вид
где K — преобразование Фурье функции затухания ψ . Таким образом, оценка плотности ядра совпадает с оценкой плотности характеристической функции.
Геометрические и топологические особенности
Мы можем расширить определение (глобального) режима до локального значения и определить локальные режимы:
А именно, это совокупность точек, для которых функция плотности локально максимизируется. Естественным оценщиком является плагин от KDE, [24] [25] где и — версия KDE и . При мягких предположениях является состоятельной оценкой . Обратите внимание, что можно использовать алгоритм среднего сдвига [26] [27] [28] для численного вычисления оценки .
Статистическая реализация
Неисчерпывающий список программных реализаций средств оценки плотности ядра включает:
В версии Analytica 4.4 опция сглаживания результатов PDF использует KDE, а из выражений она доступна через встроенную Pdfфункцию.
В C / C++ FigTree — это библиотека, которую можно использовать для вычисления оценок плотности ядра с использованием обычных ядер. Доступен интерфейс MATLAB.
В C++ mlpack — это библиотека, которая может вычислять KDE, используя множество различных ядер. Это позволяет установить допуск на ошибки для более быстрого вычисления. Доступны интерфейсы Python и R.
Math.NET Numerics в C# и F# — это библиотека с открытым исходным кодом для численных вычислений, которая включает оценку плотности ядра.
В CrimeStat оценка плотности ядра реализована с использованием пяти различных функций ядра — нормальной, равномерной, четвертой степени, отрицательной экспоненциальной и треугольной. Доступны как одноядерные, так и двухядерные процедуры оценки плотности. Оценка плотности ядра также используется при интерполяции процедуры «Удар головой», при оценке двумерной функции плотности «Путешествие к преступлению» и при оценке трехмерной байесовской оценки «Путешествие к преступлению».
В ELKI функции плотности ядра можно найти в пакетеde.lmu.ifi.dbs.elki.math.statistics.kernelfunctions
В продуктах ESRI отображение плотности ядра управляется из набора инструментов Spatial Analyst и использует ядро Quartic (двухвесное).
Королевское химическое общество создало в Excel надстройку для оценки плотности ядра на основе Технического описания 4 Комитета по аналитическим методам.
В gnuplot оценка плотности ядра реализована с помощью опции smooth kdensity: файл данных может содержать вес и пропускную способность для каждой точки, либо пропускная способность может устанавливаться автоматически [29] в соответствии с «эмпирическим правилом Сильвермана» (см. выше).
В Haskell плотность ядра реализована в пакете статистики.
В IGOR Pro оценка плотности ядра реализована операцией StatsKDE(добавлена в Igor Pro 7.00). Пропускная способность может быть указана пользователем или оценена с помощью Сильвермана, Скотта или Боумана и Аззалини . Типы ядра: Епанечникова, Двухвесовое, Трехвесовое, Треугольное, Гауссово и Прямоугольное.
В Java пакет машинного обучения Weka , среди прочего, предоставляет weka.estimators.KernelEstimator.
В JavaScript пакет визуализации D3.js предлагает пакет KDE в своем пакете science.stats.
В JMP платформа Graph Builder использует оценку плотности ядра для создания контурных графиков и областей высокой плотности (HDR) для двумерных плотностей, а также графиков скрипки и HDR для одномерных плотностей. Ползунки позволяют пользователю изменять пропускную способность. Двумерные и одномерные оценки плотности ядра также предоставляются платформами Fit Y by X и Distribution соответственно.
В Julia оценка плотности ядра реализована в пакете KernelDensity.jl.
В KNIME 1D и 2D распределения плотности ядра могут быть сгенерированы и построены с использованием узлов из вклада сообщества Vernalis , например, 1D графика плотности ядра и других. Базовая реализация написана на Java .
В MATLAB оценка плотности ядра реализована через ksdensityфункцию (Statistics Toolbox). Начиная с версии MATLAB 2018a, можно указать как полосу пропускания, так и сглаживание ядра, включая другие параметры, такие как указание диапазона плотности ядра. [30] В качестве альтернативы, бесплатный пакет программного обеспечения MATLAB, который реализует метод автоматического выбора полосы пропускания [7] , доступен в Центральном файловом обмене MATLAB для
1-мерные данные
2-мерные данные
n-мерные данные. На этих страницах доступен бесплатный набор инструментов MATLAB с реализацией ядерной регрессии, оценкой плотности ядра, оценкой функции риска и многими другими (этот набор инструментов является частью книги [31] ).
В системе Mathematica числовая оценка плотности ядра реализуется с помощью функции SmoothKernelDistribution[32] , а символьная оценка реализуется с использованием функции KernelMixtureDistribution[33] , обе из которых обеспечивают управляемую данными полосу пропускания.
В Minitab Королевское химическое общество создало макрос для оценки плотности ядра на основе технического описания 4 Комитета по аналитическим методам. [34]
В библиотеке NAG оценка плотности ядра реализована с помощью процедуры (доступной как в версиях библиотеки для g10baFortran [35] , так и в C [36] ).
В Nuklei методы плотности ядра C++ фокусируются на данных из специальной евклидовой группы .
В Octave оценка плотности ядра реализована опцией kernel_density(пакет эконометрики).
В Origin график плотности ядра 2D можно построить из пользовательского интерфейса, а две функции: Ksdensity для 1D и Ks2density для 2D можно использовать из кода LabTalk , Python или C.
В Perl реализацию можно найти в модуле Статистика-KernelEstimation.
В PHP реализацию можно найти в библиотеке MathPHP.
В Python существует множество реализаций: модуль pyqt_fit.kde в пакете PyQt-Fit, SciPy( scipy.stats.gaussian_kde), Statsmodels ( KDEUnivariateи KDEMultivariate) и scikit-learn ( KernelDensity) (см. сравнение [37] ). KDEpy поддерживает взвешенные данные, и его реализация БПФ работает на несколько порядков быстрее, чем другие реализации. Широко используемая библиотека pandas [1] предлагает поддержку построения графиков kde с помощью методаplot ( df.plot(kind='kde')[2]). Пакет getdist для взвешенных и коррелированных выборок MCMC поддерживает оптимизированную полосу пропускания, коррекцию границ и методы более высокого порядка для 1D и 2D распределений. Один из новых пакетов для оценки плотности ядра — seaborn ( import seaborn as sns, sns.kdeplot()). [38] Также существует реализация KDE на графическом процессоре. [39]
В R это реализовано densityв базовом дистрибутиве, а bw.nrd0функция используется в пакете статистики. Эта функция использует оптимизированную формулу из книги Сильвермана. bkdeв библиотеке KernSmooth, ParetoDensityEstimationв библиотеке DataVisualizations (для оценки плотности распределения Парето), kdeв библиотеке ks dkdenи dbckdenв библиотеке evmix (последняя для оценки плотности ядра с коррекцией границ для ограниченной поддержки), npudensв библиотеке np (числовые и категориальные данные ) , sm.densityв библиотеке см. Реализацию функции kde.R, не требующую установки каких-либо пакетов или библиотек, см. в kde.R. Библиотека btb, посвященная городскому анализу, реализует оценку плотности ядра через kernel_smoothing.
В SAS может proc kdeиспользоваться для оценки одномерной и двумерной плотности ядра.
В Stata это реализовано через kdensity; [41] например histogram x, kdensity. В качестве альтернативы доступен бесплатный модуль Stata KDENS [42] , позволяющий пользователю оценивать функции плотности 1D или 2D.
В Swift это реализовано через SwiftStats.KernelDensityEstimationбиблиотеку статистики с открытым исходным кодом SwiftStats.
Смотрите также
На Wikimedia Commons есть медиафайлы, связанные с оценкой плотности ядра .
Хердле, Мюллер, Сперлих, Верватц, Непараметрические и полупараметрические методы , Springer-Verlag Berlin Heidelberg 2004, стр. 39–83.
Рекомендации
^ аб Розенблатт, М. (1956). «Замечания о некоторых непараметрических оценках функции плотности». Анналы математической статистики . 27 (3): 832–837. дои : 10.1214/aoms/1177728190 .
^ аб Пирионеси С. Маде; Эль-Дираби Тамер Э. (01.06.2020). «Роль анализа данных в управлении инфраструктурными активами: преодоление проблем с размером и качеством данных». Журнал транспортной техники, Часть B: Тротуары . 146 (2): 04020022. doi :10.1061/JPEODX.0000175. S2CID 216485629.
^ Хасти, Тревор ; Тибширани, Роберт ; Фридман, Джером Х. (2001). Элементы статистического обучения: интеллектуальный анализ данных, логические выводы и прогнозирование: с 200 полноцветными иллюстрациями . Нью-Йорк: Спрингер. ISBN0-387-95284-5. ОСЛК 46809224.
^ Епанечников, В.А. (1969). «Непараметрическая оценка многомерной плотности вероятности». Теория вероятностей и ее приложения . 14 : 153–158. дои : 10.1137/1114019.
^ Ванд, член парламента; Джонс, MC (1995). Сглаживание ядра . Лондон: Чепмен и Холл/CRC. ISBN978-0-412-55270-0.
^ abcd Ботев, Здравко (2007). Непараметрическая оценка плотности методом диффузионного смешивания (Технический отчет). Университет Квинсленда.
^ Скотт, Д. (1979). «Об оптимальных и основанных на данных гистограммах». Биометрика . 66 (3): 605–610. дои : 10.1093/biomet/66.3.605.
^ Парк, Бу; Маррон, Дж. С. (1990). «Сравнение селекторов пропускной способности, управляемых данными». Журнал Американской статистической ассоциации . 85 (409): 66–72. CiteSeerX 10.1.1.154.7321 . дои : 10.1080/01621459.1990.10475307. JSTOR 2289526.
^ Парк, Бу; Турлах, бакалавр (1992). «Практическая эффективность нескольких селекторов полосы пропускания, управляемых данными (с обсуждением)». Вычислительная статистика . 7 : 251–270.
^ Цао, Р.; Куэвас, А.; Мантейга, WG (1994). «Сравнительное исследование нескольких методов сглаживания при оценке плотности». Вычислительная статистика и анализ данных . 17 (2): 153–176. дои : 10.1016/0167-9473(92)00066-Z.
^ Джонс, MC; Маррон, Дж. С.; Шизер, С.Дж. (1996). «Краткий обзор выбора полосы пропускания для оценки плотности». Журнал Американской статистической ассоциации . 91 (433): 401–407. дои : 10.2307/2291420. JSTOR 2291420.
^ Шизер, SJ (1992). «Эффективность шести популярных методов выбора полосы пропускания на некоторых реальных наборах данных (с обсуждением)». Вычислительная статистика . 7 : 225–250, 271–281.
^ Агарвал, Н.; Алуру, НР (2010). «Стохастический подход к коллокации, основанный на данных, для количественной оценки неопределенности в MEMS» (PDF) . Международный журнал численных методов в технике . 83 (5): 575–597. Бибкод : 2010IJNME..83..575A. дои : 10.1002/nme.2844. S2CID 84834908.
^ Сюй, X .; Ян, З.; Сюй, С. (2015). «Оценка распределения вероятности скорости ветра с помощью метода плотности ядра на основе диффузии». Исследование электроэнергетических систем . 121 : 28–37. дои : 10.1016/j.epsr.2014.11.029.
^ Ботев, З.И.; Гротовски, Дж. Ф.; Крозе, Д.П. (2010). «Оценка плотности ядра посредством диффузии». Анналы статистики . 38 (5): 2916–2957. arXiv : 1011.2602 . дои : 10.1214/10-AOS799. S2CID 41350591.
^ аб Шизер, SJ; Джонс, MC (1991). «Надежный метод выбора полосы пропускания на основе данных для оценки плотности ядра». Журнал Королевского статистического общества, серия B. 53 (3): 683–690. doi :10.1111/j.2517-6161.1991.tb01857.x. JSTOR 2345597.
^ Рудемо, М. (1982). «Эмпирический выбор гистограмм и средств оценки плотности ядра». Скандинавский статистический журнал . 9 (2): 65–78. JSTOR 4615859.
^ Боуман, AW (1984). «Альтернативный метод перекрестной проверки для сглаживания оценок плотности». Биометрика . 71 (2): 353–360. дои : 10.1093/biomet/71.2.353.
^ Холл, П.; Маррон, Дж. С.; Парк, Будапешт (1992). «Сглаженная перекрестная проверка». Теория вероятностей и смежные области . 92 : 1–20. дои : 10.1007/BF01205233 . S2CID 121181481.
^ Вахба, Г. (1975). «Оптимальные свойства сходимости методов переменных узлов, ядер и ортогональных рядов для оценки плотности». Анналы статистики . 3 (1): 15–29. дои : 10.1214/aos/1176342997 .
^ Бух-Ларсен, TINE (2005). «Оценка плотности ядра для распределений с тяжелым хвостом с использованием преобразования Чамперноуна». Статистика . 39 (6): 503–518. CiteSeerX 10.1.1.457.1544 . дои : 10.1080/02331880500439782. S2CID 219697435.
^ аб Сильверман, BW (1986). Оценка плотности для статистики и анализа данных . Лондон: Чепмен и Холл/CRC. п. 45. ИСБН978-0-412-24620-3.
^ Фукунага, К.; Хостетлер, Л. (январь 1975 г.). «Оценка градиента функции плотности с применением в распознавании образов». Транзакции IEEE по теории информации . 21 (1): 32–40. дои : 10.1109/тит.1975.1055330. ISSN 0018-9448.
^ Ицзун Ченг (1995). «Сдвиг среднего, поиск режима и кластеризация». Транзакции IEEE по анализу шаблонов и машинному интеллекту . 17 (8): 790–799. CiteSeerX 10.1.1.510.1222 . дои : 10.1109/34.400568. ISSN 0162-8828.
^ Команичиу, Д.; Меер, П. (май 2002 г.). «Сдвиг среднего: надежный подход к анализу пространства признаков». Транзакции IEEE по анализу шаблонов и машинному интеллекту . 24 (5): 603–619. дои : 10.1109/34.1000236. ISSN 0162-8828. S2CID 691081.
^ Джанерт, Филипп К. (2009). Gnuplot в действии: понимание данных с помощью графиков . Коннектикут, США: Публикации Мэннинга. ISBN978-1-933988-39-9.См. раздел 13.2.2, озаглавленный «Оценки плотности ядра» .
^ «Оценка функции сглаживания ядра для одномерных и двумерных данных - MATLAB ksdensity» . www.mathworks.com . Проверено 5 ноября 2020 г.
^ Горова, И.; Колачек Ю.; Зелинка, Дж. (2012). Ядерное сглаживание в MATLAB: Теория и практика ядерного сглаживания . Сингапур: Мировое научное издательство. ISBN978-981-4405-48-5.
^ «SmoothKernelDistribution — Документация по языку Wolfram». ссылка.wolfram.com . Проверено 5 ноября 2020 г.
^ «KernelMixtureDistribution — Документация по языку Wolfram». ссылка.wolfram.com . Проверено 5 ноября 2020 г.
^ «Программное обеспечение для расчета плотности ядра». www.rsc.org . Проверено 5 ноября 2020 г.
^ Группа числовых алгоритмов. «Обычный документ библиотеки NAG: nagf_smooth_kerndens_gauss (g10baf)» (PDF) . Руководство по библиотеке НАГ, Марк 23 . Проверено 16 февраля 2012 г.
^ Группа числовых алгоритмов. «Обычный документ библиотеки NAG: nag_kernel_density_estim (g10bac)» (PDF) . Руководство по библиотеке NAG, Марк 9 . Архивировано из оригинала (PDF) 24 ноября 2011 г. Проверено 16 февраля 2012 г.
^ Вандерплас, Джейк (1 декабря 2013 г.). «Оценка плотности ядра в Python» . Проверено 12 марта 2014 г.
^ «seaborn.kdeplot — документация seaborn 0.10.1» . seaborn.pydata.org . Проверено 12 мая 2020 г.
^ «Kde-gpu: мы реализовали лучшую плотность ядра и оценщик условной вероятности ядра, используя cuda через cupy. Это намного быстрее, чем версия процессора, но для этого требуется графический процессор с большим объемом памяти» .
^ «Базовая статистика — API на основе RDD — Документация Spark 3.0.1» . http://spark.apache.org . Проверено 5 ноября 2020 г.
^ Янн, Бен (26 мая 2008 г.), «KDENS: модуль Stata для одномерной оценки плотности ядра», Компоненты статистического программного обеспечения , экономический факультет Бостонского колледжа , получено 15 октября 2022 г.
Внешние ссылки
Введение в оценку плотности ядра. Краткое руководство, которое объясняет, что оценки плотности ядра являются улучшением по сравнению с гистограммами.
Оптимизация пропускной способности ядра. Бесплатный онлайн-инструмент, который генерирует оптимизированную оценку плотности ядра.
Бесплатное онлайн-программное обеспечение (калькулятор) вычисляет оценку плотности ядра для ряда данных в соответствии со следующими ядрами: гауссовым, Епанечникова, прямоугольным, треугольным, двухвесовым, косинусом и оптокосинусом.
Апплет оценки плотности ядра Интерактивный онлайн-пример оценки плотности ядра. Требуется .NET 3.0 или более поздняя версия.