herves.gms : Herves(전이 가능한 요소) 활동 계산

설명

이 프로그램은 Excel 시트에서 원시 데이터를 가져와 데이터를 변환합니다.
절차에 따라 알파와 베타에 대한 최적의 값을 찾습니다.
스티븐 라이트(Stephen Wright)가 설명했습니다. 적분은 수치적으로 계산됩니다.
사다리꼴 근사법을 사용합니다. 그러면 최적화 결과는 다음과 같습니다.
다시 엑셀 파일에 기록됩니다.

이 절차는 원래 David O'Brochta가 Mathematica에서 코딩했습니다.
Wilhelmine Meeraus가 무료 슬롯 게임 최적화 프레임워크로 재구성했습니다.

Excel 파일에는 설명된 현장 및 연구실의 데이터가 포함되어 있습니다.
W 미로우스, 2004.

참고자료

Stephen I Wright, Quang Hien Le, Daniel J Schoen 및 Thomas E Bureau,
자체 및 Ac와 유사한 전이 요소의 인구 역학
교차수분 Arabidopsis, Genetics 158: 127-1288 (2001년 7월).

David O'Brochta, 개인 커뮤니케이션, 메릴랜드 대학교 생명공학
연구소, 2004.

Wilhelmine H Meeraus, 결합된 현장 조사 및 실험실 조사
Herves Transposable Element의 행동, London School of Hygiene
& 열대의학, 논문, 2004.

키워드: 비선형 계획법, 불연속 도함수, 유전학,
          전이 가능한 요소 활동, 사다리꼴 근사

소형 모델 유형 :DNLP


카테고리 : 무료 슬롯 게임 모델 라이브러리


메인 파일 : herves.gms   포함: hervesio.xlsx

$title Herves(전이 가능한 요소) 활동 계산(HERVES,SEQ=305)

$onText
이 프로그램은 Excel 시트에서 원시 데이터를 가져와 데이터를 변환합니다.
절차에 따라 알파와 베타에 대한 최적의 값을 찾습니다.
스티븐 라이트(Stephen Wright)가 설명했습니다. 적분은 수치적으로 계산됩니다.
사다리꼴 근사법을 사용합니다. 그러면 최적화 결과는 다음과 같습니다.
다시 엑셀 파일에 기록됩니다.

이 절차는 원래 David O'Brochta가 Mathematica에서 코딩했습니다.
Wilhelmine Meeraus가 무료 슬롯 게임 최적화 프레임워크로 재구성했습니다.

Excel 파일에는 설명된 현장 및 연구실의 데이터가 포함되어 있습니다.
W 미로우스, 2004.

참고자료

Stephen I Wright, Quang Hien Le, Daniel J Schoen 및 Thomas E Bureau,
자체 및 Ac와 유사한 전이 요소의 인구 역학
교차수분 Arabidopsis, Genetics 158: 127-1288 (2001년 7월).

David O'Brochta, 개인 커뮤니케이션, 메릴랜드 대학교 생명공학
연구소, 2004.

Wilhelmine H Meeraus, 결합된 현장 조사 및 실험실 조사
Herves Transposable Element의 행동, London School of Hygiene
& 열대의학, 논문, 2004.

키워드: 비선형 계획법, 불연속 도함수, 유전학,
          전이 가능한 요소 활동, 사다리꼴 근사
$offText

$eolCom //

* --xlsxFile=xxx 및 --sheet=xxx 명령줄을 사용할 수 있습니다.
* 추가 자동화가 가능합니다

* 시트 이름은 Aa,Ag,Am,ZU,ZAg입니다.
$if not set xlsxFile $set xlsxFile 'hervesio.xlsx' // 통합 문서 이름
$시트가 설정되지 않은 경우 $set sheet 'Ag' // 시트 이름

$set rng '%sheet%!A4' // 데이터를 읽을 시작 범위
$set rngout '%sheet%_Opt!A1' // 결과를 저장할 시작 범위

* 1. Excel 시트의 원시 데이터를 GDX 파일로 추출합니다.
* 무료 슬롯 게임에 로드합니다. 이 단계의 결과는 다음과 같습니다.
* 샘플 i와 개수 cnt의 집합입니다. 비어 있거나 모두
* 0개의 행과 열은 자동으로 삭제됩니다.
* 엑셀 데이터.
세트
   imax '최대 샘플 크기' / 1*50 /
   i(imax) '샘플';

매개변수 cnt(imax) '개수';

별칭(*,코드,LabId,컷);

매개변수 raw(code,LabId,Cut) '원시 관측값';

Set rr(code,LabID) '빈 행을 포함한 행 레이블';

* 빈 행이 보고됩니다
$onEmbeddedCode 연결:
- 엑셀리더:
    파일: %xlsx파일%
    기호:
      - 이름 : 원시
        행차원: 2
        열차원: 1
        범위: %rng%
- 프로젝션:
    이름: raw(코드,LabId,컷)
    새 이름: rr(코드,LabId)
    자산 세트: 참
- 무료 슬롯 게임작성기:
    기호: 모두
    중복 레코드: 첫 번째
$offEmbeddedCode

세트
   rid(code,labID) '행 식별자'
   cid(Cut) '열 식별자';

매개변수 ct '열 합계';

옵션rid < raw, cid < raw,rid:0:0:1; // 도메인 매핑 및 인쇄 옵션 설정
abort$(card(rid) > card(imax)) 'imax의 크기가 너무 작습니다.', imax,rid;

ct(cid) = sum(rid, raw(rid,cid));
원시, ct 표시;

rrdiff '모두 0개 행'을 설정합니다.
rrdiff(rr) = 예 -rid(rr);
rrdiff를 표시;

i(imax) = ord(imax) <= 카드(rid);
cnt(imax) = sum(cid, ct(cid) = ord(imax));
i, cnt를 표시;

* 2. 모델 상수 준비 및 수치 적분 설정
* 데이터 세트.
매개변수
   이배체 '샘플 크기'
   뭐
   bin(imax) '이배체에 대한 이항식';

이배체 = 카드(i);
bin(i(imax)) = 사실(카드(i))/fact(카드(i) - ord(imax))/fact(ord(imax));

* 수치 적분 데이터
세트
   s '적분 판별 단계' / s0*s1000 /
   ss(s) '첫 번째 요소 제외';

매개변수
   xx(s) '단계 s(0-1)의 값'
   ws(s) '사다리꼴 근사를 위한 가중치'
   델타x;

ss(들) = ord(들) > 1;       // x = 0에 대한 값 삭제
deltaxx = 1/(카드 - 1);
xx(s) = (ord(s) - 1)*deltaxx;
ws(들) = 1;
ws(s)$(ord(s) = 1) = 0.5;
ws(s)$(ord(s) = 카드(들)) = 0.5;

매개변수
   t0(s) '중간값 1'
   t1(imax,s) '중간값 2';

t0(s) = sqr(xx(s))+ 2*xx(s)*(1 - xx(s));
t1(i(imax),s) = ws(s)*power(t0(s),ord(imax))*power(1 - t0(s),card(i) - ord(imax));

* 3. 최적화 모델을 정의하고 관련 범위를 설정합니다.
* 현재 모든 매개변수가 알려진 것은 아닙니다.
변수
   chi 'CHI 제곱의 합'
   '알파 값'
   b '베타 값'
   est(imax) '추정치';

방정식
   defchi 'CHI의 정의'
   defest(imax) '추정 정의';

defchi.. chi =e= sum(i, sqr(cnt(i) - est(i))/est(i));

defest(i).. est(i) =e= nhat*(a + b)/a/beta(a,b)*bin(i)*deltaxx
                    * 합계(s, t1(i,s)*xx(s)**(a - 1)*(1 - xx(s))**(b - 1));

모델 m / 모두 /;

* 경계 및 초기값 설정
a.lo = 0.01; a.up = 1.0;
b.lo = 1;    b.up = 10;
a.l = .1;  b.l = 5;
est.l(i) = 1;

옵션 domLim = 1000, limCol = 0, limRow = 0, solPrint = on;

매개변수 rep(*,*) '요약 보고서';

* 4. 첫 번째 최적화
nhat = 4/3*sum(i(imax), ord(imax)*cnt(i))/card(i);

dnlp를 사용하여 chi를 최소화하는 m을 해결합니다.

이배체, nhat, a.l, b.l, chi.l을 표시하고;

담당자(i ,'w-obs') = cnt(i);
rep(i ,'w-est') = est.l(i);
rep(i ,'w-chi') = sqr(cnt(i) - est.l(i))/est.l(i);
rep('total','w-chi') = sum(i, rep(i,'w-chi'));
rep('total','w-obs') = sum(i, cnt(i));
담당자('알파','w-est') = a.l;
담당자('베타' ,'w-est') = b.l;
rep('nhat' ,'w-est') = nhat;
rep('SStat' ,'w-est') = m.solveStat;
rep('MSt' ,'w-est') = m.modelStat;

* 5. 수정된 카운트로 두 번째 해결

// 70% 컷오프를 사용하고 다시 푼다.
cnt(i(imax))$(ord(imax) > 0.7*카드(i)) = 0;
nhat = 4/3*sum(i(imax), ord(imax)*cnt(i))/card(i);
표시하지 않음;

dnlp를 사용하여 m min chi를 해결합니다.

이배체, nhat, a.l, b.l, chi.l을 표시하고;

담당자(i ,'wo-obs') = cnt(i);
rep(i ,'wo-est') = est.l(i);
rep(i ,'wo-chi') = sqr(cnt(i) - est.l(i))/est.l(i);
rep('total','wo-obs') = sum(i, cnt(i));
rep('total','wo-chi') = sum(i, rep(i,'wo-chi'));
담당자('알파','wo-est') = a.l;
rep('beta' ,'wo-est') = b.l;
rep('nhat' ,'wo-est') = nhat;
rep('SStat' ,'wo-est') = m.solveStat;
rep('MSt' ,'wo-est') = m.modelStat;

디스플레이 담당자;

* 6. 새 시트의 결과로 Excel 통합 문서를 업데이트합니다.
임베디드 코드 연결:
- 무료 슬롯 게임리더:
    기호:
      - 이름 : 담당자
- 엑셀작성기:
    파일: %xlsx파일%
    기호:
      - 이름 : 담당자
        범위: %rngout%
endEmbeddedCode