오전 SQL 코드에 도시 된 바와 같이, 검색되는 데이터 세트에 (m은 SLOPE
이고, B는 INTERCEPT
임) y = mx + b
방정식을 적용하고자. 제 (MySQL의) 쿼리의 값은 다음과 같습니다
SLOPE = 0.0276653965651912
INTERCEPT = -57.2338357550468
SQL 코드
SELECT
((sum(t.YEAR) * sum(t.AMOUNT)) - (count(1) * sum(t.YEAR * t.AMOUNT)))/
(power(sum(t.YEAR), 2) - count(1) * sum(power(t.YEAR, 2))) as SLOPE,
((sum(t.YEAR) * sum(t.YEAR * t.AMOUNT)) -
(sum(t.AMOUNT) * sum(power(t.YEAR, 2))))/
(power(sum(t.YEAR), 2) - count(1) * sum(power(t.YEAR, 2))) as INTERCEPT,
FROM
(SELECT
D.AMOUNT,
Y.YEAR
FROM
CITY C, STATION S, YEAR_REF Y, MONTH_REF M, DAILY D
WHERE
-- For a specific city ...
--
C.ID = 8590 AND
-- Find all the stations within a 15 unit radius ...
--
SQRT(POW(C.LATITUDE - S.LATITUDE, 2) + POW(C.LONGITUDE - S.LONGITUDE, 2)) < 15 AND
-- Gather all known years for that station ...
--
S.STATION_DISTRICT_ID = Y.STATION_DISTRICT_ID AND
-- The data before 1900 is shaky; insufficient after 2009.
--
Y.YEAR BETWEEN 1900 AND 2009 AND
-- Filtered by all known months ...
--
M.YEAR_REF_ID = Y.ID AND
-- Whittled down by category ...
--
M.CATEGORY_ID = '001' AND
-- Into the valid daily climate data.
--
M.ID = D.MONTH_REF_ID AND
D.DAILY_FLAG_ID <> 'M'
GROUP BY Y.YEAR
ORDER BY Y.YEAR
) t
질문
다음 결과 (라인의 시작과 끝 지점을 계산하기 위해) 잘못된 것으로 나타납니다. 결과가 ~ 10도 정도 떨어져있는 이유는 무엇입니까 (예 : 데이터를 왜곡하는 이상 치)?
(1,900 * 0.0276653965651912) + (-57.2338357550468)는 -4.66958228
(2,009 * 0.0276653965651912) + (-57.2338357550468) =
-1.65405406는 (주 = 데이터없이 그 더 일치하는 이미지 : 코드)
나는 1900 년 결과가 약 10 (-4.67이 아님)이고 2009 년 결과는 11.50 (-1.65가 아님)이 될 것으로 예상했을 것이다.
관련 사이트
축하 :
나는 다음 (코드가 실제로 잘못 될 수 있도록 내가, SQL 구문 및 임시 변수에 대한 많은 기억하지 않는 것이 실례 사실) 같은 것을 할 것입니다. 어쩌면 누군가가 R에 대해 이야기해야 할 것입니다. http://www.r-project.org/ 한 줄로 할 수 있습니다 –
회귀 분석에서 응답 변수는 서로 독립적이라고 가정합니다. 시간이 지남에 따라 데이터가 수집되고 (귀하의 경우에 해당) 관측치가 밀접하게 관련되어있는 경우이 가정은 때때로 적절하지 않습니다. 독립성 결여는 계수의 최소 자승 추정치에 편향을주지 않지만 표준 오류는 심각하게 영향을받습니다. –
google for 'linear regression assumptions'독립성 'serial correlation'즉 http://www.basic.northwestern.edu/statguidefiles/mulreg_ass_viol.html # Lack % 20of % 20independence –