Reklama
|
Statystyka, prognozowanie, ekonometria, data mining
Forum miłośników statystyki - Statystycy całego Świata - Łączcie się :-)
|
|
Regresja liniowa oraz wnioskowanie statystyczne |
| Autor |
Wiadomość |
bulva
Starszy sierżant

Pomógł: 1 raz Posty: 111 Skąd: Zgierz
|
Wysłany: 2009-11-06, 18:43 Regresja liniowa oraz wnioskowanie statystyczne
|
|
|
Witam,
Mam pewien problem zwiazany z SAS. Rozwazam nastepujacy test:
, gdzie wspolczynnik kierunkowy w modelu prostej regresji liniowej o ktorym wiem iz
Chce miec 12 obserwacji zmiennej objasniajacej rownomiernie rozlozonych w punktach x=0, x=0.5 i x=1
Chce policzyc moc potrzebna do wykrycia (test studenta ) oraz minimalna licznosc probki aby moja moc wynosila 85%
Usiluje to zrobic w SAS, niestety jestem w nim dosc slaby i przydalaby mi sie mala pomoc w kilku punktach (nie jestem pewnie czy dobrze sie za to zabralem). Prezentuje swoj kod:
| Kod: |
/*Oto moje punkty:*/
DATA WORK.Design;
INPUT x;
DATALINES;
0
0.5
1
;
RUN;
/*Teraz wybieram z nich z powtorzeniem 12 obserwacji:*/
PROC SURVEYSELECT DATA = WORK.Design
METHOD = URS
REP = 1
SEED = 100
SAMPSIZE = 12
OUT = SAS.Points;
ID _ALL_;
RUN;
/*Niestety nie wyglada to tak jakbym chcial, dostaje ile razy ktora sie powtorzyla zamiast rekordow, wiec kombinuje sobie tak:*/
DATA SAS.POINTS;
SET SAS.Points;
DO i = 1 TO NumberHits;
OUTPUT;
END;
DROP i;
RUN;
/*Dziala*/
PROC PRINT DATA = SAS.Points;
RUN;
/*Teraz chce miec obserwacje zmiennej objasnianej:
12 -> to moje beta_0 (takie sobie wymyslilem po prostu)
2 -> to moje beta_1 (jezeli rozumiem poprawnie zadanie to taki wlasnie powinien byc ten parametr w "populacyjnej=prawdziwej" linii regresji)
1.5*RANNOR(-1) -> ma byc bledem modelu (mnoze *1.5 aby miec odpowiednia wartosc sigma, seed -1 ma w teorii zapewnic mi losowosc, ale nie jestem pewien czy to dziala jak powinno...)
*/
DATA SAS.Points (DROP = NumberHits);
SET SAS.POINTS;
y=12+2*x +1.5*RANNOR(-1);
RUN;
/*Cos tam dostalem:*/
PROC PRINT DATA = SAS.Points;
RUN;
/*Zaczynam z regresja, chce zachowac moje parametry w tabelce*/
ODS OUTPUT parameterestimates=SAS.Parameters(DROP = Model Dependent);
PROC REG DATA = SAS.Points;
MODEL y = x;
RUN;QUIT;
/*
Wreszcie zaczynam liczenie mocy i licznosci. Moj pierwszy problem to jak przekazac do tej procedury parametry z zachowanej tabelki? Moj drugi problem to czy dobrze je interpretuje parametry tej procedury, na przykladowych danych:
Obs Variable DF Estimate StdErr tValue Probt
1 Intercept 1 12.44142 0.62070 20.04 <.0001
2 x 1 2.11592 0.89668 2.36 0.0400
*/
PROC POWER;
ONESAMPLEMEANS
ALPHA=.05 SIDES=2
NULLM=0 MEAN=2.11592 /*NULLM - Ho mean; MEAN - wyliczona wartosc*/
STDDEV=0.89668
NTOTAL=12
POWER=.;
RUN;
PROC POWER;
ONESAMPLEMEANS
ALPHA=.05 SIDES=2
NULLM=0 MEAN=2.11592
STDDEV=0.89668
NTOTAL=.
POWER=.85;
RUN;
|
|
|
|
|
 |
Google
|
Wysłany: Reklama google.
|
|
|
|
|
|
|
|
|
macleanek
Szeregowy

Pomógł: 1 raz Posty: 6 Skąd: Poznań
|
Wysłany: 2009-11-08, 23:53
|
|
|
Moja propozycja dotyczy tylko pierwszego z problemów - proponuję wykorzystać ideę makrozmiennych do wczytania wartości ze zbioru. Zmodyfikowałem także część dotyczącą tworzenia zbioru.
data design;
do i=1 to 12;
los=rand('uniform');
if los <1/3 then x=0;
else if los>2/3 then x=1;
else x=0.5;
y=12+2*x +1.5*los;
output;
end;
keep x y;
run;
PROC PRINT DATA = design;
RUN;
PROC REG DATA = design outest=model outseb noprint;
MODEL y = x;
RUN;QUIT;
data _null_;
set model;
if _TYPE_='PARMS' then call symput('a1',x);
else if _TYPE_='SEB' then call symput('Da1',x);
run;
PROC POWER;
ONESAMPLEMEANS
ALPHA=.05 SIDES=2
NULLM=0 MEAN=&a1
STDDEV=&Da1
NTOTAL=12
POWER=.;
RUN;
PROC POWER;
ONESAMPLEMEANS
ALPHA=.05 SIDES=2
NULLM=0 MEAN=&a1
STDDEV=&Da1
NTOTAL=.
POWER=.85;
RUN; |
|
|
|
 |
bulva
Starszy sierżant

Pomógł: 1 raz Posty: 111 Skąd: Zgierz
|
Wysłany: 2009-11-09, 00:07
|
|
|
Wow :) Twoj kod jest elegancki i duzo prostszy, WIELKIE dzieki :) Zwlaszcza trick z macro zmienna mi sie podoba, zaczne uzywad od tej pory :)
Tylko jedno ale, wlasnie sie zorientowalem ze PROC POWER potrzebuje odchylenia standardowego a nie bledu standardowego estymatora, stad trzeba to co zwroci PROG REG przemnozyc przez pierwiastek z n przed podaniem PROC POWER, ale to drobna usterka (chociaz dla popranwosci wynikow oczywiscie kluczowa). |
|
|
|
 |
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum
|
Dodaj temat do Ulubionych zakładek(IE) Wersja do druku
|
salon fryzjerski warszawa | Cyfra i Cyfrowy Polsat | suwalszczyzna | mieszkania w suwałkach | Ogłoszenia Podlasie | Kalkulatory OC | Kalkulator OC | suwalki | projekty domów | wózki widłowe | viagra | implanty | części Toyota Mazda | numizmatyka | Liga Polska | Typy bukmacherskie | wózki widłowe | forum | portal studencki | Wczasy Turcja, Egipt | biustonosze | tempered glass | szkło szlifowane | centrum tenisowe poznań | auto zastępcze poznań | turban | przewozy na lotniska szczecin | stare drewno | animatronics robotics | bronze crane statues | | | Strona wygenerowana w 0,16 sekundy. Zapytań do SQL: 8 |
|
|