2015-06-28 4 views
19

Как бы рассчитать доверительные интервалы для регрессии LOWESS в Python? Я хотел бы добавить их как заштрихованную область в график LOESS, созданный с помощью следующего кода (другие пакеты, отличные от statsmodels, также хороши).Доверительный интервал для LOWESS в Python

import numpy as np 
import pylab as plt 
import statsmodels.api as sm 

x = np.linspace(0,2*np.pi,100) 
y = np.sin(x) + np.random.random(100) * 0.2 
lowess = sm.nonparametric.lowess(y, x, frac=0.1) 

plt.plot(x, y, '+') 
plt.plot(lowess[:, 0], lowess[:, 1]) 
plt.show() 

Я добавил пример участка с доверительным интервалом ниже от webblog Serious Stats (она создается с использованием ggplot в R).

enter image description here

+0

statsmodels lowess не вычисляет стандартные ошибки. – user333700

+5

Столь лучшая причина задавать вопрос ... – Thriveth

+0

это вопрос, который лучше подходит для http://stats.stackexchange.com/ –

ответ

7

ЛЕССОВО не имеет четкого понятия для стандартной ошибки. В этом контексте это ничего не значит. Так как это выходит, вы застряли с подходом грубой силы.

Загрузите данные. Ваш подход подходит к кривой LOESS для загруженных данных. Посмотрите на середину этой страницы, чтобы найти красивую картину того, что вы делаете. http://statweb.stanford.edu/~susan/courses/s208/node20.html

enter image description here

После того, как у вас есть большое количество различных кривых лесс, вы можете найти верхнюю и нижнюю XTH процентиль.

enter image description here

Смежные вопросы